April 24th_day08_homework

question1.聲明一個(gè)字典保存一個(gè)學(xué)生的信息午磁,學(xué)生信息中包括: 姓名莺戒、年齡掰烟、成績(單科)爽蝴、電話

qusetion2.聲明一個(gè)列表,在列表中保存6個(gè)學(xué)生的信息(6個(gè)題1中的字典)

a.統(tǒng)計(jì)不及格學(xué)生的個(gè)數(shù)
b.打印不及格學(xué)生的名字和對應(yīng)的成績
c.統(tǒng)計(jì)未成年學(xué)生的個(gè)數(shù)
d.打印手機(jī)尾號(hào)是8的學(xué)生的名字
e.打印最高分和對應(yīng)的學(xué)生的名字
f.將列表按學(xué)生成績從大到小排序(掙扎一下纫骑,不行就放棄)

g = (x for x in range(1, 10000))
dic_of_stu_message = {}


# 學(xué)生信息函數(shù)
def student_information():
    print('=============================')
    print('\t????歡迎XXX????')
    print('')
    print('\t??1.  添加學(xué)生')
    print('\t??2.  查看學(xué)生')
    print('\t???3.  修改學(xué)生信息')
    print('\t???4.  刪除學(xué)生')
    print('\t???5.  返回')
    print('=============================')
    return input('請選擇(1-5):')


# 添加學(xué)生函數(shù)
def add_student():
    while True:
        stu_num = 'python1902' + str(next(g)).zfill(4)
        stu_id = stu_num
        name = input('請輸入學(xué)生姓名:')
        age = int(input('請輸入學(xué)生年齡:'))
        grade = int(input('請輸入學(xué)生成績:'))
        cellphone = input('請輸入學(xué)生電話:')
        dic_of_stu_message[stu_num] = {'stu_id': stu_id,
                                       'name': name,
                                       'age': age,
                                       'grade': grade,
                                       'cellphone': cellphone
                                       }
        print('學(xué)生工號(hào)為:%s\t姓名:%s\t年齡:%d\t成績:%d\t電話:%s' % (dic_of_stu_message[stu_num]['stu_id'],
                                                        dic_of_stu_message[stu_num]['name'],
                                                        dic_of_stu_message[stu_num]['age'],
                                                        dic_of_stu_message[stu_num]['grade'],
                                                        dic_of_stu_message[stu_num]['cellphone'])
              )
        print('添加成功蝎亚!')
        choice = input('是否繼續(xù)添加學(xué)生信息(yes/no):')
        if choice.lower() == 'no':
            break


# 查詢學(xué)生函數(shù)
def check_student():
    print('=============================')
    print('\t1.查看所有學(xué)生')
    print('\t2.按姓名查找')
    print('\t3.按學(xué)號(hào)查找')
    print('\t4.返回')
    return input('請選擇(1-4):')


# 冒泡排序(列表中字典-按成績排序)
def bubble_sort(lis):
    length = len(lis)
    for i in range(length):
        for j in range(i+1, length):
            if lis[i]['grade'] < lis[j]['grade']:
                lis[i], lis[j] = lis[j], lis[i]
    return lis


# 主程序
while True:
    temp1 = student_information()
    if temp1 == '1':
        add_student()
        continue
    elif temp1 == '2':
        temp2 = check_student()
        if temp2 == '4':
            continue
    elif temp1 == '5':
        break

# 創(chuàng)建學(xué)生信息列表lis_students
lis_students = []
for key in dic_of_stu_message:
    lis_students.append(dic_of_stu_message[key])
print(lis_students)

# 打印學(xué)生信息列表lis_students
print('學(xué)生信息列表為:')
for index in range(len(lis_students)):
    print('學(xué)生工號(hào)為:%s\t姓名:%s\t年齡:%d\t成績:%d\t電話:%s' % (lis_students[index]['stu_id'],
                                                    lis_students[index]['name'],
                                                    lis_students[index]['age'],
                                                    lis_students[index]['grade'],
                                                    lis_students[index]['cellphone'])
          )

"""
列表lis_off_grades中儲(chǔ)存不及格學(xué)生學(xué)號(hào)
列表lis_minors中儲(chǔ)存未成年學(xué)生學(xué)號(hào)
列表lis_end_cellphones中儲(chǔ)存手機(jī)尾號(hào)為8的學(xué)生學(xué)號(hào)
"""
lis_off_grades = []
lis_minors = []
lis_end_cellphones = []
for index in range(len(lis_students)):
    if lis_students[index]['grade'] < 60:
        lis_off_grades.append(lis_students[index]['stu_id'])
    if lis_students[index]['age'] < 18:
        lis_minors.append(lis_students[index]['stu_id'])
    if lis_students[index]['cellphone'][-1] == '8':
        lis_end_cellphones.append(lis_students[index]['stu_id'])

