[英]Assign and print at the same time in Python
在 Python 中,有没有办法将结果分配给变量并立即打印它? 换句话说,我正在寻找一个相当于
a = something()
print(a)
(仅一次,并非每个作业都应自动打印)。
有 REPL,例如对于 Scala,这是自动发生的:
scala> val count = 1
count: Int = 1
好吧,如果您只想创建一个新变量并像向我们展示的那样打印该变量的值,您可以使用一个简单的函数来打印并返回该值:
def print_and_return(value):
print(value)
return value
现在你可以像这样使用它:
>>> a = print_and_return(5)
5
>>> print(a)
5
另一种永远不应该使用的方法是使用globals()
字典。
def print_and_set(name, value):
globals()[name] = value
print(globals()[name])
现在您可以使用以下方法调用它:
print_and_set('a', 5)
它将打印5
,您还可以访问全局命名空间中的变量a
。
从技术上讲,这是一行:
a = something(); print(a)
这在 python 中丢失了,我想这是有充分理由的。 在 C 中,你可以有一个有效的语句,比如if a=30 { ... }
因为任何赋值语句都会有赋值的值,这可能会让第一次看到代码的人摸不着头脑。
此外,烘烤您自己的分配函数会出现问题,因为您在函数体内获得了一个引用副本,而不是实际变量
TL; 博士; -> 不,没有
从技术上讲,您可以使用 sys.path 在同一行“打印”和分配。 请参阅以下内容:
>>> import sys
>>> a = sys.stdout.write("hello")
hello
>>> print(a)
5
如您所见,您可以“打印” - 通过写入标准输出,这与 print() 本质上相同 - 字符串并将字符串的长度分配给变量 - 而不是字符串本身。
从 Python 3.8 开始,这个问题的答案已经改变。 现在,您可以为变量赋值并使用“赋值表达式”(俗称“海象运算符”)返回相同的值。
所以,这是有效的 Python:
print("你好,{}".format((w := "world"))
它将打印“Hello,world”并将字符串“world”分配给变量“w”,全部在一行中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.