gpt4 book ai didi

python - 在 python 中将 print() 与复合运算符一起使用

转载 作者:行者123 更新时间:2023-11-28 19:33:38 25 4
gpt4 key购买 nike

以下代码在python中不起作用

x = 11
print(x += 5)

虽然这段代码可以

x = 11
x += 5
print(x)

这是为什么?

最佳答案

问题是由于语句和表达式之间的差异。 This question has an excellent answer which explains the difference ,关键点是:

Expression: Something which evaluates to a value. Example: 1+2/x

Statement: A line of code which does something. Example: GOTO 100

print 语句需要一个值来打印出来。所以在括号中你放了一个表达式,它赋予它要打印的值。所以这可以是像 x 这样简单的东西,也可以是像 "The value is %d"% x 这样更复杂的表达式。

x += 5 是一个将 5 添加到 x 的语句,但它不会返回供 print 使用的值.

所以在 Python 中你不能说

print(x += 5)

除了你能说的:

y = x += 5

然而,在其他一些语言中,语句也是表达式,即它们执行某些操作返回一个值。例如,您可以在 Perl 中执行此操作:

$x = 5;
$y = $x += 5;
print $y;

您是否愿意这样做是另一个问题。

在 Python 中强制执行语句和表达式之间的区别的好处之一是您可以避免常见的错误,而不是像这样:

if (myvar == 1) {
//do things
}

你有以下错误:

if (myvar = 1) {
//do things
}

在第二种情况下,C 会将 myvar 设置为 1,但 Python 会因编译错误而失败,因为你有一个语句,而你应该在其中包含一个表达式。

关于python - 在 python 中将 print() 与复合运算符一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com