Python字典

课内实验09(字典)
班级: 学号: 2020212205090 姓名: 缪纪 得分: 50
一、课内实验题(共5小题,50分)
题型得分 50
【描述】
输入一个1到7的数字,输出对应的星期名的缩写。
1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
6 Sat
7 Sun
【输入】
输入1到7之间数字。
【输出】
输出对应的星期名的缩写。
【输入示例】

1
【输出示例】
Mon

(10分)
我的答案:
d={1:“Mon”,2:“Tue”,3:“Wed”,4:“Thu”,5:“Fri”,6:“Sat”,7:“Sun”}
t=int(input())
print(d[t])
题目得分 10
【描述】
输入一个简单英文句子,统计并依次输出该句子中元音字母a、e、i、o、u(不区分大小写)出现的次数。
【输入】
一行中输入一个简单英文句子。
【输出】
一行中依次输出a、e、i、o、u在句子中出现的次数,整数以空格间隔。
【输入示例】
If so,you already have a Google Account. You can sign in on the right.
【输出示例】
6 4 4 7 3
【来源】
《Python程序设计基础》第6章编程题3。(10分)
我的答案:
d={“a”:0,“e”:0,“i”:0,“o”:0,“u”:0}
t=input()
for i in t:
if i==“a” or i==“A”:
d[“a”]+=1
elif i==“e” or i==“E”:
d[“e”]+=1
elif i==“i” or i==“I”:
d[“i”]+=1
elif i==“o” or i==“O”:
d[“o”]+=1
elif i==“u” or i==“U”:
d[“u”]+=1
print(d[“a”],d[“e”],d[“i”],d[“o”],d[“u”])

题目得分 10
【描述】
定义函数:def number_to_words(number),该函数接受一个整数作为参数;返回一个小写英文字符串,字符串的单词描述了该整数。
英文单词:zero、one、two、three、four、five、six、seven、eight、nine。
例如,如果输入的整数是:-4721,函数返回字符串:“negative four seven two one”。
【输入】
输入一个整数。
【输出】
整数的英文单词描述(单词之间以一个空格间隔)。
【输入示例】

-4721
【输出示例】
negative four seven two one
【来源】
《Python程序设计基础》第6章编程题4。
(10分)
我的答案:
def number_to_words(number):
d={"-":“negative”,“1”:“one”,“2”:“two”,“3”:“three”,“4”:“four”,“5”:“five”,“6”:“six”,“7”:“seven”,“8”:‘eight’,‘9’:“nine”,“0”:“zero”}
s=""
for j in number:
s+=d[j]
s+=" "
return s
def main():
i=input()
print(number_to_words(i))
main()
题目得分 10
【描述】
定义函数:def formatted_print(dictionary),该函数接受一个字典作为参数,字典的键是学生姓名,字典的值是对应学生的平均分数。函数按照如下所指定的格式打印学生姓名及其对应的平均分数。
例如,如果输入的字典是:{‘john’:34.480,‘eva’:88.5, ‘alex’:90.55, ‘tim’: 65.900},函数打印出如下信息:

alex 90.55
eva 88.50
tim 65.90
john 34.48
姓名输出宽度10且左对齐;平均分数输出宽度6,保留2位小数,且右对齐。
所有这些信息按照学生的平均分数降序排序输出。
输入数据,调用该函数,输出结果。
【输入】
每一行输入姓名、平均分数,其间以逗号分隔。每行数据构成字典的一个键值对。可能会有多行输入。
【输出】
见【输出示例】。
【输入示例】
john,34.480
eva,88.5
alex,90.55
tim,65.900
【输出示例】
alex 90.55
eva 88.50
tim 65.90
john 34.48
(10分)
我的答案:
def formatted_print(dd):
d2=sorted(dd.items(),key=lambda x:x[1],reverse=True)
for i in d2:
print("%-10s"%i[0]+"%6s"%round(i[1],2))

def main():
d={}
for s in iter(input,""):
k=s.split(",")
d[k[0]]=float(k[1])
formatted_print(d)
main()

题目得分 10
【描述】
给定公司n名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。
【输入】
一行中给出n个整数,即每个员工的工龄,范围在[0, 50],整数间以空格间隔。
【输出】
按工龄的递增顺序输出每个工龄的员工个数,格式为:工龄:人数。每项占一行。如果人数为0则不输出该项。
【输入示例】

10 2 0 5 7 2 5 2
【输出示例】
0:1
2:3
5:2
7:1
10:1
(10分)
我的答案:
d={}
for i in range(51):
d[i]=0
n=map(int,input().split())
for i in n:
d[i]+=1
d2=sorted(d.items(),key=lambda x:x[0],reverse=False)
for i in d2:
if i[1]!=0:
print(str(i[0])+":"+str(i[1]))
题目得分 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值