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]