练习4

1.社区为了补助困难家庭,对所有收入低于2000元(不含2000元)的家庭,增加相当于其收入30%的补助。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

编写程序实现:输入若干个家庭的收入列表(在同一行,以逗号隔开),计算并输出增加补助后的家庭收入列表。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出的每个收入后跟一个空格,最后一个收入后没有空格。

money_list = list(eval(input()))
new_list = []
for i in money_list:
    if i < 2000:
        i = i + i * 0.3
        new_list.append(i)
    else:
        new_list.append(i+0.0)

for i in new_list:
    print(i, end=' ' if i != new_list[-1] else '')

2 。 学校举办新生歌手大赛,每个选手的成绩由评委的评分去掉一个最高分和一个最低分剩下评分的平均值得到。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

编写程序实现:输入第一行指定n,从第二行开始每行输入一个评委的得分(共n行),计算选手的成绩,并输出。

n=int(input())
min=100
max=0
sum=0
for i in range(0,n):
    s=float(input())
    sum=sum+s
    if(s>max):
        max=s
    if(s<min):
        min=s
sum=sum-min-max
c=sum/(n-2)
print("该歌手最终成绩为{:.1f}".format(c))

3.计算Fibonacci数列的前20项的值,并保存到列表中。
用户输入序号(1~20),输出数列中相应的值。

def fib(n):
    if n == 0:
        return [0]
    elif n == 1:
        return [0, 1]
    else:
        lst = fib(n - 1)
        lst.append(lst[-1] + lst[-2])
        return lst

list_fib = fib(20)
n = eval(input())
print(f'Fibonacci数列第{n}项的值={list_fib[n]}')

4.输入一个学生5门课程的成绩,存放于列表中,输出平均分和要补考的门数。

list_grade = [0, 0, 0, 0, 0]
sum_grade = 0
lower_grade = 0
for i, j in enumerate(list_grade):
    a = float(input())
    list_grade[i] = a

for i in list_grade:
    sum_grade += i

print("{:.1f}".format(sum_grade/5))

for i in list_grade:
    if i < 60:
        lower_grade += 1
print(lower_grade)

5.用户分别从键盘输入两个列表list1和list2,将列表list2合并到list1中,并在list1尾部添加两个数字99和100,最后输出列表list1.

list1 = list(eval(input()))
list2 = list(eval(input()))
list1 = list1 + list2 + [99,100]
# 如何进行列表合并
# 如何进行列表添加
print(list1)

6.在有序(正序)列表中添加一个元素,使列表仍保持有序。(列表中的元素为数值型数据)

list1 = list(eval(input()))
num = eval(input())
list1.append(num)
list1.sort()
print(list1)

7.定义一个电话簿,里头设置以下联系人:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'mayun':'13309283335',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'zhaolong':'18989227822',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'zhangmin':'13382398921',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'Gorge':'19833824743',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'Jordan':'18807317878',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'Curry':'15093488129',‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

'Wade':'19282937665'‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

现在输入人名,查询他的号码。

phone = {
    'mayun':'13309283335',
    'zhaolong':'18989227822',
    'zhangmin':'13382398921',
    'Gorge':'19833824743',
    'Jordan':'18807317878',
    'Curry':'15093488129',
    'Wade':'19282937665'
}

name = input()
if name in phone.keys():
    print(phone.get(name))
else:
    print("not found")

8.用字典存储如下5个学生的成绩:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

“Jack”:67, “May”:89, “Rose”:56, “June”:90, “Black”:88‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

编程实现输入姓名,输出成绩

grade = {
    "Jack":67,
    "May":89,
    "Rose":56,
    "June":90,
    "Black":88
}
name = input()
print(grade.get(name))

9.编程实现:输入一个身份证号码,按上述说明计算得到验证码,与输入的身份证号码的最后一位比对,输出判断结果。具体见输入输出示例:

w = (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
str1 = input()
sum_num = eval(str1[0]) * w[0] + eval(str1[1]) * w[1] + eval(str1[2]) * w[2] + eval(str1[3]) * w[3] + eval(str1[4]) * w[4]+ eval(str1[5]) * w[5] + eval(str1[6]) * w[6] + eval(str1[7]) * w[7] + eval(str1[8]) * w[8] + eval(str1[9]) * w[9]+ eval(str1[10]) * w[10] + eval(str1[11]) * w[11] + eval(str1[12]) * w[12] + eval(str1[13]) * w[13] + eval(str1[14]) * w[14]+ eval(str1[15]) * w[15] + eval(str1[16]) * w[16]


sum_num %= 11
x = (12-sum_num)%11
if str(x) == str1[17]:
    print("这是一个正确的身份证号码。")
else:
    print("这是一个错误的身份证号码。")

10.请输入一条信息,输出该信息对应的莫尔斯电码。

morse_dict = {
    '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': '__..', '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': '__..', ' ': ' '
}

code = list(input())
for i in code:
    print(morse_dict[i], end='')

11.给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。

n=int(input())

ans={}
tmp=list(map(int, input().split()))
for t in tmp:
    if t in ans.keys():
        ans[t]+=1
    else:
        ans[t]=1
res=[]
for k,v in ans.items():
    res.append([k,v])

res=sorted(res,key=lambda u:[-u[1],u[0]])
for r in res:
    print(r[0],r[1])
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