1.莫爾斯電碼是一種早期的數(shù)字化通信形式,它通過“·”和“-”的不同排列順序來表示不同的英文字母、數(shù)字以及標(biāo)點(diǎn)符號。試編寫程序,使用字典存放下表的內(nèi)容,將用戶輸入的字符串(假設(shè)只包含英文字母)以莫爾斯電碼的形式輸出。
dic_morse={"A":"??","B":"????","C":"????","D":"???","E":"?","F":"????","G":"???",
"H":"????","I":"??","J":"????","K":"???","L":"????","M":"??","N":"??",
"O":"???","P":"????","Q":"????","R":"???","S":"???","T":"?",
"U":"???","V":"????","W":"???","X":"????","Y":"????","Z":"????"}
s=input("請輸入字符串(只包含字母):").upper()
morse_code=""
for c in s:
morse_code+=dic_morse[c]
print(morse_code)
#輸出樣例
請輸入字符串(只包含字母):abcd
?????????????
2.編寫程序,實(shí)現(xiàn)以下功能:
(1)創(chuàng)建空字典dic_student。
(2)由用戶依次輸入五名學(xué)生的姓名和年齡,存入字典dic_student。
(3)輸出字典dic_student中的內(nèi)容,格式為:
王建 18
張?jiān)?19
張秋雨 18
劉歡 17
姜宇 19
dic_student={}
for i in range(1,6):
name=input("請輸入第"+str(i)+"個(gè)學(xué)生的姓名:")
age=input("請輸入第"+str(i)+"個(gè)學(xué)生的年齡:")
dic_student[name]=age
for k,v in dic_student.items():
print("{:<3}\t{}歲".format(k,v))
#輸出結(jié)果
請輸入第1個(gè)學(xué)生的姓名:王建
請輸入第1個(gè)學(xué)生的年齡:18
請輸入第2個(gè)學(xué)生的姓名:張?jiān)?br> 請輸入第2個(gè)學(xué)生的年齡:19
請輸入第3個(gè)學(xué)生的姓名:張秋雨
請輸入第3個(gè)學(xué)生的年齡:18
請輸入第4個(gè)學(xué)生的姓名:劉歡
請輸入第4個(gè)學(xué)生的年齡:17
請輸入第5個(gè)學(xué)生的姓名:姜宇
請輸入第5個(gè)學(xué)生的年齡:19
王建 18歲
張?jiān)?19歲
張秋雨 18歲
劉歡 17歲
姜宇 19歲
3.以下是某電商賣家在售產(chǎn)品價(jià)目一覽表。
產(chǎn)品名稱 | 價(jià)格/元 |
---|---|
方糖 | 99 |
X1 | 499 |
魔盒 | 399 |
試編寫程序,實(shí)現(xiàn)以下功能:
(1)使用字典myDict存放表7-2中的信息,產(chǎn)品名稱作為鍵,價(jià)格作為值。
(2)輸出所有在售產(chǎn)品的價(jià)目表。格式為
方糖…………99元
X1 …………499元
魔盒…………399元
曲奇…………299元
(3)輸出所有產(chǎn)品的價(jià)格。
(4)輸出價(jià)格最高的產(chǎn)品價(jià)格。
myDict={'方糖':99,'x1':499,'魔盒':399,'曲奇':299}
print('\t價(jià)目表')
for k,v in myDict.items():
print(k+'\t…………\t'+str(v))
lst=[]
for v in myDict.values():
lst.append(v)
print('所有產(chǎn)品的平均價(jià)為:{}'.format(sum(lst)/len(lst)))
newlst=[(v,k) for k,v in myDict.items()]
newlst.sort()
print('價(jià)格最高的產(chǎn)品是:{}'.format(newlst[-1][1]))
#輸出結(jié)果
方糖 ………… 99
x1 ………… 499
魔盒 ………… 399
曲奇 ………… 299
所有產(chǎn)品的平均價(jià)為:324.0
價(jià)格最高的產(chǎn)品是:x1
4.編寫程序,實(shí)現(xiàn)以下功能:
(1)創(chuàng)建空字典dic_student。
(2)由用戶依次錄入學(xué)生的姓名、年齡、升高和體重,存入字典dic_student,將姓名作為鍵,年齡、升高和體重作為值。
(3)輸出字典dic_student的內(nèi)容。
dic_student={}
for i in range(1,6):
name=input("請輸入第"+str(i)+"個(gè)學(xué)生的姓名:")
age=input("請輸入第"+str(i)+"個(gè)學(xué)生的年齡:")
height=input("請輸入第"+str(i)+"個(gè)學(xué)生的身高:")
weight=input("請輸入第"+str(i)+"個(gè)學(xué)生的體重:")
dic_student[name]=[age,height,weight]
for k,v in dic_student.items():
print("{:<3}\t{}歲\t{}cm\t{}kg".format(k,v[0],v[1],v[2]))
#輸出結(jié)果
請輸入第1個(gè)學(xué)生的姓名:王建
請輸入第1個(gè)學(xué)生的年齡:18
請輸入第1個(gè)學(xué)生的身高:172
請輸入第1個(gè)學(xué)生的體重:80
請輸入第2個(gè)學(xué)生的姓名:張?jiān)?br> 請輸入第2個(gè)學(xué)生的年齡:19
請輸入第2個(gè)學(xué)生的身高:165
請輸入第2個(gè)學(xué)生的體重:55
請輸入第3個(gè)學(xué)生的姓名:張秋雨
請輸入第3個(gè)學(xué)生的年齡:18
請輸入第3個(gè)學(xué)生的身高:178
請輸入第3個(gè)學(xué)生的體重:82
請輸入第4個(gè)學(xué)生的姓名:劉歡
請輸入第4個(gè)學(xué)生的年齡:17
請輸入第4個(gè)學(xué)生的身高:169
請輸入第4個(gè)學(xué)生的體重:75
請輸入第5個(gè)學(xué)生的姓名:姜宇
請輸入第5個(gè)學(xué)生的年齡:19
請輸入第5個(gè)學(xué)生的身高:170
請輸入第5個(gè)學(xué)生的體重:70
王建 18歲 172cm 80kg
張?jiān)?19歲 165cm 55kg
張秋雨 18歲 178cm 82kg
劉歡 17歲 169cm 75kg
姜宇 19歲 170cm 70kg
5.編寫程序,實(shí)現(xiàn)以下功能:
(1)創(chuàng)建空字典dic_student。
(2)由用戶依次錄入學(xué)生的班級,姓名、年齡、升高和體重,存入字典dic_student,將姓名作為鍵,年齡、升高和體重作為值。
(3)輸出字典dic_student的內(nèi)容。
dic_student={}
for i in range(1,6):
Class=input("請輸入第"+str(i)+"個(gè)學(xué)生的班級:")
name=input("請輸入第"+str(i)+"個(gè)學(xué)生的姓名:")
age=input("請輸入第"+str(i)+"個(gè)學(xué)生的年齡:")
height=input("請輸入第"+str(i)+"個(gè)學(xué)生的身高:")
weight=input("請輸入第"+str(i)+"個(gè)學(xué)生的體重:")
dic_student[(Class,name)]=[age,height,weight]
for k,v in dic_student.items():
print("{:<3}\t{}\t{}歲\t{}cm\t{}kg".format(k[0],k[1],v[0],v[1],v[2]))
#輸出結(jié)果
與4題同理自己依次輸入五名同學(xué)的班級,姓名、年齡、升高和體重就可以了
6.假設(shè)字典變量dic_country存儲了部分國家的國家名與首都名的對應(yīng)關(guān)系,其中國家名為鍵,首都名為值。試編寫程序,根據(jù)用戶輸入的國家名查詢首都名,如果存在則輸出查詢結(jié)果,否則提示“未查詢該國家名!”。假設(shè)對國家名進(jìn)行查詢不區(qū)分大小寫。
dic_country={"China":"Beijing","America":"Washington","Norway":"Oslo","Japan":"Tokyo","Germany":"Berlin","Canada":"Ottawa","France":"Paris","Thailand":"Bangkok"}
country=input("請輸入國家名:").lower().capitalize()
if country in dic_country:
print("首都名:{}".format(dic_country[country]))
else:
print("未查詢到該國家名!")
#輸出樣例
請輸入國家名:China
首都名:Beijing
7.試編寫程序,實(shí)現(xiàn)以下功能:
(1)創(chuàng)建一個(gè)字典,存放所有已注冊用戶的用戶名和密碼,內(nèi)容如表7-4所示。
用戶名 | 密碼 |
---|---|
John | 123 |
Maryy | 111 |
Tommy | 123456 |
(2)提示用戶輸入用戶名和密碼。
(3)依次對用戶名和密碼進(jìn)行判斷,并給出相應(yīng)的提示。
若用戶名輸入錯(cuò)誤,則提示“用戶名不正確!”
若密碼輸入錯(cuò)誤,則提示“密碼不正確!”
若用戶名和密碼均正確,則提示“登陸成功!”
myDict={"John":"123","Marry":"111","Tommy":"123456"}
username=input('請輸入用戶名:')
if username not in myDict:
print('該用戶不存在!')
else:
password=input('請輸入密碼:')
if password!=myDict[username]:
print('密碼不正確!')
else:
print('成功登錄!')
#輸出樣例
請輸入用戶名:Tommy
請輸入密碼:123456
成功登錄!
8.年底了,某公司要發(fā)年終獎。列表lst_staff中存放了所有員工的名單,內(nèi)容為[“李梅”,“張富”,“付妍”,“趙諾”,“劉江”]。字典dic_award中存放了對公司有杰出貢獻(xiàn)的員工名單及獎金金額,內(nèi)容為{“張富”:10000,“趙諾”:15000}。試編寫程序,輸出每位員工應(yīng)發(fā)年終獎金額。dic_award中未包含的員工年終獎金額為5000元/人。
lst_staff=["李梅","張富","付妍","趙諾","劉江"]
dic_award={"張富":10000,"趙諾":15000}
for x in lst_staff:
if x in dic_award:
print("{}年終獎:{}元".format(x,dic_award[x]))
else:
print("{}年終獎:{}元".format(x,5000))
#輸出結(jié)果
李梅年終獎:5000元
張富年終獎:10000元
付妍年終獎:5000元
趙諾年終獎:15000元
劉江年終獎:5000元
9.假設(shè)列表lst_busstop=[“龍江新城市”,“陽光廣場”,“漢江路”,“嫩江路”,“清涼山公園”,“拉薩路”,“五臺山”,“莫愁路”],存放了某公交路線途徑的公交站名。另有字典dic_estate={“龍江新城市”:[“白云園”,“騰飛園”],“陽光廣場”:[“龍江小區(qū)”,“芳草園”],“漢江路”:[“金信花園”,“龍鳳花園"],“嫩江路”:[“西城藍(lán)灣”,“花開四季”]},存放了部分公交站附近的小區(qū)。試編寫程序,根據(jù)用戶輸入的起點(diǎn)(小區(qū)名)和終點(diǎn)(小區(qū)名),查詢公交路線。例如,起點(diǎn)為“白云園”,終點(diǎn)“龍鳳花園”,則輸出結(jié)果為“起始站:龍江新城市站,終點(diǎn)站:漢江路站,共2站”。若起點(diǎn)為“龍鳳花園”,終點(diǎn)為“白云園”,則輸出“您需要乘坐反方向路線”。
lst_busstop=["龍江新城市","陽光廣場","漢江路","嫩江路","清涼山公園","拉薩路"," 五臺山","莫愁路"]
dic_estate={"龍江新城市":["白云園","騰飛園"],"陽光廣場":["龍江小區(qū)","芳草園"],"漢江路":["金信花園","龍鳳花園"],"嫩江路":["西城藍(lán)灣","花開四季"]}
start=input("請輸入起點(diǎn)(小區(qū)名):")
end=input("請輸入終點(diǎn)(小區(qū)名):")
for k,v in dic_estate.items():
if start in v:
startStop=k
break
for k,v in dic_estate.items():
if end in v:
endStop=k
break
startIndex=lst_busstop.index(startStop)
endIndex=lst_busstop.index(endStop)
if startIndex>endIndex:
print("您需要乘坐反方線線路。")
else:
print("起點(diǎn)站:{}站,終點(diǎn)站:{}站,共{}站。".format(startStop,endStop,endIndex-startIndex))
#輸出樣例
請輸入起點(diǎn)(小區(qū)名):白云園
請輸入終點(diǎn)(小區(qū)名):龍鳳花園
起點(diǎn)站:龍江新城市站,終點(diǎn)站:漢江路站,共2站。
10.假設(shè)字典dic_city存放了每個(gè)人旅游過的城市,內(nèi)容為{“張三鳳”:[“北京”,“成都”],“李茉綢”:[“上海”,“廣州”,“蘭州”],“慕容?!?[“太原”,“西安”,“濟(jì)南”,“上?!盷}。試編寫程序,實(shí)現(xiàn)以下功能。
(1)統(tǒng)計(jì)每個(gè)人旅游過的城市數(shù)目。
(2)統(tǒng)計(jì)去過上海的人數(shù)以及名單。
dic_city={"張三風(fēng)":["北京","成都"],"李茉綢":[ "上海", "廣州", "蘭州"], "慕容福":[ "太原", "西安","濟(jì)南","上海"]}
for k,v in dic_city.items():
print("{}去過了{(lán)}個(gè)城市".format(k,len(v)))
name=[]
for k,v in dic_city.items():
if "上海" in v:
name.append(k)
print("去過上海的有{}人,他們是{}".format(len(name),"、".join(name)))
#輸出結(jié)果
張三風(fēng)去過了2個(gè)城市
李茉綢去過了3個(gè)城市
慕容福去過了4個(gè)城市
去過上海的有2人,他們是李茉綢、慕容福
11.假設(shè)已有字典變量dic_score存儲了學(xué)生的成績信息(見表7-5),姓名為鍵。試編寫程序,統(tǒng)計(jì)每名學(xué)生的平均成績,添加至字典,最后將字典輸出。
姓名 | 語文 | 數(shù)學(xué) | 英語 | 計(jì)算機(jī) | 平均分 |
---|---|---|---|---|---|
徐麗 | 88 | 90 | 98 | 95 | 92.75 |
張興 | 85 | 92 | 95 | 98 | 92.5 |
劉寧 | 89 | 89 | 90 | 92 | 90.0 |
張旭 | 82 | 86 | 89 | 90 | 86.75 |
dic_score={"徐麗":[88,90,98,95],"張興":[85,92,95,98],"劉寧":[89,89,90,92],"張旭":[82,86,89,90]}
for k,v in dic_score.items():
dic_score[k].append(sum(v)/len(v))
print("姓名\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\t平均分")
for k,v in dic_score.items():
print(k,end="\t")
for x in v:
print(x,end="\t")
print()
#輸出結(jié)果文章來源:http://www.zghlxwxcb.cn/news/detail-436894.html
姓名 語文 數(shù)學(xué) 英語 計(jì)算機(jī) 平均分
徐麗 88 90 98 95 92.75
張興 85 92 95 98 92.5
劉寧 89 89 90 92 90.0
張旭 82 86 89 90 86.75文章來源地址http://www.zghlxwxcb.cn/news/detail-436894.html
到了這里,關(guān)于python 實(shí)驗(yàn)七 字典與集合 (上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!