python - 如何在Python中使用“尝试和异常”引发打印消息错误?

标签 python exception input error-handling try-catch

我正在尝试在Python中运行collat​​z,但在考虑不是整数的输入时遇到了麻烦。我希望在考虑用户非整数输入的代码中进行“尝试并除外”工作。请在下面查看我的代码。

number = int(input("Please enter a number: "))

def collatz(number):
    if number % 2 == 0:
        print(number // 2)
        return number // 2
    elif number % 2 == 1:
        print(number * 3 + 1)
        return number * 3 + 1

while number != 1:
    try:
        number = collatz(int(number))
    except ValueError:
        print("Something went wrong, please try again...")

最佳答案

除了在输入上调用int以外,您没有使用try,这就是为什么它仍然会出错。您应该使用2个while循环,如下所示:

number = input("Please enter a number: ")
while not number.isdigit():
    number = input("Please enter a number again: ")
number = int(number)

def collatz(number):
    if number % 2 == 0:
        print(number // 2)
        return number // 2
    elif number % 2 == 1:
        print(number * 3 + 1)
        return number * 3 + 1

使用try-except(在这种情况下,不要在其他解决方案中包括初始内容):
while True:
    try:
        number = int(input("Please enter a number: "))
        break
    except:
        pass

关于python - 如何在Python中使用“尝试和异常”引发打印消息错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59924513/

相关文章:

python - 处理通过 pandas.read_csv() 读取时未正确显示的特殊字符(扩展 ascii)

python - 创建数据框副本的简单方法是什么

c++ - boost 正则表达式错误:未初始化的 boost::match_results

c# - 在 C# 中抛出异常,守卫

Java(Swing)监听按键事件

javascript - 如何隐藏 html 输入列表中的某些字符?

python - __traceback_hide__ 的用法是什么

python - `pip3 list` 显示已卸载的软件包

.net - 是什么导致 WPF 应用程序中出现 InvalidDeploymentException?

python-3.x - 如何通过 raw_input() 中断 while 循环? python 3