簡體   English   中英

Python 任務我在運行時遇到問題

[英]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它會顯示我的數字。

提前致謝。

讓我們一一解決問題:

  1. 您正在將NewGuessGuess ( int(NewGuess)-int(Guess) ) 進行比較, Guess是第一個猜測
  2. 我看不出比賽沒有結束的任何理由。 只要您沒有輸入任何超出范圍的數字,游戲就應該結束。 游戲結束時沒有任何打印聲明,所以也許這就是您認為它沒有結束的原因。
  3. 同樣, guess應該是區間 [1, 100] 中的數字。 也許您沒有從random模塊中導入randint

我強烈建議按照信函的課程來學習如何正確編碼。 更好的是,給自己找一本由在該主題上擁有數十年經驗的專業人士撰寫的書。 Udemy 課程還可以,但它們只能讓您到此為止。 同樣在編碼任何東西之前,先對你要編碼的東西以及它應該如何運行進行草圖。 此外,在 SO 上發布之前,請嘗試自己調試,檢查每一行並對其進行分析; 確保您確切地知道它的作用。 所以應該是你最后的手段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM