Python print return null [关闭]

Python print return null [closed]

提问人:Cube_Cube_Cube_Cube 提问时间:10/23/2023 更新时间:10/23/2023 访问量:51

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

上个月关闭。

当我执行此代码时,它返回 None,但我想像在循环中一样打印整数,有人知道为什么吗?

import boto3
client = boto3.client('autoscaling')
clearesponse = client.describe_auto_scaling_groups(
    AutoScalingGroupNames=[
        'XXXX',
    ])


for reservation in clearesponse ['AutoScalingGroups']:
        test=print(reservation['DesiredCapacity'])


nb_desired_cap = test
print (nb_desired_cap)
print (test)

跑:

Python describe_instances.py

4

没有

没有

运行代码并希望在其他变量中捕获结果 4,以便在代码的其他部分中使用

python amazon-web-services 循环 变量 boto3

评论

2赞 matszwecja 10/23/2023
按预期工作。 没有也不应该返回任何内容。print
0赞 Sembei Norimaki 10/23/2023
test=print(reservation['DesiredCapacity'])毫无意义。要么在循环内打印,要么将结果附加到列表中以供以后打印

答:

3赞 Tim 10/23/2023 #1

这是因为该函数返回 .在下面的示例中,不返回“Hello, World!”,而只是打印到屏幕上,返回的是 .printNoneNone

>>> result = print("Hello, World!")
Hello, World!
>>> result is None
True

您可以将其与不打印任何内容,仅返回输入的函数进行对比。如果您在脚本中使用它,它不会在屏幕上打印任何内容。在 REPL 中,这并不是不言而喻的,但是对于字符串,您可以注意到引号。

>>> def identity(x):
...     return x
... 
>>> result = identity("Hello, World!")
>>> result == "Hello, World!"
True

最后,您可以同时执行以下两项操作:

>>> def myprint(string):
...     print(string)
...     return string
... 
>>> myprint("Hello, World!")
Hello, World!
'Hello, World!'

如果您在 REPL 中运行上述函数,它将显示输入两次,从脚本中它只会显示一次(打印值)。

我不确定您希望代码做什么,但您可能希望为变量分配除 返回的结果以外的其他内容。print