Python如何判断整数输入是否在生成的随机数列表中
问题根源
- 代码核心问题为数据类型不匹配:
input()函数返回值为字符串类型,而random.sample()从range(1,11)中抽取的元素均为整数类型,不同类型的归属判断永远返回False,因此无论用户输入什么内容,都会走到you lose分支。
修复方案
将用户输入转换为整数类型即可匹配判断逻辑,修复后代码如下:
import random numbers = range(1, 11) r = int(input("Chose your number from 1 to 10 ")) a = random.sample(numbers, k=6) print(a) if r in a: print("you won!") else: print("you lose")
可选优化:如果需要兼容用户输入非数字、输入超出1-10范围的场景,可以增加输入校验逻辑,避免程序直接报错:
import random numbers = range(1, 11) # 输入校验 while True: input_str = input("Chose your number from 1 to 10 ") try: r = int(input_str) if 1 <= r <= 10: break print("输入不在1-10范围内,请重新输入") except ValueError: print("输入不是有效数字,请重新输入") a = random.sample(numbers, k=6) print(a) if r in a: print("you won!") else: print("you lose")
内容的提问来源于stack exchange,提问作者andr3a00
相关产品推荐
相关产品推荐

