python - 我的代码可以工作,从某种意义上说,它运行我想要它执行的操作,但是一旦用户正确猜出数字,终端就会结束并且不会循环

标签 python loops while-loop

import random

number = random.randint(1,100)


while True:
    pick = input("Choose a number between 1 and 100. ")
    pick = int(pick)
    if pick == number:
        print("You are correct, great job! ")

    while True:
        if pick > number:
            print("That was too high of a guess. Try again. ")
            break       
        elif pick < number:
            print("That was too low of a guess. Try again. ")
            break

代码按照我希望的方式运行,但它在一次正确猜测后停止,并且我希望一旦用户正确猜测数字,循环就会重新启动

最佳答案

用一会一歇:

import random

number = random.randint(1,100)

while True:
    pick = int(input("Choose a number between 1 and 100. "))
    if pick == number:
        print("You are correct, great job! ")
        break # correct guess, break
    elif pick > number:
        print("That was too high of a guess. Try again. ")
    else: # one possibility left, so no need for another elif
        print("That was too low of a guess. Try again. ")

测试用例:

Choose a number between 1 and 100. 80
That was too high of a guess. Try again.
Choose a number between 1 and 100. 60
That was too high of a guess. Try again.
Choose a number between 1 and 100. 40
That was too low of a guess. Try again.
Choose a number between 1 and 100. 50
That was too low of a guess. Try again.
Choose a number between 1 and 100. 55
That was too high of a guess. Try again.
Choose a number between 1 and 100. 53
That was too low of a guess. Try again.
Choose a number between 1 and 100. 54
You are correct, great job!


如果您不希望它在正确猜测后停止,请删除中断,然后再次猜测:

import random

number = random.randint(1,100)

while True:
    pick = int(input("Choose a number between 1 and 100. "))
    if pick == number:
        print("You are correct, great job! ")
        number = random.randint(1,100) # guess again
    elif pick > number:
        print("That was too high of a guess. Try again. ")
    else: # one possibility left, so no need for another elif
        print("That was too low of a guess. Try again. ")

关于python - 我的代码可以工作,从某种意义上说,它运行我想要它执行的操作,但是一旦用户正确猜出数字,终端就会结束并且不会循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017080/

相关文章:

python - Celery 任务方法没有被调用

MySQL CURSOR 循环在存储过程中添加额外的传递

c# - 如何用 LINQ 替换嵌套循环 - 以一种干净、可管理的方式

java - 带循环的变量范围

java - While 循环读取标记时出现问题

python - Django,Modelform不呈现

python - 具有平均时间的 Pandas 数据透视表

python - float 对象不可调用

c - 循环外迭代器的声明和注册迭代器 : How useful they are?

python - 打印不符合数据间隔设置