python - 获取某个范围内的整数输入

标签 python

我正在尝试获取原始输入并检测它是否在一个范围内。
这是我的代码。

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 范围内的整数。

最佳答案

如果你想“获取某个范围内的整数输入”,你需要两件事:

  1. 检查输入是否为int
  2. 检查它是否在您的范围内

检查输入是否为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/

相关文章:

python - ModuleNotFoundError : No module named 'pandas.io.formats.csvs'

python - 如何在Python中使用networkx和matplotlib在同一张图中绘制不同形状和bbox面色的节点?

带利息支付的 Python For 循环

python - 如何更改 Kivy 中禁用小部件的颜色?

python - 您如何从列表中选择一个随机元素并将其删除?

python - 在 Ubuntu 上的 OpenCV 中找不到 xfeatures2d

python - 在正方形的特定区域创建随机数

python - tkinter 文本输入验证

python - 在数据框上按 groupby 平铺

python - 在方法链接期间临时保留对对象的更改