我的“while循环”没有按预期工作

时间:2017-10-23 01:53:30

标签: python

我是一名新编码员,对不起,如果我的问题不好或我没有遵循正确的礼节!

我正在设计一个掷骰子的基本程序。它应该滚动骰子,直到计算机或用户的总点数等于100.但是,即使我的点总计正在工作,循环也不会结束。有谁知道这是为什么?谢谢!

def main():
        GAME_END_POINTS = 100
        COMPUTER_HOLD = 10
        is_user_turn = True
        user_pt = 0
        computer_pt = 0
        welcome()
        while computer_pt < GAME_END_POINTS or user_pt < GAME_END_POINTS:
            print_current_player(is_user_turn)
            if is_user_turn is True:
                user_pt = user_pt + take_turn(is_user_turn, COMPUTER_HOLD)
            elif is_user_turn is False:
                computer_pt = computer_pt + take_turn(is_user_turn, COMPUTER_HOLD)
            report_points(user_pt, computer_pt)
            is_user_turn = get_next_player(is_user_turn)

3 个答案:

答案 0 :(得分:2)

条件始终为True,因为用户计算机的总分数小于100。

而不是or使用and

while computer_pt < GAME_END_POINTS and user_pt < GAME_END_POINTS:

现在,只有当两者用户和计算机的点总数小于100时,循环才会继续。只要其中一个点数超过100,条件将为{{1}并且循环将终止。

答案 1 :(得分:0)

你的while循环只会在computer_pt >= GAME_END_POINTS and user_pt >= GAME_END_POINTS的情况下结束。你确定这两个变量满足这两个条件吗?

答案 2 :(得分:0)

你可以在循环中打印computer_pt和user_pt来查看这两个变量中发生了什么,然后你会找到自己的答案。 循环打印变量是调试代码的常用方法。