如何在python 3中防止无限循环

时间:2017-12-09 06:19:47

标签: python python-3.x while-loop

我正在创建一个玩游戏猪骰子的程序。它应该做到以下几点: 1.选择用户或计算机是否在第一圈进行播放。 2.如果计算机先启动,计算机会转一圈 3.只要计算机分数小于100,重复: 一个。用户转一圈。 湾如果用户的分数达到100,则退出循环 C。电脑转了一圈。 4.打印结果。 我的问题是,当我运行程序时,有一个无限循环,我不知道它在哪里遇到这个问题。任何人都可以指出问题发生的位置,并可能就如何防止这种情况提出建议吗?指出任何其他错误也很受欢迎,因为我是python的新手。

{{1}}

codepart1

codepart2

2 个答案:

答案 0 :(得分:1)

你的问题是

if u_score >= 100:
    exit 

“exit”不是留下循环的关键字,它是“中断”。如果您确实希望程序终止,则需要使用exit()调用该方法。

答案 1 :(得分:1)

您的代码中存在一些问题,因为我已经广泛地使用了您的代码。

  1. 在以下代码段

    def roll_two_dice():     roll1 = randint(1,6)     roll2 = randint(1,6)

    if roll1 or roll2 == 1:
        return 0
    
    
    elif roll1 and roll2 == 1:
        return 25
    else:
        return roll1 + roll2
    

    两个案件都应该包含,

  2. roll1 == 1

    由于您编写的条件不会检查roll1 = 1还是roll2 = 1.实际上它会检查roll2 = 1和roll1除1以外的任何内容。这可能会导致无限循环。

    1. 其次在以下两个功能中: -

      computerTurn(评分)

      userTurn(分数)

    2. 你没有更新turn_score的值并返回那个导致事情变得更糟的值,而值c_score总是渲染为0而代码将落入无限循环。

      1. 同样在功能

        def final_result(uscore,cscore):

      2. 你不应该将uscore和cscore = 0的值设为uscore> = 100的条件永远不会出现