首页 > 解决方案 > 为什么while循环不会在成功时中断?

问题描述

我正在迈出编码的第一步,我正在开发一个生成随机数的小程序,用户必须猜测数字,直到选择的数字与生成的数字匹配。

出于某种原因,即使我给出了正确的数字,while 循环也不会中断。

import random
secretnumber = random.randint(1,10)
chosennumber = 0

while secretnumber != chosennumber:
    print("Number selected. Please select a number between 1 and 10")
    print ("hint! The number is " + str(secretnumber))
    chosennumber = input()
    if secretnumber!= chosennumber:
        continue
    print("please try again, think about the hint")
    chosennumber = input()
    if chosennumber == secretnumber:
        break
print("you've guessed the correct number " + str(secretnumber))

标签: pythonloopswhile-loop

解决方案


的返回值input()是一个字符串。将字符串与整数进行比较总是会产生False。您需要将字符串转换为 int 或将 int 转换为字符串以进行比较,以确保您正在比较相同类型的变量。

import random
secretnumber = random.randint(1,10)
chosennumber = 0

while secretnumber != chosennumber:
    print("Number selected. Please select a number between 1 and 10")
    print ("hint! The number is " + str(secretnumber))
    chosennumber = int(input().strip())
    if secretnumber!= chosennumber:
        continue
    print("please try again, think about the hint")
    chosennumber = int(input().strip())
    if chosennumber == secretnumber:
        break
print("you've guessed the correct number " + str(secretnumber))

推荐阅读