1、筛选法求素数
分析:
(1)将300以内的整数均标记为素数
(2)将1标记为非素数
(3)将能被2整除的所有数标记为非素数
(4)找到下一个素数,将能被其整除的所有数标记为非素数;重复该操作,直到最后一个素数
(5)输出所有依旧标记素数的数
#筛选法求素数
prim=[1]*300
prim[0:1]=[0,0]
for i in range(2,300):
if prim[i]==1:
for j in range(i+1,300):
if prim[j]!=0 and j%i==0:
prim[j]=0
print("300以内的素数:")
for i in range (2,300):
if prim[i]:
print(i , end=' ')
2、查找
利用列表统计食堂问卷调查反馈情况,输出次数,找出最多的评语
分析:
(1)可以利用列表的count()方法和max()jams及
(2)题目给出的是字符串,需要先转换为列表,而且按照词改变,这里要用split()方法,根据“ ,”来拆分字符串转换为列表
#comments=['不满意','一般','满意','很满意']
# 方便起见用 1,2,3,4代替
comments_1=['1','2','3','4']
result="1,3,4,2,3,1,2,3,4,1,2,1,1,1,1,2,3,3,2,3,4,1,4,4,4,1,1,2,"\
"3,2,4,4,4,4,1,2,3,4,1,2,3,4,2"
resultlist=result.split(',')
commentcnts=[0]*4
for i in range(4):
commentcnts[i]=resultlist.count(comments_1[i])
most=max(commentcnts)
mostcomment=comments_1[commentcnts.index(most)]
print("统计:")
print("很满意人数{}:".format(commentcnts[3]))
print("满意人数:{}".format(commentcnts[2]))
print("一般人数:{}".format(commentcnts[1]))
print("不满意人数:{}".format(commentcnts[0]))
print("最多评语:",mostcomment)
3、统计两个筛子出现点数的概率
from random import *
faces=[0]*13
for i in range(10000):
face1=randint(1,6)
face2=randint(1,6)
faces[face1+face2] += 1
print("结果如下:")
for i in range(2,13):
rate=faces[i]/10000
print('点数{}出现了{}次'.format(i,faces[i]),end=',')
print('概率为{:.2%}.'.format(rate))