我是Python新手,目前正在阅读 Python 3 for absolute beginner,并面临以下问题。
我想用程序计算阶乘。
1.请求用户输入非负数n
1.然后使用for循环计算阶乘
代码是这样的
N = input("Please input factorial you would like to calculate: ")
ans = 1
for i in range(1,N+1,1):
ans = ans*i
print(ans)
而我想增加一个功能来检查输入的数字N是否是非负数。
if N != int(N) and N < 0:
我希望用户再次输入N,如果它不是非负数。
谢谢你的帮助。
6条答案
按热度按时间5f0d552i1#
该构造可能如下所示:
在Python 3中,
input()
返回一个字符串,在任何情况下都必须将它转换成一个数字,因此N != int(N)
没有意义,因为你不能将一个字符串与一个int进行比较。相反,* 尝试 * 将其直接转换为整型,如果不起作用,让用户再次输入,这将拒绝浮点数以及其他任何作为整型无效的值。
lo8azlld2#
在Python的数学库中,有一个阶乘函数,你可以这样使用它:
但是,既然您希望使用循环进行计算,您是否考虑过以下问题?
注意,第二个解不适用于N = 0,其中根据阶乘的定义,ans = 1是正确的。
yb3bgrhw3#
fzsnzjdm4#
pgky5nke5#
开始声明整数n,i,n!显示“输入一个非负整数”。输入n表示i=1到n-1步骤1,显示“n!=i*n”结束表示停止
ybzsozfc6#
你可以检查python的数学模块。