print('a.不及格學(xué)生個(gè)數(shù)為:%d' % len(lis_off_grades))  # 打印不及格學(xué)生個(gè)數(shù)

# 打印不及格學(xué)生信息
print('b.不及格學(xué)生信息:')
for index in lis_off_grades:
    print('\t姓名:%s\t成績:%d' % (dic_of_stu_message[index]['name'], dic_of_stu_message[index]['grade']))
print('c.未成年學(xué)生個(gè)數(shù)為:%d' % len(lis_minors))  # 打印未成年學(xué)生個(gè)數(shù)

# 打印手機(jī)尾號(hào)為8的學(xué)生信息
print('d.手機(jī)尾號(hào)為8的學(xué)生信息:')
for index in lis_end_cellphones:
    print('\t姓名:%s\t成績:%s' % (dic_of_stu_message[index]['name'], dic_of_stu_message[index]['cellphone']))

bubble_sort(lis_students)  # 列表按學(xué)生成績排序

# 求最高分有幾人
lis_sum_grade = []
for index in range(len(lis_students)):
    lis_sum_grade.append(lis_students[index]['grade'])
count_high_grade = lis_sum_grade.count(lis_students[0]['grade'])

# 打印最高分學(xué)生信息
print('e.最高分學(xué)生信息:')
for index in range(count_high_grade):
    print('\t姓名:%s\t成績:%d' % (lis_students[index]['name'], lis_students[index]['grade']))

# 打印排序后列表
print('f.按學(xué)生成績從大到小排序后為:')
for index in range(len(lis_students)):
    print('學(xué)生工號(hào)為:%s\t姓名:%s\t年齡:%d\t成績:%d\t電話:%s' % (lis_students[index]['stu_id'],
                                                    lis_students[index]['name'],
                                                    lis_students[index]['age'],
                                                    lis_students[index]['grade'],
                                                    lis_students[index]['cellphone'])
          )
print('======finish=======')

