Python上机练习题

1、 编写一个程序,体术输入整数X,然后计算从1开始,连续X个整数之和。提示reduce()函数。
程序运行截图

from functools import reduce
num = input("请输入整数x:")
num = int(num)
sum = reduce(lambda x, y: x+y, range(1, num))
print("从1至X的和为:%d" %(sum))

2、已知两个列表:cistys = [‘suzhou’, ’sahnghai’, ’hangzhou’, ‘nanning’],codes=[‘0512’,’021’,’0571’,’025’]。要求:创建一个字典,以citys中的元素未key,以codes中的元素为value。提示:创建字典的方法,zip()函数
程序运行截图


```python
citys = ['suzhou', 'shanghai', 'hangzhou', 'nanning']
codes = ['0521', '021', '0571', '025']
z = dict(zip(citys, codes))
print("为合并成为字典之前的城市列表:%s" %(citys))
print("为合并成为字典之前的城市代码列表:%s" %(codes))
print("合并两个列表后的字典:%s" %(z))

3、根据上题中所得到字典中,选出value不三个数字的键值对组成一个新的字典。比如“shanghai”:”021”就不应该出现在新字典出现。提示方法:字典的update()、items()方法
程序运行截图

citys = ['suzhou', 'shanghai', 'hangzhou', 'nanning']
codes = ['0521', '021', '0571', '025']
city = []
code = []
z = dict(zip(citys, codes))
for key in z:
    if int(z[key]) // 100 != 0:
        city.append(key)
        code.append(z[key])
k = dict(zip(city, code))
print("未去除键值是三位数的字典:%s" %(z))
print("去除了键值是三位数的新字典:%s" %(k))

4、为老师编写一个处理全班考试成绩的程序。(要求:(1)依次录入班级同学的姓名和分数;(2)录入完毕,则打印除全班的平均分,最高分的同学姓名和分数)
程序运行截图

name_list = []
source_list = []
while True:
    name = input("请输入学生姓名:")
    source = input("请输入学生成绩:")
    if name == 'q':
        break
    else:
        name = str(name)
        source = int(source)
        name_list.append(name)
        source_list.append(source)
d = dict(zip(name_list, source_list))
source_sum = sum(d.values())
number = len(d)
print("平均分%s" %(source_sum/number))
stu_max = max(d.values())
max_name = list(d.keys())[list(d.values()).index(stu_max)]
print("最高分同学为姓名为:%s,成绩为:%d" %(max_name, stu_max))

5、一个列表由若干个整数组成,(要求:将偶数放在前面,奇数放在后面,并输出该列表)
程序运行截图

ood = list(filter(lambda x: x % 2 == 1, range(1, 20)))
add = list(filter(lambda x: x % 2 == 0, range(1, 20)))
add.extend(ood)
print(add)

更多案例分享请访问fireITBlog博客

发布了21 篇原创文章 · 获赞 4 · 访问量 3730

猜你喜欢

转载自blog.csdn.net/adim__/article/details/102712972
今日推荐