【发布时间】:2015-02-06 16:39:35
【问题描述】:
我编写了一个程序来计算一个数字的阶乘,所有这些都可以完美地工作,但是当我输入一个浮点数进行测试时会崩溃。 我的目标是接受浮点数但不计算。由于程序将接受但返回类似“Bad entry, only integers are accepted”之类的内容。 我尝试了多个语句,但它只适用于我在语句中输入的数字。所以我想也许应该建立一些东西,也许通过命名一些浮点数并做一些减法。但我迷路了。 这是我到目前为止没有包含浮动语句的程序:
def main():
# take input from the user
num = int(input("Enter a number: "))
factorial = 1
if num > 100:
print("Bad entry. It should be an integer less than or equal to 100!")
print("Please try again: ")
elif num == 0:
print("The factorial of 0 is 1")
elif num < 0:
print("Bad entry. It should be an integer superior than or equal to 0!")
print("Please try again: ")
else:
for i in range(1,num + 1):
factorial = factorial*i
print("The factorial of",num,"is",factorial)
main()
【问题讨论】:
-
请修复身份
-
查看this post,了解如何检查输入的数字是否为整数。
-
请包括您为解决浮点问题所做的尝试,以及它是如何“崩溃”的。您是否遇到未捕获的异常?
-
查找
try/except。您应该能够尝试循环并在失败时发送消息。 -
我可能听起来很傻,但是不能计算浮点的阶乘,对吗?所以,没有理由放 try/excepts 等
标签: python loops factorial floating