Python练习十一

时间:2023-03-09 09:06:45
Python练习十一

1.写一个程序,提示输入整数X,然后计算从1到X连续整数的和.

num = int(input('please the input number:'))
sum_num = 0
for i in range(1, num + 1):
sum_num += i print(sum_num)

2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]。

tu_1 = (('a'), ('b'))
tu_2 = (('c'), ('d'))
ret = zip(tu_1, tu_2) # zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
res = map(lambda tup: {tup[0]: tup[1]}, ret) # 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
print(list(res))

3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb。

name = ['alex', 'wupeiqi', 'yuanhao', 'nezha']
ret = map(lambda x: x + '_sb', name)
print(list(ret))

4.用filter函数处理数字列表,将列表中所有的偶数筛选出来。

num = [1, 3, 5, 6, 7, 8]
ret = filter(lambda number: number % 2 == 0, num)
print(list(ret))

5.随意写一个20行以上的文件
运行程序,先将内容读到内存中,用列表存储。
接收用户输入页码,每页5条,仅输出当页的内容。

with open('log', encoding='utf-8') as f:
li = f.readlines() page_num = int(input('please the input page_num:')) # 用户输入的页码
pages, mod = divmod(len(li), 5) # 求有多少页,有没有剩余的行数 if mod != 0: # 如果有剩余的行数,那么页数加1
pages += 1
if page_num > pages or page_num <= 0: # 用户输入的页码大于总页数或小于等于0
print('你输入的页码超出范围')
elif pages == page_num and mod != 0: # 用户输入的页码是最后一页,且有剩余的行数
for i in range(mod):
ret = li[(page_num - 1) * 5 + i].strip() # 只 输出这页上剩余的行数
print(ret)
else:
for i in range(5):
ret = li[(page_num - 1) * 5 + i].strip()
print(ret)