Проблемы с Python: угадай число

python

128 просмотра

3 ответа

Я сделал предположение о числовой игре Python для терминала, но игра не распознает, когда игрок выигрывает, и я не понимаю, почему. вот мой код:

from random import randint

import sys

def function():

    while (1 == 1):

        a = raw_input('Want to Play?')

        if (a == 'y'):

            r = randint(1, 100)

            print('Guess the Number:')
            print('The number is between 1 and 100')

            b = raw_input()

            if (b == r):

                print(r, 'You Won')

            elif (b != r):

                print(r, 'You Lose')    

        elif (a == 'n'):

            sys.exit()  

        else:

            print('You Did Not Answered the Question')          

function()
Автор: Andrea Источник Размещён: 08.11.2019 11:31

Ответы (3)


0 плюса

Решение

Это правильная версия кода, которую я написал для вашего вопроса.

import random
while (1 == 1):
   a = raw_input('Want to Play?')
   if (a == 'y'):
     r = random.randint(1, 100)
     print('Guess the Number:')
     print('The number is between 1 and 100')
     b = int(raw_input()) 
     if (b == r):
        print(r, 'You Won')
     elif (b != r):
        print(r, 'You Lose')    
  elif (a == 'n'):
    break   
else:
    print('You Did Not Answered the Question')

Надеюсь это поможет.

Автор: Annapoornima Koppad Размещён: 20.08.2016 03:58

2 плюса

Как упоминалось в ответе FujiApple : тип ввода по умолчанию является строкой.

Так :

>>>b = raw_input("Enter a number : ")
Enter a number : 5
>>>print b
'5'
>>>type(b)
<type 'str'>

Вам нужно преобразовать строку в целое число, чтобы она стала равной числу randint:

if int(b) == r:
Автор: randomhopeful Размещён: 20.08.2016 04:00

1 плюс

raw_input() возвращает строку, которую вы сравниваете с int, возвращаемым randint

Автор: FujiApple Размещён: 20.08.2016 03:53
Вопросы из категории :
32x32