day 8
3849 ワード
変数all_を使用studentsはクラスの学生情報(4つ)を保存し、学生ごとに名前、年齢、成績、電話を保存する必要があります.
1.生徒の追加:生徒情報を入力し、入力した生徒の情報をall_に保存するstudentsでは、例えば名前:明ちゃん年齢:20成績:100電話:111922でall_studentsに{'name':'明ちゃん','age':20,'score':100,'tel':'111922'}を追加
2.名前で学生情報を表示する:たとえば入力:名前:stu 1で印刷:'name':'stu 1','age':19,'score':81,'tel':'192222'
3.すべての学生の平均成績と平均年齢を求める
.....
4.クラスの18歳未満の生徒を削除
5.クラスで不合格になった学生の人数を集計する
6.携帯番号を印刷する最後の学生の名前は2です.
all_students = [
{'name':'stu1', 'age': 19, 'score':81, 'tel':'192222'},
{'name':'stu2', 'age': 29, 'score':90, 'tel':'211222'},
{'name':'stu3', 'age': 12, 'score':67, 'tel':'521114'},
{'name':'stu4', 'age': 30, 'score':45, 'tel':'900012'},
]
1.生徒の追加:生徒情報を入力し、入力した生徒の情報をall_に保存するstudentsでは、例えば名前:明ちゃん年齢:20成績:100電話:111922でall_studentsに{'name':'明ちゃん','age':20,'score':100,'tel':'111922'}を追加
dict_students = {}
name = input(' :')
age = input(' :')
score = input(' :')
tel = input(' :')
dict_students['name'] = name
dict_students['age'] = age
dict_students['score'] = score
dict_students['tel'] = tel
all_students.append(dict_students)
print(all_students)
:
[{'name': 'stu1', 'age': 19, 'score': 81, 'tel': '192222'},
{'name': 'stu2', 'age': 29, 'score': 90, 'tel': '211222'},
{'name': 'stu3', 'age': 12, 'score': 67, 'tel': '521114'},
{'name': 'stu4', 'age': 30, 'score': 45, 'tel': '900012'},
{'name': 'stu5', 'age': '20', 'score': '95', 'tel': '123456'}]
2.名前で学生情報を表示する:たとえば入力:名前:stu 1で印刷:'name':'stu 1','age':19,'score':81,'tel':'192222'
name_in = input(' ')
for index in range(0,len(all_students)):
if all_students[index]['name'] == name_in:
print(all_students[index])
3.すべての学生の平均成績と平均年齢を求める
sum_score = 0; sum_age = 0
for index in range(0, len(all_students)):
sum_score += all_students[index]['score']
sum_age += all_students[index]['age']
print(' %.2f, %.2f' %((sum_score)/len(all_students), (sum_age)/len(all_students)))
:
70.75, 22.50
.....
sum_score=0
sum_age=0
for index in range(len(all_students)):
sum_score+=all_students[index]['score']
sum_age+=all_students[index]['age']
ave_score=sum_score/len(all_students)
ave_age=sum_age/len(all_students)
print(" %.2f, %.2f"%(ave_score,ave_age))
4.クラスの18歳未満の生徒を削除
for index in range(0, len(all_students)):
if all_students[index]['age'] < 18:
del all_students[index]['name']
del all_students[index]['age']
del all_students[index]['score']
del all_students[index]['tel']
print(all_students)
:[{'name': 'stu1', 'age': 19, 'score': 81, 'tel': '192222'}, {'name': 'stu2', 'age': 29, 'score': 90, 'tel': '211222'}, {}, {'name': 'stu4', 'age': 30, 'score': 45, 'tel': '900012'}]
5.クラスで不合格になった学生の人数を集計する
count = 0
for index in range(0, len(all_students)):
if all_students[index]['score'] < 60:
count += 1
print(count)
:
1
6.携帯番号を印刷する最後の学生の名前は2です.
for index in range(len(all_students)):
student=all_students[index]
tel= int(student['tel'])
if tel %10==2:
print(student['name'])
:
stu1
stu2
stu4