【发布时间】:2020-06-16 10:53:23
【问题描述】:
这听起来像是一个愚蠢而可怕的想法,这可能是因为它是。
Python中有没有办法(最好是单行)创建一个表达式,如果满足条件,则解析为一个值,但如果不满足条件,它将改为执行语句(例如continue 还是方法调用)?
下面的示例用例(尽管此代码实际上不起作用):
def print_name_if_even(n):
print(f"{ name if n % 2 == 0 else print("Uneven!") }")
我知道这可能是个坏主意,但我正在挑战尽可能少地填充函数定义,所以我想避免多行条件语句。
【问题讨论】:
-
您所面临的挑战称为代码高尔夫,请务必查看包含 Python 打高尔夫球技巧的页面:codegolf.stackexchange.com/questions/54/…
-
用单引号 'Uneven' 包裹 "Uneven" 并删除嵌套打印
print(f"{ name if n % 2 == 0 else 'Uneven!' }") -
@lazos 抱歉,我举了一个使用 print 方法的坏例子。我的问题更多是指另一种情况,如果条件为假,我想运行
continue方法。 -
继续不是一种方法。
-
你没有迭代任何东西 - 怎么会继续在这里使用?
标签: python python-3.x ternary f-string pep