ValueError 有效但阻止代码来自 运行

ValueError works but prevents code from running

我可以让程序正确计数,我可以让程序不包括浮点数和字符串,但是当我将这两段代码放在一起时,程序不会 运行 计数。感谢您的帮助。

print("\tProgram counts the number of positive integers.")

def numCount():

    even_count = 0
    odd_count = 0
    even_sum = 0
    odd_sum = 0
    total = 0

    while True:
        try:
            num = int(input("Input an integer to count 0 exits program: "))
        except ValueError:
            print("Please enter an integer.")
            continue
        else:
            return num                 
        if num == 0:
            break
        elif num < 1:
            continue
        elif num % 2 == 0:
            even_count += 1
            even_sum += num
        else:
            odd_count += 1
            odd_sum += num
        total += 1
    print("\nTotal positive intger count is:", total)
numCount()

您不应该在 try/except 的 else 语句中 return num。这将立即退出函数和 return num 的当前值,而不是在您的代码的其余部分继续处理它。

要解决此问题,您只需删除 else 语句即可。

您可以简单地删除:

else:
   return num

这是因为 return 会提前退出函数并停止 while 循环继续。