python - "try"在 "def"之后没有通过

标签 python python-2.7 try-except

我只是在尝试 Python,而且非常喜欢它!但是我被 try/except 困住了。

我有一个代码可以检查 raw_input 是否为整数,但我想让它起作用,但它不想成为它:)

这是代码,我有这个:

number_of_iterations = raw_input("What is your favorite number?")
try:
    int(number_of_iterations)
    is_number = True
except:
    is_number = False

while not is_number:
    print "Please put a number!"
    number_of_iterations = raw_input("What is your favorite number?")
    try:
        int(number_of_iterations)
        is_number = True
    except:
        is_number = False

我不想在这里重复我的话&所以我想着要实现功能:

def check_input(input_number):
    try:
        int(input_number)
        return True
    except:
        return False

但是输入字符串就报错,说int不能用于字符串。看起来它没有看到“try”关键字。 smone 可以解释为什么会发生这种情况以及将来如何预防吗?

最佳答案

试试这个,它可以避免在不需要 def

的情况下重复自己
while True:
    try:
        number_of_iterations = int(raw_input("What is your favorite integer?"))
        break
    except ValueError:
        print "Please put an integer!"

编辑:根据评论者的建议,我已将 break 添加到 block 的 try 部分以消除 else(原文留作下文引用)。另外,我将“数字”更改为“整数”,因为“3.14”在上面的代码中无效。

这是我最初的建议。上面的行数更少(有些人可能会说这样更简洁),但我更喜欢下面的行,因为对我来说意图更清楚。

while True:
    try:
        number_of_iterations = int(raw_input("What is your favorite integer?"))
    except ValueError:
        print "Please put an integer!"
    else:
        break

关于python - "try"在 "def"之后没有通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225162/

相关文章:

python - Django 元类访问外部属性

访问子字典键的 Pythonic 方式

python - python try-except中可以有else block 语句吗?

python - matplotlib savefig 不输出文件

python - Django - 验证错误 "value must be an integer"

python - NoReverseMatch at/allbook Reverse for 'random_book' with arguments '(' ', )' not found. 1 pattern(s) tried: [' info/(?P<pk>[0-9]+)\\Z']

Python 脚本不通过命令行运行

python - python中的多个异常(exception)

Python,尝试异常(exception),打印错误行#

python - 如何在python中安装带有下划线的模块名称?