根据提示,在右侧编辑器补充代码,创建字典并对该字典进行如下操作: 1.添加一门成绩:体育:90 2.打印化学成绩,如果找不到,则输出‘不存在’ 3.修改语文成绩为100 4.删除信息成绩 5.输出字典。
第一问,两种做法:
score_dict = {}
for i in range(5):
# 请按下面的注释提示添加代码,完成相应功能
#1.对score_dict字典进行初始化,数据从键盘输入,得到如任务描述中的字典
###### Begin ######
if i ==0:
key=input()
value=input()
score_dict[key]=value
if i>0:
key=input()
value=eval(input())
score_dict[key]=value
####### End #######
score_dict = {}
for i in range(5):
# 请按下面的注释提示添加代码,完成相应功能
#1.对score_dict字典进行初始化,数据从键盘输入,得到如任务描述中的字典
###### Begin ######
key=input()
value=input()
if value.isdigit():
value=eval(value)
score_dict[key]=value
####### End #######
第二问,增减查修较为简单
# 请按下面的注释提示添加代码,完成相应功能
#2.请在此添加代码,实现对score_dict的添加、删除、查找、修改等操作,并打印输出相应的值
###### Begin ######
score_dict['体育']=90
print(score_dict.get('化学','不存在'))
score_dict['语文']=100
del score_dict['信息']
print(score_dict)
####### End #######
根据提示,在右侧编辑器补充代码,由列表创建字典,计算张三同学的总分,将总分作为新的键值对加入字典,最后输出字典中的所有键值对。
第二问注意一下要将非张三的数值加起来。最后输出的时候注意不能直接输出字典,要转化一下格式。
# 创建并初始化score_dict字典
score_list=['姓名','语文','英语','数学','体育']
# 请按下面的注释提示添加代码,完成相应功能
#1.根据上面的列表创建score_dict字典并初始化,得到如任务描述中的字典,字典中的值从键盘输入
###### Begin ######
score_dict={}
for key in score_list:
if key=="姓名":
value=input()
score_dict[key]=value
else:
value=eval(input())
score_dict[key]=value
####### End #######
# 请按下面的注释提示添加代码,完成相应功能
#2.请在此添加代码,计算张三同学的总分,并将总分作为新的键值对加入,最后输出score_dict的所有键值对
###### Begin ######
sum1=0
for i in score_dict.values():
if i !='张三':
sum1+=i
score_dict["总分"]=sum1
for k,v in score_dict.items():
print(k,v)
####### End #######
根据提示,在右侧编辑器补充代码,执行以下操作: 1.创建一个字典score_dict,里面包含三个列表,输出 2.创建一个列表score_list,里面包含两个字典,输出
#创建空列表score_dict
score_dict={}
#每次循环生成一个键值对
for i in range(3):
#输入课程名作为字典的键
key=input()
# 创建空列表
value_list=[]
# 请按下面的注释提示添加代码,完成相应功能
#1.从键盘输入两个分数,保存到列表中
###### Begin ######
v1=eval(input())
value_list.append(v1)
v2=eval(input())
value_list.append(v2)
####### End #######
score_dict[key]=value_list
print(score_dict)
#创建空列表score_list
score_list=[]
#每次循环生成一个字典
for i in range(2):
# 创建空字典
s_dict={}
# 请按下面的注释提示添加代码,完成相应功能
#2.对从键盘输入三门课程及成绩,保存到字典中
###### Begin ######
for j in range(3):
k=input()
v=eval(input())
s_dict[k]=v
####### End #######
score_list.append(s_dict)
本关任务:从键盘输入一串字符,统计字符串中出现次数最多的单词和次数,如果有多个相同的最多次数,需要输出多个单词及次数。
完成这个任务要解决以下难点:
1.非英文单词与大小写的归一化
2.空格分离时,“”项不能计数
3.字典的排序以及输出格式问题
#输入的字符串中可包含".,~!@#$%^&*()+_/0123456789"等非英文单词字符
WordStr = input()
#stpe1:归一化处理
WordStr=WordStr.lower()
for ch in ".,~!@#$%^&*()+_/0123456789":
WordStr=WordStr.replace(ch," ")
#2分割字符串为列表,英文单词之间用空格分隔
Wordlist=WordStr.split(" ")
#3 统计每个单词的个数(列表或字典的方法)
Worddict={}
for word in Wordlist:
if word in Worddict and word !="":
Worddict[word]+=1
elif word not in Worddict and word !='':
Worddict[word]=1
#字典排序,返回值是一个列表
lis1=sorted(Worddict.items(),key=lambda x:x[1],reverse=True)
#输出最高频率单词和次数 ,多个相同高频字也要输出
for i in range(len(lis1)):
if lis1[i][1]==lis1[0][1]:
print(lis1[i][0],lis1[i][1])
本关任务:编写一个能将3位数以内的整数翻译成英文的程序。
本关注意点:整十和整百的处理,以及三位数英文之间的关联。
#数字翻译成英文程序
def unit_to_word(u): #将0~9的数字转换成英文,并返回转换后的英文
# 请在下面编写代码
# ********** Begin ********** #
numlist1=([0,'zero'],[1,'one'],[2,'two'],[3,'three'],[4,'four'],[5,'five'],[6,'six'],[7,'seven'],[8,'eight'],[9,'nine'])
numdict1=dict(numlist1)
return numdict1[u]
# ********** End ********** #
# 请不要修改下面的代码
def tens_to_word(t): #利用unit_to_word,将10~19、
#以及20~99的十位部分数字转换成英文,并返回转换后的英文
# 请在下面编写代码
# ********** Begin ********** #
if t<10:
return unit_to_word(t)
elif 10<=t<=19:
numlist2=([10,'ten'],[11,'eleven'],[12,'twelve'],[13,'thirteen'],[14,'fourteen'],[15,'fifteen'],[16,'sixteen'],[17,'seventeen'],[18,'eighteen'],[19,'nineteen'])
numdict2=dict(numlist2)
return numdict2[t]
elif 20<=t<=99:
numlist3=([2,'twenty'],[3,'thirty'],[4,'forty'],[5,'fifty'],[6,'sixty'],[7,'seventy'],[8,'eighty'],[9,'ninety'])
numdict3=dict(numlist3)
if t%10==0:
return numdict3[t//10]
if t%10!=0:
return numdict3[t//10]+" "+tens_to_word(t%10)
# ********** End ********** #
# 请不要修改下面的代码
def hundreds_to_word(h): #利用unit_to_word、tens_to_word进行转换,并返回转换后结果的函数
# 请在下面编写代码
# ********** Begin ********** #
if 0<=h<=99:
return tens_to_word(h)
if h%100!=0:
if 100", hundreds_to_word(test))