概述
python练习题-随机数生成与遍历
题目要求
生成有100个随机正整数的列表,随机数小于1000,遍历列表,删除其中的素数,然后输出最大值,将剩余数值降序输出
思路分析
随机数的生成需要使用random模块
lst = [random.randint(2, 999) for i in range(100)]
素数,是大于1的数,除了1和自身,没有其他的因数,大白话就是除了1和自身,除以其他的数都得不到整数结果
假设一个数值是M,那么从2开始到M//2 ,用M逐个对这些数取模,如果得到0,就说明可以整除,M就不是素数
为啥只遍历到M//2 呢,因为大于M//2的数,除了M意外,其他的肯定不能被整除,简单的数学知识,不必再解释
def is_prime(number):
for i in range(2, number/2):
if number % 2 == 0:
return False
return True
想要删除素数,千万不能这么写
for number in lst:
if is_prime(number):
lst.remove(number)
在使用for循环对列表进行遍历时,本质上是在根据数据的索引获取数据,如果使用remove方法删除的某个数据,那么被删除的数据后面的数据的索引都发生了改变,会影响for循环,导致紧挨着你删除的数据的下一个数据无法遍历到,下面的这个例子可以很清楚的观察到这个情况
lst = [2, 4, 6, 8, 10,
最后
以上就是悲凉面包为你收集整理的python生成100个随机数_python练习题-随机数生成与遍历的全部内容,希望文章能够帮你解决python生成100个随机数_python练习题-随机数生成与遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复