补充:列表与元组的应用实例(课本85页

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值