只有 if 语句,没有 else 语句在 1 行
Only if statement and no else statement on 1 line
问题:
我知道可以将 if 语句放在一行上,但是有没有办法做到这一点,使 PEP8 不会将其重新格式化为两行?我知道你可以把它放在两行上,但这并没有回答我关于把它放在一行上的可能性的问题。
尝试次数:
if date > p1_max_date: p1_max_date = date
以上代码有效,除了 PEP8 将其重新格式化为:
if date > p1_max_date:
p1_max_date = date
我知道我可以在保存时关闭自动格式化功能,但是有没有办法在一行中实现相同的功能(只有在 if
条件为真时才执行语句而无需else
语句)而不关闭保存时重新格式化 PEP8 功能?
我在想一些类似的事情:
p1_max_date = date if date > p1_max_date
但这给了我一个语法错误:
File "<string>", line 1
p1_max_date = date if date > p1_max_date
^
SyntaxError: invalid syntax
我也尝试过使用三元运算符,但以下尝试均无效:
p1_max_date = date if date > p1_max_date else pass
# this doesn't work and gives me a syntax error
p1_max_date = date if date > p1_max_date else None
# this doesn't work because I don't want to change the value of the variable if the condition is false
p1_max_date = date if date > p1_max_date else p1_max_date
应该这样做。
根据 date
和 p1_max_date
的数据类型,您也可以使用
p1_max_date = max(p1_max_date, date)
,这可能是更容易阅读的解决方案。
此任务的另一种 one-line 方法:
p1_max_date = date > p1_max_date and date or p1_max_date
and and or支持惰性求值,可用于return值,here可以在 python 中阅读有关逻辑运算符和表达式的更多信息。
这是一种可读性较差的方法,通常不受欢迎,但这是一个很好的技巧。
问题:
我知道可以将 if 语句放在一行上,但是有没有办法做到这一点,使 PEP8 不会将其重新格式化为两行?我知道你可以把它放在两行上,但这并没有回答我关于把它放在一行上的可能性的问题。
尝试次数:
if date > p1_max_date: p1_max_date = date
以上代码有效,除了 PEP8 将其重新格式化为:
if date > p1_max_date:
p1_max_date = date
我知道我可以在保存时关闭自动格式化功能,但是有没有办法在一行中实现相同的功能(只有在 if
条件为真时才执行语句而无需else
语句)而不关闭保存时重新格式化 PEP8 功能?
我在想一些类似的事情:
p1_max_date = date if date > p1_max_date
但这给了我一个语法错误:
File "<string>", line 1
p1_max_date = date if date > p1_max_date
^
SyntaxError: invalid syntax
我也尝试过使用三元运算符,但以下尝试均无效:
p1_max_date = date if date > p1_max_date else pass
# this doesn't work and gives me a syntax error
p1_max_date = date if date > p1_max_date else None
# this doesn't work because I don't want to change the value of the variable if the condition is false
p1_max_date = date if date > p1_max_date else p1_max_date
应该这样做。
根据 date
和 p1_max_date
的数据类型,您也可以使用
p1_max_date = max(p1_max_date, date)
,这可能是更容易阅读的解决方案。
此任务的另一种 one-line 方法:
p1_max_date = date > p1_max_date and date or p1_max_date
and and or支持惰性求值,可用于return值,here可以在 python 中阅读有关逻辑运算符和表达式的更多信息。 这是一种可读性较差的方法,通常不受欢迎,但这是一个很好的技巧。