Python生成不含0的4位随机数代码无法运行如何解决
Python生成不含0的四位随机数代码修正
原代码存在的问题
- 未导入
random模块,无法调用randint方法 - 排除逻辑完全错误:仅判断生成的数字是否等于0,无法识别数字中包含0的情况
- 存在语法错误:
RandomNumber = my_custom_random())多了多余的右括号 - 递归实现有栈溢出风险:反复命中不符合要求的值时,递归深度超过Python默认限制会抛出异常
修正后可运行代码
方案1:基于原逻辑调整(循环重试实现,易理解)
import random def my_custom_random(): while True: randInt = random.randint(1000, 9999) # 转换为字符串判断是否包含字符'0' if '0' not in str(randInt): return randInt def Q3a(): RandomNumber = my_custom_random() print(RandomNumber) Q3a()
方案2:更高效的实现(无重试,直接生成符合要求的数字)
每一位都直接从1-9的范围随机取值,从根源上避免出现0:
import random def my_custom_random(): return int(''.join(str(random.randint(1,9)) for _ in range(4))) def Q3a(): RandomNumber = my_custom_random() print(RandomNumber) Q3a()
内容的提问来源于stack exchange,提问作者Wong Li Zong
相关产品推荐
相关产品推荐

