Python 为什么会出现这样的语法错误:关键字can';这不是一种表达

Python 为什么会出现这样的语法错误:关键字can';这不是一种表达,python,python-3.x,Python,Python 3.x,我在尝试执行以下函数时遇到以下错误 def multiply(): number_1 = int (input ("Please insert the first number for multiplication:")) number_2 = int (input ("Please insert the second number for multiplication:")) result = str (number_1*number_2) return pri

我在尝试执行以下函数时遇到以下错误

def multiply():
    number_1 = int (input ("Please insert the first number for multiplication:"))
    number_2 = int (input ("Please insert the second number for multiplication:"))
    result = str (number_1*number_2)
    return print (number_1*number_2=result)
multiply()
为什么会出现这样的语法错误:关键字不能是表达式


因为在python3中,函数名后面的括号(包括
print
)是函数的参数。以
keyword=value
格式编写的任何参数都是一个参数。您不能将表达式(此处为产品)用作关键字。

您正在使用
=
定义关键字参数:

    return print (number_1*number_2=result)               
                 ^
SyntaxError: keyword can't be an expression
这使得
=
之前的所有内容都是Python表达式,即
number\u 1*number\u 2
。Python不允许这样做

如果要打印出格式良好的表达式,则必须使用单独的字符串参数:

...(number_1*number_2=result)
                     ^
Python写出单独的参数并用空格分隔它们(但是您可以使用
sep='…'
设置一个不同的字符串来分隔它们,包括完全不分隔的空字符串)

请注意,您实际上不必将
result
转换为字符串,这里的
print()
函数将所有参数转换为字符串,然后再将其写入控制台

您还可以了解,这使您能够更好地控制空白处理,以及对齐结束值格式

以下内容将打印出您的数字和结果,作为具有相同空格数的格式字符串的一部分:

print(number_1, '*', number_2, '=', result)
然后,每个
{}
占位符都会被传递到的下一个参数填充。如果愿意,也可以删除此处的空格

最后,但并非最不重要的是,
print()
函数始终返回
None
。您不必从函数中返回该值,请删除
return
。实际使用的
multiply
函数不会使用返回值:

print('{} * {} = {}'.format(number_1, number_2, result))

我想你想要像这样的输出

def multiply():
    number_1 = int(input("Please insert the first number for multiplication:"))
    number_2 = int(input("Please insert the second number for multiplication:"))
    result = number_1 * number_2
    print(number_1, '*', number_2, '=', result)

multiply()
第一部分是要打印的固定文本。因此,您需要输入一个字符串并打印它。您可以打印多种内容,如
打印(a,b)
。这应该足以让你明白你有两个问题:

您正在打印语句中编写表达式。相反,您希望生成一个格式化字符串,并将值替换为字符串:

print(“%d*%d=%s”%(数字1,数字2,结果))


其次,您不需要返回它。

您不需要返回打印语句。选择一个或另一个,因为您实际上正在执行
返回打印()
。你的代码乱七八糟。请阅读一个基本的python教程,并试着理解你在用它做什么…@Nepho它不是
返回打印
,而是
a*b=c
内部的
print()
@Nepho:在python 3中,
print()
是一个函数。它总是返回
None
,但您可以返回该结果<代码>返回打印(…)在Python 3中是非常有效的语法。在Python2中,除非使用
\uuuu future\uuuu
导入语句,
print
是一条语句,不能作为
return
语句的一部分。不过,您会得到一个不同的语法错误。@nepo:您(故意)在上面的评论中投了赞成票,但却提出了不同的建议。错误不是因为他们正在执行
返回打印()
number_1*number2 = 6