Python中如何生成指定数量的末尾非0随机数对?
解决生成5组末尾非0三位数随机数对的问题
问题说明
需求:生成5组(共10个)末尾不为0的三位数随机数对(x和y)。
现有Python代码循环5次生成随机数,若x或y末尾为0则输出“x”,无法得到恰好5组有效结果。希望修改程序,要么持续运行直到生成5组符合要求的数对,要么将末尾为0的随机数替换为符合要求的数。
原代码:import random for k in range(5): x = (random.randint(100, 1000)) y = (random.randint(100, 1000)) if (x % 10 != 0) and (y % 10 != 0): print(x, "+", y, "=") else: print("x")原代码示例输出:
567 + 533 = 196 + 521 = x 624 + 323 = x
解决方案
方案1:持续生成直到凑够5组有效数对
通过循环收集有效数对,直到满足5组的要求,确保最终输出全部为有效结果。
import random valid_pairs = 0 while valid_pairs < 5: # 修正randint上限为999,避免生成四位数1000 x = random.randint(100, 999) y = random.randint(100, 999) if x % 10 != 0 and y % 10 != 0: print(f"{x} + {y} =") valid_pairs += 1
方案2:替换末尾为0的随机数
针对单个随机数,若末尾为0则重新生成,直到符合要求,保证每次循环都输出一组有效数对。
import random for _ in range(5): # 生成符合要求的x while True: x = random.randint(100, 999) if x % 10 != 0: break # 生成符合要求的y while True: y = random.randint(100, 999) if y % 10 != 0: break print(f"{x} + {y} =")
内容的提问来源于stack exchange,提问作者user22670372
相关产品推荐
相关产品推荐

