Python 阶乘程序出错
Python program for factorial coming up with an error
我试图编写一个基本的阶乘程序以在 python 中进行一些练习,但我为以下代码想出了这个错误。任何帮助将不胜感激。
def factorial(x):
x = raw_input(":")
if x == 0:
return 1
else:
return x * factorial(x-1)
当我 运行 这个程序通过终端时,它给我以下错误:
**第 1 行:意外标记 '('
附近的语法错误
第 1 行:def factorial(x)**
除了缩进错误,还需要将这一行移出函数,
x = raw_input(":"),
或者你必须在递归的每一层都输入一个数字。
使用递归函数你不应该在函数内部使用raw_input,它会降低函数的整个逻辑,所以输入的东西必须在递归函数之外完成。另一件你需要注意的事情是 raw_input()
函数总是 returns 一个 String
所以我们明确需要将它转换为 Integer
类型,你就完成了。
def factorial(x):
if x == 0 or x==1:
return 1
else:
return x * factorial(x-1)
number = int(raw_input(":"))
print factorial(number)
我试图编写一个基本的阶乘程序以在 python 中进行一些练习,但我为以下代码想出了这个错误。任何帮助将不胜感激。
def factorial(x):
x = raw_input(":")
if x == 0:
return 1
else:
return x * factorial(x-1)
当我 运行 这个程序通过终端时,它给我以下错误:
**第 1 行:意外标记 '('
附近的语法错误第 1 行:def factorial(x)**
除了缩进错误,还需要将这一行移出函数,
x = raw_input(":"),
或者你必须在递归的每一层都输入一个数字。
使用递归函数你不应该在函数内部使用raw_input,它会降低函数的整个逻辑,所以输入的东西必须在递归函数之外完成。另一件你需要注意的事情是 raw_input()
函数总是 returns 一个 String
所以我们明确需要将它转换为 Integer
类型,你就完成了。
def factorial(x):
if x == 0 or x==1:
return 1
else:
return x * factorial(x-1)
number = int(raw_input(":"))
print factorial(number)