我是Python新手。其实我用Java实现了一些东西,如下所示。Python中的无限循环
for(;;){
switch(expression){
case c1: statements
case c2: statements
default: statement
}
}
我该如何在Python中实现它?
我是Python新手。其实我用Java实现了一些东西,如下所示。Python中的无限循环
for(;;){
switch(expression){
case c1: statements
case c2: statements
default: statement
}
}
我该如何在Python中实现它?
使用while循环:
while True:
if condition1:
statements
elif condition2:
statements
...
else:
statements
while True:
# do stuff forever
您可以使用
while True:
if c1:
statements
elif c2:
statements
else:
statements
或
var = 1
while var == 1:
# do stuff
形式上,有一个在Python中没有switch
声明;这是一系列嵌套的if-elif-else
陈述。
无限循环由while True
语句完成。
一起:
while True:
if condition_1:
condition_1_function
elif condition_2:
condition_2_function
elif condition_3:
condition_3_function
else: # Always executes like "default"
condition_default_function
请注意,'if/elif/else'中没有像'switch'那样的'fall-through' – dcrosta 2012-01-03 15:06:36
如果你正在寻找一种方式来在python无限循环,你可以使用itertools.count()函数就像一个for循环。 http://docs.python.org/py3k/library/itertools.html#itertools.count
这看起来对无限生成器表达式很有用,比如'('CONSTANT'for itertools.count(0, 0))'作为期望生成器的函数的参数。您不必定义具有True循环的单独函数。 – hobs 2013-07-12 18:13:33
@hobs为了达到这个目的,你可以使用'itertools.repeat('CONSTANT')'。 – flornquake 2013-08-14 17:29:19
正常情况下,如果我们正在说无限循环,则使用布尔值“True”而不是整数。这样一来,意图就变得更清楚和更容易调试(谁说'var'的值可能不会随着时间而改变?)。 – Makoto 2012-01-03 14:55:49
这是真的,并且使用布尔值(可能)是祝福的方式。这是实现同样目标的另一个例子。 'var'可以改变,但是如果她选择这种方式,那么开发者也不应该改变它。 ;-) – 2012-01-03 15:24:58
但为什么'var'呢?如果关键点的值始终等于1来创建一个无限循环,为什么不直接说'while 1 == 1'?做完这些之后,不要只写'while True'是荒谬的。 – Ben 2012-01-03 16:16:31