gpt4 book ai didi

python - 提前结束程序,而不是循环?

转载 作者:太空狗 更新时间:2023-10-30 00:53:17 25 4
gpt4 key购买 nike

我正在尝试编写一个简短的程序来返回数字的阶乘,效果很好。我遇到的唯一问题是如果用户输入非整数值则让程序结束。

num = input("input your number to be factorialised here!: ")

try:
num1 = int(num)
except ValueError:
print("That's not a number!")



if num1 < 0:
print("You can't factorialise a negative number")
elif num1 == 0:
print("the factorial of 0 is 1")
else:
for i in range(1,num1+1):
ans = ans * i
print("the factorial of", num, "is", ans)

最佳答案

解决方案

有更好的方法可以做到这一点,但考虑到您的代码结构,您可以使用 else。参见 the docs .

num = input("input your number to be factorialised here!: ")

try:
num1 = int(num)
except ValueError:
print("That's not a number!")
else:
if num1 < 0:
print("You can't factorialise a negative number")
elif num1 == 0:
print("the factorial of 0 is 1")
else:
ans = 1
for i in range(1,num1+1):
ans = ans * i
print("the factorial of", num, "is", ans)

else 子句只有在没有抛出异常时才会执行。

建议

为了不泄露你的家庭作业答案,这里有一些建议你应该看看以清理你的代码:

  1. 你能用range吗?更有效率?提示:您可以通过将 step 设置为负整数来迭代递减数字。
  2. 你能找到摆脱检查 num1 == 0 的方法吗?

关于python - 提前结束程序,而不是循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48610257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com