在循环条件下设置变量

时间:2014-08-22 00:33:16

标签: python

在Java中,我可以在循环条件中设置变量

String s;

while ((s=myFunction())!=null){
    System.out.println("It's there jim. "+s);
}

在这个例子中,s将被设置为myFunction()的结果。在Python中,我知道我可以将其作为

s = myFunction()
while s!=None:
   print "It's there jim",s
   s = myFunction()

但我想避免这样做。有没有办法在Python中使用上述Java代码?

2 个答案:

答案 0 :(得分:2)

你不能用Python做到这一点。在Java中,赋值=表达式,它的计算结果为赋值变量的值。在Python中,=赋值是语句,因此它没有值(它只是被执行)并且不能按照您描述的方式使用(请参阅此{{ 3}}了解详情)。更重要的是,如果您尝试在需要表达式的位置使用赋值,则会出现错误:

a = 0
(a = 10) + 1
=> SyntaxError: invalid syntax

答案 1 :(得分:1)

您可以使用iter

for s in iter(myFunction, None):
    print "It's there jim", s

print s

但是乍一看它让人感到困惑,所以只要坚持你拥有的东西。