为什么我会收到此语法错误:关键字不能成为表达式

时间:2017-11-14 14:07:13

标签: 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 print (number_1*number_2=result)
multiply()

尝试执行以下功能时出现以下错误。

    return print (number_1*number_2=result)               
                 ^
SyntaxError: keyword can't be an expression

4 个答案:

答案 0 :(得分:3)

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

...(number_1*number_2=result)
                     ^

这使之前的所有 =成为Python表达式,即number_1 * number_2。 Python不允许这样做。

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

print(number_1, '*', number_2, '=', result)

Python用空格分隔出单独的参数来分隔它们(但你可以使用sep='...'设置一个不同的字符串来分隔它们,包括 empty 字符串,根本没有分离)。

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

您还可以了解Python string formatting,它可以让您更好地控制空白处理,以及对齐结束值格式化。例如。

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

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

然后,每个{}占位符都会填入您传递到str.format() method的下一个参数。如果您愿意,也可以在这里删除空格。

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

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

答案 1 :(得分:0)

  

为什么我会收到此语法错误:关键字无法成为表达式

因为你在函数名称(包括python3中的print)之后在括号中写的是函数的参数。以keyword=value形式写的任何参数都是keyword argument。您不能将表达式(此处为产品)用作关键字。

答案 2 :(得分:0)

我假设您想要输出

number_1*number2 = 6

这部分的第一部分是您想要打印的一些固定文本。因此,您需要输入一个字符串并打印出来。您可以打印多个内容,例如print(a, b)。这应该足以让你弄清楚

答案 3 :(得分:0)

您有两个问题:

您正在print语句中编写表达式。相反,您想要创建格式化的字符串并将值替换为字符串:

print("%d*%d=%s" % (number_1, number_2, result))

其次,你不需要退货。