python例题(06)

1.筛选法判断素数程序,输出200-400以内的素数

t1 = list(range(0, 401))
i = 2  # 最小素数为2,遍历元素从2开始,列表中索引与值相同
while i < 400:  # 遍历列表
    j = t1[i] * 2  # 删除当前值的倍数
    while j < 400:
        t1[j] = 0  # 将倍数置为0
        j = j + t1[i]
    i += 1
    while t1[i] == 0:
        i += 1  # 面试:排除已经置为0的元素,不在遍历
for i in range(200, 400):  # 将列表中不是0的元素输出
    if t1[i] != 0:
        print(t1[i], end=' ')
# 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397

2.将20个随机十进制整数存取到列表xx中,计算xx列表中奇数的平均值ave1,偶数平均值ave2,偶数的方差totfc的值。

import random as r
t1 = r.sample(range(10,40),20)
t2 = []
t3 = []
for i in t1:
    if i%2==0:
        t2.append(i)
    else:
        t3.append(i)
print('偶数为',t2)
print('奇数为',t3)
sum1 = 0
sum2 = 0
ave1=0
ave2=0
t = 0
for j in t2:
    sum1 = sum1 + j
    t = t+1
    ave1 = sum1/t
print('ave1=%.6f'%ave1)
for m in t3:
    sum2 = sum2 + m
    t = t+1
    ave2 = sum2/t
print('ave2=%.6f'%ave2)
import statistics as s
totfc = s.variance(t2)
print('totfc=%.6f'%totfc)
# 偶数为 [32, 36, 28, 16, 14, 20, 18, 30, 38, 22, 24, 10]
# 奇数为 [23, 25, 29, 37, 33, 11, 39, 31]
# ave1=24.000000
# ave2=11.400000
# totfc=79.272727

3.新建数值随机列表完成选择法降序排序

import random as r

t1 = r.sample(range(10, 30), 10)
print('排序前', t1)
for i in range(len(t1) - 1):
    for j in range(i + 1, len(t1)):
        if t1[i] < t1[j]:
            t1[i], t1[j] = t1[j], t1[i]
print('排序后', t1)
# 排序前 [20, 15, 10, 23, 26, 27, 11, 22, 16, 13]
# 排序后 [27, 26, 23, 22, 20, 16, 15, 13, 11, 10]

4.新建数值随机列表完成插入法升序排序

import random as r

t1 = r.sample(range(0, 20), 20)
print('排序前', t1)
for i in range(1, 20):
    t = t1[i]  # t为代插入元素
    j = i - 1
    # while循环作用,将比当前元素大的值向后移动一个位置
    while j >= 0 and t < t1[j]:
        t1[j + 1] = t1[j]
        j = j - 1
    t1[j + 1] = t  # 插入备份的元素
print('排序后', t1)
# 排序前 [12, 4, 0, 11, 6, 1, 9, 14, 18, 15, 10, 17, 13, 5, 7, 16, 19, 3, 8, 2]
# 排序后 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值