为什么我的python代码返回语法错误?

问题描述 投票:-1回答:3

我是python的新手,我一直在尝试通过创建一些练习代码来改进。

user_number = input('Enter in the number you want the factorial of: ')
print(str(user_number) + '! is equal to ' + str(factorial(int(user_number))))

我已经在代码中更早地定义了阶乘函数,问题似乎来自这两行。有没有我没看到的语法错误?

python syntax
3个回答
0
投票

Python 2中的input函数将用户输入评估为Python代码,而不是字面意思。你应该在Python 2中使用raw_input

user_number = raw_input('Enter in the number you want the factorial of: ')

0
投票

假设您使用的是Python 3,因为您的print语句是函数调用。当我尝试使用你的代码时

import math

那么这一行代替:

print(str(user_number) + '! is equal to ' + str(math.factorial(int(user_number))))

结果是:

10! is equal to 3628800

我输入了10作为值。也许问题出在你的阶乘函数中。除非你发布,否则很难知道。


0
投票

以下代码适合我。我怀疑你的阶乘函数可能存在问题。

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

user_number = input('Enter in the number you want the factorial of: ')
print(str(user_number) + '! is equal to ' + str(factorial(int(user_number))))
© www.soinside.com 2019 - 2024. All rights reserved.