使“打破IF条件”语句适合一行

时间:2019-02-11 19:07:55

标签: python python-3.x for-loop break

我想编写一条语句,如果满足特定条件,但可以在一行中跳出for循环。

我知道这可行:

for val in "string":
    if val == "i":
        break
    print(val)

我知道this的工作原理:

value_when_true if condition else value_when_false

但是当我运行这段代码时,出现语法错误:

break if some_string[:5] == condition

有没有办法在一行中编写这样的中断条件?我可能做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:2)

您不能使用三元表达式,因为break不是表达式。

尽管如此,您可以简单地省略换行符。

for val in "string":
    if val == "i": break
    print(val)

答案 1 :(得分:1)

编写下面的代码没有害处

for val in "string":
    if val == "i":
        break

单线不会带来任何好处,但是所有操作都被压缩在一行中,这很难看懂。

value_when_true if condition else value_when_false这只有在您有表达式时才有用。例如

x = 1 if True else 0

由于break不是表达式,因此无法像上面那样使用

if condition: break将打破循环。但是我还是建议您使用原始代码,因为它更具可读性。

答案 2 :(得分:0)

这对我有用:

for i in range(10):
  print(i)
  if i == 2: break