Python刷题汇总2

题目1

生成器生成杨辉三角

def triangles():
    n,a=0,1
    lst=[1]
    while n<10:
        yield lst
        buffer = lst[:]
        if len(lst)==1:
            lst.append(1)
        else:
            for i in range(1,len(lst)):
                lst[i]=buffer[i-1]+buffer[i]
            lst.append(1)
        n=n+1
    return 'done'

for t in triangles():
    print(t)

输出结果:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

题目2

用随机函数产生500行1-100之间的随机整数存入文件random.txt中,编程寻找这些整数中的众数并输出,众数即为一组数中出现最多的数

import random
with open('random.txt','w+') as fp:
	for i in range(501):
		fp.write(str(random.randint(1,100)))
		fp.write('\n')
	fp.seek(0)
	nums=fp.readlines()
nums=[num.strip() for num in nums]
setNum=set(nums)
lst=[0]*101
for item in setNum:
	c=nums.count(item)
	lst[int(item)]=c
for i in range(len(lst)):
	if i == max(lst):
		print(i)

题目3

文件article,txt中存放了一篇英文文章,假设文章中的标点符号仅包含’,’ ‘.’ ‘!’,’?'和‘…’,编程找出其中最长的单词并输出

with open('article,txt') as fp:
	data=fp.read()
words=data.split()
lst=[]
for word in words:
	if word[-3:]=='...':
		word=word[:-3]
	if word[-1] in ',.!?':
		word=word[:-1]
	lst.append(word)

result=sorted(lst,key=len,reversed=True)
maxlen=len(lst[0])
# 最长的单词可能不止一个
for item in set(result):
	if len(item)==maxlen:
		print(item)

题目4

用字典统计词频

poem_En='Life can be good, Life can be sad, Life is mostly cheerful, But sometimes sad'
poem_list=poem_En.split()
poem_dic={}
for item in poem_list():
	if item[-1] in ',.!?\':
		item=item[:-1]
	p_dic[item]=p_dic.get(item,0)+1

题目5

在这里插入图片描述

def func(stu_list):
	d={}
	for item in stu_list:
		r=stu_list.split('_')
		a,b=r[0],r[1].split()   #去除换行符
		if a not in d:
			d[a]=[b]
		else:
			d[a]=+[b]
	lst=sorted(d.item(),key=lambda d : len(d[1]),reversed=Ture)
	return lst

if _name_=="_main_":
	try:
		with open('file.txt') as f:
			stu_list=f.readlines()  #用readlines读取的时候最后会有换行符,要注意去掉
	except FileNotFoundError:
		print('The file does not exist')
	else:
		result=func(stu_list)
		for item in result :
			print(item[0],'->',item[1])

题目6

在这里插入图片描述

import random
def func(data):
	cls_no=random.choice(list(data.key()))
	stu_no=random.randint(1,data[cls_no])
	return "{}{:02}".format(cls_no,stu_no)
if _name_== "_main_":
	data={"A001":32,"A002":47,"B001":39,"B002":42}
	result=set()   #避免有重复存在
	while len(result)<10:
		result.add(func(data))
	print(result)
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值