"""
=============================
    ????歡迎XXX????

    ??1.  添加學(xué)生
    ??2.  查看學(xué)生
    ???3.  修改學(xué)生信息
    ???4.  刪除學(xué)生
    ???5.  返回
=============================
請選擇(1-5):1
請輸入學(xué)生姓名:張一
請輸入學(xué)生年齡:27
請輸入學(xué)生成績:87
請輸入學(xué)生電話:13000000008
學(xué)生工號(hào)為:python19020001    姓名:張一   年齡:27   成績:87   電話:13000000008
添加成功!
是否繼續(xù)添加學(xué)生信息(yes/no):yes
請輸入學(xué)生姓名:趙二
請輸入學(xué)生年齡:17
請輸入學(xué)生成績:90
請輸入學(xué)生電話:13000000001
學(xué)生工號(hào)為:python19020002    姓名:趙二   年齡:17   成績:90   電話:13000000001
添加成功先馆!
是否繼續(xù)添加學(xué)生信息(yes/no):yes
請輸入學(xué)生姓名:錢三
請輸入學(xué)生年齡:22
請輸入學(xué)生成績:55
請輸入學(xué)生電話:13500000008
學(xué)生工號(hào)為:python19020003    姓名:錢三   年齡:22   成績:55   電話:13500000008
添加成功发框!
是否繼續(xù)添加學(xué)生信息(yes/no):yes
請輸入學(xué)生姓名:孫四
請輸入學(xué)生年齡:18
請輸入學(xué)生成績:90
請輸入學(xué)生電話:13000000003
學(xué)生工號(hào)為:python19020004    姓名:孫四   年齡:18   成績:90   電話:13000000003
添加成功!
是否繼續(xù)添加學(xué)生信息(yes/no):yes
請輸入學(xué)生姓名:李五
請輸入學(xué)生年齡:15
請輸入學(xué)生成績:46
請輸入學(xué)生電話:13000000007
學(xué)生工號(hào)為:python19020005    姓名:李五   年齡:15   成績:46   電話:13000000007
添加成功煤墙!
是否繼續(xù)添加學(xué)生信息(yes/no):yes
請輸入學(xué)生姓名:周六
請輸入學(xué)生年齡:30
請輸入學(xué)生成績:77
請輸入學(xué)生電話:13600005008
學(xué)生工號(hào)為:python19020006    姓名:周六   年齡:30   成績:77   電話:13600005008
添加成功梅惯!
是否繼續(xù)添加學(xué)生信息(yes/no):no
=============================
    ????歡迎XXX????

    ??1.  添加學(xué)生
    ??2.  查看學(xué)生
    ???3.  修改學(xué)生信息
    ???4.  刪除學(xué)生
    ???5.  返回
=============================
請選擇(1-5):5
[{'stu_id': 'python19020001', 'name': '張一', 'age': 27, 'grade': 87, 'cellphone': '13000000008'}, {'stu_id': 'python19020002', 'name': '趙二', 'age': 17, 'grade': 90, 'cellphone': '13000000001'}, {'stu_id': 'python19020003', 'name': '錢三', 'age': 22, 'grade': 55, 'cellphone': '13500000008'}, {'stu_id': 'python19020004', 'name': '孫四', 'age': 18, 'grade': 90, 'cellphone': '13000000003'}, {'stu_id': 'python19020005', 'name': '李五', 'age': 15, 'grade': 46, 'cellphone': '13000000007'}, {'stu_id': 'python19020006', 'name': '周六', 'age': 30, 'grade': 77, 'cellphone': '13600005008'}]
學(xué)生信息列表為:
學(xué)生工號(hào)為:python19020001    姓名:張一   年齡:27   成績:87   電話:13000000008
學(xué)生工號(hào)為:python19020002    姓名:趙二   年齡:17   成績:90   電話:13000000001
學(xué)生工號(hào)為:python19020003    姓名:錢三   年齡:22   成績:55   電話:13500000008
學(xué)生工號(hào)為:python19020004    姓名:孫四   年齡:18   成績:90   電話:13000000003
學(xué)生工號(hào)為:python19020005    姓名:李五   年齡:15   成績:46   電話:13000000007
學(xué)生工號(hào)為:python19020006    姓名:周六   年齡:30   成績:77   電話:13600005008
a.不及格學(xué)生個(gè)數(shù)為:2
b.不及格學(xué)生信息:
    姓名:錢三   成績:55
    姓名:李五   成績:46
c.未成年學(xué)生個(gè)數(shù)為:2
d.手機(jī)尾號(hào)為8的學(xué)生信息:
    姓名:張一   成績:13000000008
    姓名:錢三   成績:13500000008
    姓名:周六   成績:13600005008
e.最高分學(xué)生信息:
    姓名:趙二   成績:90
    姓名:孫四   成績:90
f.按學(xué)生成績從大到小排序后為:
學(xué)生工號(hào)為:python19020002    姓名:趙二   年齡:17   成績:90   電話:13000000001
學(xué)生工號(hào)為:python19020004    姓名:孫四   年齡:18   成績:90   電話:13000000003
學(xué)生工號(hào)為:python19020001    姓名:張一   年齡:27   成績:87   電話:13000000008
學(xué)生工號(hào)為:python19020006    姓名:周六   年齡:30   成績:77   電話:13600005008
學(xué)生工號(hào)為:python19020003    姓名:錢三   年齡:22   成績:55   電話:13500000008
學(xué)生工號(hào)為:python19020005    姓名:李五   年齡:15   成績:46   電話:13000000007
======finish=======
"""

question3.用三個(gè)列表表示三門學(xué)科的選課學(xué)生姓名(一個(gè)學(xué)生可以同時(shí)選多門課)

a. 求選課學(xué)生總共有多少人
b. 求只選了第一個(gè)學(xué)科的人的數(shù)量和對應(yīng)的名字
c. 求只選了一門學(xué)科的學(xué)生的數(shù)量和對應(yīng)的名字
d. 求只選了兩門學(xué)科的學(xué)生的數(shù)量和對應(yīng)的名字
e. 求選了三門學(xué)生的學(xué)生的數(shù)量和對應(yīng)的名字

sociology = ['趙一', '錢二', '孫三', '李四', '周五']
philosophy = ['孫三', '李四', '周五', '吳六', '鄭七']
psychology = ['周五', '吳六', '鄭七', '王八']
# 打印選擇社會(huì)學(xué)的學(xué)生
print('選擇社會(huì)學(xué)的學(xué)生有:', end=' ')
for value in sociology:
    print(value, end=" ")
print('')

# 打印選擇哲學(xué)的學(xué)生
print('選擇哲學(xué)的學(xué)生有:', end=' ')
for value in philosophy:
    print(value, end=" ")
print('')

# 打印選擇心理學(xué)的學(xué)生
print('選擇心理學(xué)的學(xué)生有:', end=' ')
for value in psychology:
    print(value, end=" ")
print('')
print('==========================================')

print('a.選課學(xué)生總?cè)藬?shù)為:', len(set(sociology) | set(philosophy) | set(psychology)))

only_sociology = set(sociology) - set(philosophy) - set(psychology)
print('b.只選了社會(huì)學(xué)的學(xué)生人數(shù)為%d,分別為:' % len(only_sociology), end='')
for value in only_sociology:
    print(value, end=' ')
