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

为什么我的python代码返回语法错误?,python,syntax,Python,Syntax,我是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)))) 我已经在代码前面定义了阶乘函数,问题似乎来自这两行。是否存在语法错误,我看不到???Python2中的input函数将用户输入作为Pytho

我是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))))

我已经在代码前面定义了阶乘函数,问题似乎来自这两行。是否存在语法错误,我看不到???

Python2中的
input
函数将用户输入作为Python代码进行计算,而不是按字面意思进行计算。您应该在Python 2中使用
raw_input

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

假设您使用的是Python3,因为print语句是一个函数调用。当我使用

import math
然后改为这一行:

print(str(user_number) + '! is equal to ' + str(math.factorial(int(user_number))))
结果是:

10! is equal to 3628800
我输入了10作为值。
也许问题在于你的阶乘函数。很难知道,除非你也发布了它。

下面的代码对我很有用。我怀疑你的阶乘函数可能有问题

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))))

你能在帖子中加入阶乘函数吗?当你用一个简单的赋值替换
input
语句时会发生什么?记住“最小”部分。您还需要提供得到的错误字符串。另外,假设您的阶乘函数可以工作,并且您输入了一个阶乘不会溢出的整数,这两行应该可以工作。如果您在显示的两行中的第一行出现语法错误,则错误很可能在上面的一行中。解释器会准确地告诉您遇到问题的行和字符。但有时它会继续尝试理解代码,只在下一行中发现语法有问题。在Python2.7中,在这种情况下使用
input
通常不会给出语法错误。如果您键入一个数字,它将接受该数字。如果键入无效的表达式,如
2+3(
),则会出现语法错误,但仅在运行时和响应输入时才会出现语法错误。如果键入不带引号的字符串,则通常会出现名称错误,因为该字符串无法解释为变量。