我正在尝试获取原始输入并检测它是否在一个范围内。
这是我的代码。
def gold_room():
print "This room is full of gold. How much do you take?"
next = raw_input("> ")
if next == int in range(50):
how_much = int(next)
else:
dead("Man, learn how to type a number.")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
当我输入数字时,它会给我其他信息:“伙计,学习如何输入数字。”
我猜行不起作用的是“if next == int in range(50):
有人可以帮我吗?
预先感谢!
编辑:
我是个菜鸟,所以那条线只是我的猜测。
我认为接下来它会检查它是否是 0-50 范围内的整数。
最佳答案
如果你想“获取某个范围内的整数输入”,你需要两件事:
- 检查输入是否为
int
- 检查它是否在您的范围内
检查输入是否为int
try/except
在这里将是完美的:
n = raw_input('> ')
try:
n = int(n)
except ValueError:
dead() # or what you want
为什么这很好?
因为如果 n
是一个 int
,你会将其转换为整数,如果它不是引发异常,你可以调用你的 dead()
函数。
检查它是否在您的范围内
如果到达这一点,则意味着未引发之前的异常,并且 n
已转换为整数。
所以你只需要做:
if 0 <= n <= 50:
print 'You win'
else:
print 'You lose'
不要这样做:
if n in range(50):
# ...
因为它会免费构建一个包含 50 个数字的列表。
注意:不要使用 next
作为变量,因为它会隐藏内置 next()
关于python - 获取某个范围内的整数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9437808/