第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 為什么我的代碼會導(dǎo)致無限循環(huán)?

Python 為什么我的代碼會導(dǎo)致無限循環(huán)?

阿晨1998 2022-10-05 18:31:22
所以,我正在學(xué)習(xí) Python 3。我嘗試編寫一個腳本,讓你猜一個從 1 到 20 的數(shù)字。現(xiàn)在我知道這不是最好的方法,但是當(dāng)我運(yùn)行代碼時,它會進(jìn)入無限環(huán)形。是什么原因造成的?我做錯了什么?我的問題的目的是了解我的錯誤以及導(dǎo)致錯誤的過程。感謝你們。# Defining the function inside which the verification happensdef guesst(secretNumber, inputNumber):    numberOfGuesses = 0    if inputNumber >= 1 and inputNumber <= 20:        while inputNumber:            if inputNumber > secretNumber:                numberOfGuesses += 1                print('Your guess is too high.')            elif inputNumber < secretNumber:                numberOfGuesses += 1                print('Your guess is too low.')            elif inputNumber == secretNumber:                print('Your guess is correct, congratulations! You\'ve my number in ', numberOfGuesses, 'guesses.')                break    else:        print('Please enter a number between 1 and 20')# Defining the variables used by the functionsecretNumber = 11inputNumber = int(input('I\'m thinking of a number between 1 and 20, try to guess which one: '))# Calling in the functionguesst(secretNumber, inputNumber)# -------------------------------------------------------# I just changed my code to this and it worked, thank you!# -------------------------------------------------------def guesstt(secretNumber):    numberOfGuesses = 0    while secretNumber:        inputNumber = int(input('I\'m thinking of a number between 1 and 20, try to guess which one: '))        if inputNumber >= 1 and inputNumber <= 20:            if inputNumber > secretNumber:                numberOfGuesses += 1                print('Your guess is too high.')            elif inputNumber < secretNumber:                numberOfGuesses += 1                print('Your guess is too low.')            elif inputNumber == secretNumber:                print('Your guess is correct, congratulations! You\'ve my number in ', numberOfGuesses, 'guesses.')                break        else:            print('Please enter a number between 1 and 20')secretNumber = 11guesstt(secretNumber)
查看完整描述

4 回答

?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊

閱讀這兩行:

    if inputNumber >= 1 and inputNumber <= 20:    
        while inputNumber:

循環(huán)體while不會改變inputNumber。如果它在 1..10 或 12..20 范圍內(nèi),則您的循環(huán)等于while True:并且它將永遠(yuǎn)運(yùn)行。您可能希望在if循環(huán)內(nèi)部進(jìn)行測試,并且您肯定希望在您返回評估循環(huán)條件時更改值,例如通過input設(shè)置新值。


查看完整回答
反對 回復(fù) 2022-10-05
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊

secretNumber 不變?if在and中使用 numberOfGuesseselif



查看完整回答
反對 回復(fù) 2022-10-05
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個贊

嘗試這個


def guesst(secretNumber):


numberOfGuesses = 0


while True:

    inputNumber = int(input('I\'m thinking of a number between 1 and 20, try to guess which one: '))

    if inputNumber > secretNumber:

        numberOfGuesses += 1

        print('Your guess is too high.')

    elif inputNumber < secretNumber:

        numberOfGuesses += 1

        print('Your guess is too low.')

    elif inputNumber == secretNumber:

        print('Your guess is correct, congratulations! You\'ve my number in ', numberOfGuesses, 'guesses.')

        break

else:

    print('Please enter a number between 1 and 20')



# Defining the variables used by the function

snum = 11

guesst(snum)

當(dāng) while 循環(huán)重復(fù)時,您需要再次收集用戶的輸入,因此您的輸入語句應(yīng)該在 while 循環(huán)中,而不是在函數(shù)之外。


您的 if 語句也應(yīng)該在 while 循環(huán)內(nèi)。


查看完整回答
反對 回復(fù) 2022-10-05
?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個贊

變量 inputNumber 不會在 while 循環(huán)中更新。

嘗試添加:

inputNumber = int(input("please try again"))

或者大意是允許用戶在下一次迭代之前更新他們的猜測。


查看完整回答
反對 回復(fù) 2022-10-05
  • 4 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號