print('')

only_one_subject = (set(sociology) ^ set(philosophy)) - set(psychology)
print('c.只選了一科的學(xué)生人數(shù)為%d仿野,分別為:' % len(only_one_subject), end='')
for value in only_one_subject:
    print(value, end=' ')
print('')

all_subject = set(sociology) & set(philosophy) & set(psychology)
only_two_subject = ((set(sociology) & set(philosophy)) | (set(philosophy) & set(psychology))) - all_subject

print('d.只選了兩科的學(xué)生人數(shù)為%d铣减,分別為:' % len(only_two_subject), end='')
for value in only_two_subject:
    print(value, end=' ')
print('')

print('e.三科全選的學(xué)生人數(shù)為%d,分別為:' % len(all_subject), end='')
for value in all_subject:
    print(value, end=' ')
print('')
"""
選擇社會(huì)學(xué)的學(xué)生有: 趙一 錢二 孫三 李四 周五 
選擇哲學(xué)的學(xué)生有: 孫三 李四 周五 吳六 鄭七 
選擇心理學(xué)的學(xué)生有: 周五 吳六 鄭七 王八 
==========================================
a.選課學(xué)生總?cè)藬?shù)為: 8
b.只選了社會(huì)學(xué)的學(xué)生人數(shù)為2脚作,分別為:趙一 錢二 
c.只選了一科的學(xué)生人數(shù)為2葫哗,分別為:趙一 錢二 
d.只選了兩科的學(xué)生人數(shù)為4,分別為:鄭七 李四 孫三 吳六 
e.三科全選的學(xué)生人數(shù)為1球涛,分別為:周五
"""
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劣针,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亿扁,更是在濱河造成了極大的恐慌捺典,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件从祝,死亡現(xiàn)場離奇詭異襟己,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哄褒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門稀蟋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呐赡,你說我怎么就攤上這事】ト冢” “怎么了链嘀?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵萌狂,是天一觀的道長。 經(jīng)常有香客問我怀泊,道長茫藏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任霹琼,我火速辦了婚禮务傲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枣申。我一直安慰自己售葡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布忠藤。 她就那樣靜靜地躺著挟伙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪模孩。 梳的紋絲不亂的頭發(fā)上尖阔,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音榨咐,去河邊找鬼介却。 笑死,一個(gè)胖子當(dāng)著我的面吹牛块茁,可吹牛的內(nèi)容都是我干的筷笨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼龟劲,長吁一口氣:“原來是場噩夢啊……” “哼胃夏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起昌跌,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對情侶失蹤仰禀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蚕愤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體答恶,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年萍诱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悬嗓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裕坊,死狀恐怖包竹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤周瞎,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布苗缩,位于F島的核電站,受9級(jí)特大地震影響声诸,放射性物質(zhì)發(fā)生泄漏酱讶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一彼乌、第九天 我趴在偏房一處隱蔽的房頂上張望泻肯。 院中可真熱鬧,春花似錦慰照、人聲如沸灶挟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膏萧。三九已至,卻和暖如春蝌衔,著一層夾襖步出監(jiān)牢的瞬間榛泛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工噩斟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曹锨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓剃允,卻偏偏與公主長得像沛简,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子斥废,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 8月22日-----字符串相關(guān) 2-3 個(gè)性化消息: 將用戶的姓名存到一個(gè)變量中椒楣,并向該用戶顯示一條消息。顯示的消...
    future_d180閱讀 963評(píng)論 0 1
  • 1.聲明一個(gè)字典保存一個(gè)學(xué)生的信息牡肉,學(xué)生信息中包括: 姓名捧灰、年齡、成績(單科)统锤、電話 2.聲明一個(gè)列表毛俏,在列表中保...
    不挖石油的小小閱讀 132評(píng)論 0 1
  • 最近幾天,弟弟老念叨《毒液》饲窿,不過手機(jī)app上還沒有煌寇,剛進(jìn)入大陸,影城才開始放逾雄,估計(jì)得有一段時(shí)間可以在app上看阀溶。...
    L雁小七閱讀 190評(píng)論 0 0
  • 7腻脏、8月份的上海真的的對于我這個(gè)生活在北方的人不適應(yīng),室外就像汗蒸房一樣淌哟。沒有了空調(diào)這個(gè)世界就沒有愛迹卢!但是還是慢慢...
    瀅歆兒閱讀 104評(píng)論 0 1
  • 老王這些日子的工作非常的不順利辽故,他負(fù)責(zé)的工程項(xiàng)目出現(xiàn)了重大的問題而導(dǎo)致了停滯徒仓。今天下班前,領(lǐng)導(dǎo)叫他去了辦公...
    maple0725閱讀 237評(píng)論 0 0