如果不是速记,就需要速记方面的建议

2024-04-20 14:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用速记法写一个if-else语句。 if-else检查一个值,如果没有达到某个值则递增,否则减去一个设定的数字。你知道吗

作为一个如果否则这是可行的,但试图做这作为一个速记版本,我卡住了。你知道吗

在这种情况下,您不能使用-=或+=吗?如有任何帮助,我们将不胜感激。你知道吗

如果day==7,则尝试day-=7,否则day+=1,但要知道这是错误的,因为左侧已经引用了var。你知道吗

如果还有别的办法的话

day = 5
if day == 7:
    day-=7
else:
    day+=1

试着用速记的方式写这篇文章,我在正确的日期得到了一个错误+=1,因为这显然是不正确的。寻找一些建议,如何增加日价值,如果一天!=7个

day = 5
day-=7 if day == 7 else +=1

+=1抛出一个错误。你知道吗

预计今天是6点


Tags: 版本ifvar错误方式情况数字语句
3条回答

在Python的“条件表达式”的上下文中,不能在某些地方使用赋值运算符-=+=,这是对的。我的理解是,if else的速记是一个表达式,而不是一个语句,如您最初的示例所示。不能在右侧进行赋值,而是在左侧指定返回值(如果为false),如果为true,则指定返回值(或变量赋值)。你知道吗

在第二次尝试中,在右侧,使用了不带变量的赋值运算符。如果希望条件的求值采用更复杂的值,可以指定给变量:

day = 5
ret_false = day + 1
ret_true = day - 7
ret_true if day == 7 else ret_false

请参阅Samantha的答案以获得更优雅的解决方案:+=增量赋值运算符用于计算表达式中的TrueFalse,因此-7在左边是必需的,而+= 1在其他地方是赋值的。我在她的回答中重复相反的解决方案来说明语法的机制;在左边使用递减-=运算符强制在右边使用-

day -= 7 if day == 7 else -1 

按照上面的逻辑,下面我最初的建议使用左边的递减-=赋值运算符;如果为true,则返回day-7,如果为false,则返回day-(day+1)。感谢萨曼莎指出这一点。你知道吗

原创

尝试:

day -= 7 if day == 7 else day + 1

关于这一点有很多问题:herehere,例如。你知道吗

day += -7 if day == 7 else 1

你读这篇文章的方式是“如果day == 7,把负7加到day,否则,把1加到day

Dagorodir的原始答案不起作用,因为它将从当前的day值减去(day+1),如果day != 7。因此,使用您的示例,使用day的起始值5,从另一个答案运行代码的结果是-1。你知道吗

对我来说,这是最可读的,使用模运算

day = 5
day = (day + 1) % 7
print(day)
# result 6

day = 6
day = (day + 1) % 7
print(day)
# result 0

相关问题 更多 >