Python print()的关键字参数无效

Python print()的关键字参数无效,python,printing,arguments,keyword,Python,Printing,Arguments,Keyword,当我写这段代码时: b = 5 a = b c = a print(a) print(z=c*a) print(z+b) 我得到了这个错误: TypeError: 'z' is an invalid keyword argument for print() 因此,我决定创建一个变量z,并将代码更改为: b = 5 a = b c = a print(a) z print(z=c*a) print(z+b) 我还是犯了同样的错误: TypeError: 'z' is an invalid k

当我写这段代码时:

b = 5
a = b
c = a
print(a)
print(z=c*a)
print(z+b)
我得到了这个错误:

TypeError: 'z' is an invalid keyword argument for print()
因此,我决定创建一个变量z,并将代码更改为:

b = 5
a = b
c = a
print(a)
z
print(z=c*a)
print(z+b)
我还是犯了同样的错误:

TypeError: 'z' is an invalid keyword argument for print()
当我写道:

b = 5
a = b
c = a
print(a)
z=c*a
print(z)
print(z+b)

为什么在前两次尝试中出现错误,以及“print()的关键字参数无效”是什么意思?

在python中,print是一个函数,这意味着不能声明或为其中的变量赋值。在某些函数中,您可以在打开的函数中指定参数,例如
encoding=“
”,其中encoding是关键字。打印语句没有“z”关键字。上一次,它工作了,因为您在print语句之前分配了变量,然后打印了它

在询问之前,请尝试做一些基础研究,因为这并不太复杂

内置的print()函数只打印括号中“返回”的内容

z=c*a
不“返回”任何东西,它只定义z是什么


当您编写
z=c*a
然后
print(z)
,声明变量z返回其值,因此print语句有一个结果要打印。

如果您使用python 3.8,则可以通过
:=
如已知的walrus操作符,检查定义 试试这个:

b = 5
a = b
c = a
print(a)
print(z:=c*a)
print(z+b)
输出:

5
25
30

如果您单独打印加法或在单独一行中为z赋值后打印z,则无法在打印函数中为z赋值,该函数与第二行打印相关。

请参见示例。-它的意思是,不定义名为
z
的关键字参数。赋值也是Python中的语句,而不是像JavaScript那样返回赋值的表达式。您希望
print(z=c*a)
做什么?您试图用这行代码实现什么效果?我想看看是否可以直接在print语句中创建一个变量,并为其赋值,而不必在前面的代码中引入它。使用python 3.8,可以通过
walrus操作符
,即
:=
,然后替换
print(z:=c*a)
。它将分配z并打印它。不需要额外的一行,检查我贴出的答案。这是对作业表达式的严重滥用。它以牺牲可读性为代价将不同的关注点合并成一行。这就是为什么赋值表达式被排除了这么长时间,为什么它们被包含在Python 3.8中是Python历史上最具分裂性的变化之一。