【问题标题】:How do I fix this except statement properly?如何正确修复此 except 语句?
【发布时间】:2020-11-07 15:48:41
【问题描述】:

我正在处理 Automate the Boring Stuff for Python 中的 Collat​​z Sequence 问题,我似乎无法弄清楚为什么即使遇到 ValueError 也无法打印“请输入整数”。

def collatz(number):
    while number!=1:
        if number%2==0: #even
            number=number//2
            print(number)
        elif number%2==1: #odd
            number=3*number+1
            print(number)
            

while True:
    print('Enter number:')
    a=int(input()) 
    try:
        collatz(a)
    except ValueError:
        print('Please enter an integer')

【问题讨论】:

  • 将您的输入放入 try 语句中
  • 顺便说一句,你的“elif”只需要是“else:”
  • 谢谢!!我不知道 ValueError 需要在“try”语句期间发生。我认为它就像一个 else 语句。

标签: python loops while-loop valueerror except


【解决方案1】:

对于您的代码,您需要在 try 语句之后包含以下行,然后异常才会起作用

a = int(input()

以下是我的代码 sn-p,它运行良好

#!/usr/bin/python
def collatz(i):
    if i % 2 == 0:
        n = i // 2
        print n
        if n != 1:
            collatz(n)
    elif i % 2 == 1:
        n = 3 * i + 1       
        print n
        if n != 1:
            collatz(n)
try:
    i = int(raw_input("Enter number:\n"))
    collatz(i)
except ValueError:
    print "Error: You Must enter integer"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2015-12-31
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多