Мы получаем ошибку с этим циклом while, но не можем понять, почему - PullRequest
0 голосов
/ 18 сентября 2018

Ошибка, которую мы получаем, состоит в том, что она зацикливается бесконечно и, по-видимому, не выбирает число для правильного выбора

import random
print ("Guess a random number between 1 and 10")
number = random.randint(1,10)
guessTaken = 0
print ("Guess!") 
guess = int( input())
while guessTaken < 6:
  guess != guess+1
  print ("Wrong!, guess again")
  if guess == input(): 
     print ("Correct")
print (  )

Ответы [ 4 ]

0 голосов
/ 18 сентября 2018

Я пытался изменить ваш код:

import random
print ("Guess a random number between 1 and 10")
number = random.randint(1,10)
guessTaken = 1

while guessTaken < 6:
    if guessTaken == 1:
        print('Guess!')
        guess = input()
    else:
        print('Guess Again')
        guess = input()

    if int(guess) == number:
        print('Correct')
        break
    else:
        print('Wrong')

    guessTaken = guessTaken + 1 #counter
0 голосов
/ 18 сентября 2018

В вашем коде много ошибок, но я постараюсь исправить их здесь:

Прежде всего guess != guess+1 не имеет смысла проверять, если guess не равно guess+1 (этоэто не так), что означает, что эта строка всегда возвращает True, и вы ничего с этим не делаете.

Я полагаю, вы хотели написать:

guessTaken += 1

Какие приращенияколичество предположений, принятых 1

Далее вам нужно будет преобразовать второй вход в int, чтобы сравнить его, чтобы угадать, поэтому я рекомендую сделать:

if guess == int(input()): 

вместо

if guess == input(): 

Наконец, я подозреваю, что вы хотите выйти из цикла после того, как число угадано, поэтому я бы добавил оператор break в условие if как таковое:

if guess == int(input()): 
     print ("Correct")
     break
0 голосов
/ 18 сентября 2018

В вашем коде много ошибок.Не уверен, что вам нужно, но вы можете попробовать ниже:

import random
print ("Guess a random number between 1 and 10")
number = random.randint(1,10)
guessTaken = 0
wrong = True
print (number) 
guess = int( input())

while guessTaken < 6: #Maximum guesses are 6
    if guess != number:
        print ("Wrong!, guess again")
        guess = int( input())
    else: 
        print ("Correct")
        break #remember to put break when found correct number
    guessTaken += 1

if guessTaken == 6:
    print ("Maximum guessed")
0 голосов
/ 18 сентября 2018

Завершение цикла основано на значении guessTaken;так как это никогда не изменяется, после ввода цикла он никогда не закончится.

...