[英]Python task I'm having trouble running
我在 Udemy 開設了一門新課程,名為“Python 訓練營,從零到英雄”。 嗯,基礎課后的任務之一就是寫一個猜謎游戲,這些是規則:
挑戰:
編寫一個程序,從 1 到 100 中隨機選擇一個整數,讓玩家猜測這個數字。 規則是:
如果玩家的猜測小於 1 或大於 100,請說“越界” 在玩家的第一回合,如果他們的猜測在數字的 10 以內,則返回“WARM!” 距離數字超過 10,返回“COLD!” 在所有后續回合中,如果猜測比前一個猜測更接近數字,則返回“更溫暖!” 比先前猜測的數字更遠,返回“COLDER!” 當玩家的猜測等於數字時,告訴他們他們猜對了以及猜對了多少!
我試圖在沒有指導的情況下寫這個,只是從我學到的基本工具。 迄今為止。 這是我的代碼(仍在處理它)
guess=randint(0,100)
## Guessing game !
# In this game, we will pick a random integer from the integers in the segment [0,100].
# In each step one should guess the integer that the system chose.
# Once you gussed correctly, you will win the game.
GuessList=[]
Guess=input('Your Guess is: ')
GuessList.append(Guess)
if int(Guess)<0 or int(Guess)>100:
print('OUT OF BOUNDS')
else:
if int(Guess)==int(guess):
print('Congragulations, you have earned your chicken for friday \n Game is over now.')
else:
if 0<int(guess)-int(Guess)<10:
print('Warm')
elif 0<int(Guess)-int(guess)<10:
print('Warm')
else:
print('Cold')
NewGuess=input('Your new guess is: ')
if int(NewGuess)==int(guess):
print('Congragulations, you have earned your chicken for friday \n The game is over now')
while int(NewGuess)!=int(guess):
if int(NewGuess)<0 or int(NewGuess)>100:
print('OUT OF BOUNDS')
else:
GuessList.append(NewGuess)
if 0<int(NewGuess)-int(Guess)<int(Guess)-int(guess):
print('WARMER')
elif 0<int(NewGuess)-int(Guess)<int(guess)-int(Guess):
print('WARMER')
elif 0<int(Guess)-int(NewGuess)<int(guess)-int(Guess):
print('WARMER')
elif 0<int(Guess)-int(NewGuess)<int(Guess)-int(guess):
print('WARMER')
else:
print('COLDER')
NewGuess=input('Your new guess is: ')
我確定這很糟糕。 我的問題是:
首先,我知道我沒有完成任務中寫的內容。 我的代碼沒有告訴猜測他是否更接近正確數字的人,而是與第一個猜測有關。 不要告訴我怎么寫正確,等我明白了更關鍵的問題,我會弄清楚的:
正如它所寫的那樣,無論我試圖猜測什么,它都不會結束游戲(好像 0-100 之間的所有數字)都是不正確的。
同樣,當我運行它並嘗試運行簡單的代碼guess
,它什么也不做(我在木星筆記本中工作)。
但是如果我不運行這段代碼,只運行guess=randint(0,100)
然后運行guess
它會顯示我的數字。
提前致謝。
讓我們一一解決問題:
NewGuess
與Guess
( int(NewGuess)-int(Guess)
) 進行比較, Guess
是第一個猜測guess
應該是區間 [1, 100] 中的數字。 也許您沒有從random
模塊中導入randint
?我強烈建議按照信函的課程來學習如何正確編碼。 更好的是,給自己找一本由在該主題上擁有數十年經驗的專業人士撰寫的書。 Udemy 課程還可以,但它們只能讓您到此為止。 同樣在編碼任何東西之前,先對你要編碼的東西以及它應該如何運行進行草圖。 此外,在 SO 上發布之前,請嘗試自己調試,檢查每一行並對其進行分析; 確保您確切地知道它的作用。 所以應該是你最后的手段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.