在If语句中,变量不会重置为0

2024-05-14 06:44:07 发布

您现在位置:Python中文网/ 问答频道 /正文

while not(bool(won)):
    #print(wordspec)
   # print("_" * wordlen)
    print(displayword)
    answer = input("Any letters?")


    if answer in vl.values():
        print("Yes")
        for x_l in wordspec:
            print(str(spot_l)+"cha")
            if spot_l < wordlen:
                if vl[spot_l] == answer:
                    print(vl[spot_l])
                    ch[spot_l] = vl[spot_l]
                    displayword[spot_l] = ch[spot_l]

                spot_l += 1
            elif wordlen < spot_l:
                spot_l = 0

因此,在1次循环后,spot_l变量将停留在它可以达到的最大值

输出为

我第一次这么做:

0cha
1cha
a
2cha
3cha
a
4cha
5cha
a
6cha

第二、第三、第四等等。。我做这件事的时候:

6cha
6cha
6cha
6cha
6cha
6cha
6cha

(我的单词有7个字符,因此循环7次)


Tags: answerininputifnotchboolprint
3条回答

您的ifelif缺少spot == wordlen的情况,此时它将永远循环。您可能只需要else,而不是elif

哎呀!我想出来了。。所以基本上

我把wordlen<;spot_l:when spot_l永远不会变大,因为它在相等时停止,因此wordlen=spot_l:works,感谢ShadowRanger帮助我实现将变量设置为值的语法。:)

您输入了spot_l == 0,它检查是否与0相等(并且忽略它产生的bool,这使得这更明显是一个错误);如果要通过赋值将其重置为0,则需要spot_l = 0

相关问题 更多 >