执行多个if循环

时间:2014-02-28 01:59:34

标签: python loops

有没有办法运行并执行多个if循环?举个例子:

x = 1
b = 1
for a in range(100):
    if x == 1:
        print "foo"
    if b == 1:
        print "bar"

这会产生100“foo”但是可以执行两个if语句,所以我可以 得到像100“foobar”的东西?我不是在寻找嵌套的if循环解决方案,而是运行时实际检查if条件执行它并进入下一个if语句而不是启动整个循环的东西。

编辑:所有答案都很好所以我随机选了一个。

编辑:哇,运行我的原始代码,它给了我一个100“foobar”?我发誓它给了我一个100英寸的foo ..我一定很累......

4 个答案:

答案 0 :(得分:0)

a = 0
b = 0
value = 0
for value in range(100):
    if a == value:
        print "foo"
    if b == value :
        print "bar"
    a = a + 1
    b = b + 1

答案 1 :(得分:0)

有点不清楚你在寻找什么。 for循环在每次迭代时都执行if语句。第二个总是成功,因为b没有改变。此外,顶部的a=1不会执行任何操作 - 您不需要像在C中那样在循环之前初始化循环变量。

以下是我正在寻找的内容:

for a,b in zip(range(100), range(100)):
   if a==1:
       print "foo"
   if b==1:
       print "bar"

这是这样做的:zip()允许您一次迭代多个事物。在这种情况下,两个(相同的)范围序列,但它们不一定是。您可以单独检查每个变量。

答案 2 :(得分:0)

这样会更容易:

a = 0
b = 0
value = 0
for value in range(100):
    if a == value and b == value:
        print "foo bar"
    a = a + 1
    b = b + 1

或者,使用逗号:

a = 0
b = 0
value = 0
for value in range(100):
    if a == value:
        print "foo", #HERE IS THE ELUSIVE COMMA!
    if b == value :
        print "bar"
    a = a + 1
    b = b + 1

两者都有效。 :)

逗号的工作方式与常规打印语句的工作方式相同:print 'hello', 'hi' = hello hi

答案 3 :(得分:0)

这里有很多好的帮助。

我可能会这样做:

a = 1
b = 1
for x in range(0, 100):
    build_string = ""
    if a is 1:
        build_string += "foo"
    if b is 1:
        build_string += "bar"
    print build_string