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
循环继续。
我可以让程序正确计数,我可以让程序不包括浮点数和字符串,但是当我将这两段代码放在一起时,程序不会 运行 计数。感谢您的帮助。
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
循环继续。