题目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)