簡體   English   中英

有關猜游戲的Python代碼

[英]Python code about guessing game

我的代碼有一個小問題,我正在嘗試做一個猜謎游戲,實際上是一本書,但是我無法弄清楚這是怎么回事...

# A guess game program made in python
import random

guessesTaken = 0

print('Hello! What is your name, may i ask?')
myName = input()

number = random.randint(1, 20)
print('Well, ' + myName + ', I am thinking of a number between 1 and 20')

while guessesTaken < 6:
    print('Take a guess..')
    guess = input()
    guess = int(guess)

    guessesTaken = guessesTaken + 1

    if guess < number:
        print('Your number guess is too low, guess again')

    if guess > number:
        print('Your number is too high! guess lower or something!')

    if guess == number:
        break

    if guess == number:
        guessesTaken = str(guessesTaken)
        print('Good job, ' + myName + '! You guessed the right number in' + guessesTaken + 'guesses!')

    if guess != number:
            number = str(number)
            print('Nah, The number i was thinking of was ' + number)

這是它給我的錯誤。

Hello! What is your name, may i ask?
ygh
Well, ygh, I am thinking of a number between 1 and 20
Take a guess..
4
Your number guess is too low, guess again
Nah, The number i was thinking of was 7
Take a guess..
2
Traceback (most recent call last):
  File "C:/Users/Owner/Desktop/guess.py", line 19, in <module>
    if guess < number:
TypeError: unorderable types: int() < str()

Process finished with exit code 1

我將Pycharm用作IDLE,並且我也在Windows上。

在您的代碼中幾乎沒有更改,您可以使用format()來代替調用str

# A guess game program made in python
import random

guessesTaken = 0

print('Hello! What is your name, may i ask?')
myName = input()

number = random.randint(1, 20)
print('Well, {}, I am thinking of a number between 1 and 20'.format(myName))

while guessesTaken < 6:
    print('Take a guess..')
    guess = input()
    guess = int(guess)

    guessesTaken += 1 # Instead of calling the variable itself then adding 1

    if guess < number:
        print('Your number guess is too low, guess again')

    if guess > number:
        print('Your number is too high! guess lower or something!')

    if guess == number:
        print('Good job, {}! You guessed the right number in {} guesses!'.format(myName,guessesTaken))
        break # the beak goes here

    if guess != number:
        print('Nah, The number i was thinking of was {}'.format(number))

此外,您的break位置不正確,因為它將在發送所需的print之前執行,從而過早地結束了代碼。

暫無
暫無

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

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