为了练习和更好地理解
以下是我设计的函数:
当我运行计算6的阶乘的程序时,函数会输出:
为了测试这一点,我删除了迭代器(循环变量)
当我使用与先前代码相同的阶乘数字6运行程序时,函数会打印:
for
循环,我设计了一个计算给定数字阶乘的函数。除了迭代器(循环变量)的作用,我基本上都明白了。以下是我设计的函数:
def main():
print("This program computes the factorial of a number!")
n = eval(input("Enter a whole number: "))
fact = 1
for factor in range(n, 1, -1):
fact = fact * factor
print("The factorial of {} is {}!".format(n, fact))
main()
当我运行计算6的阶乘的程序时,函数会输出:
6
的阶乘是720
!
我想了解程序用户提供的输入变量n
在迭代器(循环变量)factor
中起到什么作用和关系?为了测试这一点,我删除了迭代器(循环变量)
factor
并将其替换为输入变量n
。def main():
print("This program computes the factorial of a number!")
n = eval(input("Enter a whole number: "))
fact = 1
for n in range(n, 1, -1):
fact = fact * n
print("The factorial of {} is {}!".format(n, fact))
main()
当我使用与先前代码相同的阶乘数字6运行程序时,函数会打印:
2的阶乘是720!
当我要求Python计算相同的阶乘数时,为什么会得到两个不同的答案。显然,后面的代码有些问题,我认为这与输入变量n和迭代器(循环变量)factor之间的关系有关。
n
作为循环变量,覆盖了原始变量n
。 - berealeval
。int(input(...))
就足够了。 - berealinput()
被废弃是有原因的。 - Kevin