Python for循环没有预期的结果

时间:2013-03-02 17:41:35

标签: python

我对for循环有点困惑 - 我能看到它看起来是正确的,但并不完全是我想用它完成的。我来自C背景,但这里的任何建议都是有益的。

def deal(player_num, cards):
    a = 0
    z = 0
    i = 0
    b = 0
    c = player_num
    hand = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]    
    for a in range(player_num):
        hand[a] = cards[i] + cards[i+b+c]
        b == b+1
        i == i+1
        z == z+1
    return hand 

因此,for a in range(player_num)似乎正在运作(附加a++),但hand[0]hand[1]等获得同样的权利。我想它会循环一个而不是其他变量,所以我需要使用多个嵌套循环来获取i++b++c++

2 个答案:

答案 0 :(得分:6)

b == b+1是一个逻辑表达式(每次都返回False),而不是赋值。我猜你想要的东西是:b += 1

答案 1 :(得分:4)

==是Python中的等号运算符。 =是赋值运算符。

==检查其左操作数和右操作数是否相等,并相应地返回True或False。 bb+1将永远不会彼此相等,无论哪种方式执行没有副作用的操作都没有意义(比如将两个值进行相等比较),然后对其结果不做任何操作。

如果您想更改变量的值,请使用赋值运算符=代替==