Проблема с созданием переменной в цикле - PullRequest
0 голосов
/ 08 марта 2011

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

Traceback (most recent call last):
  File "C:\Users\Rayvenx\Desktop\My_programs\Number_game_pcguess.py", line 7, in 
    highlow = raw_input("\nIs it", guess, "?:")
TypeError: [raw_]input expected at most 1 arguments, got 3

Вот код:

import random

number = raw_input("\nWhat is your number 1-100? :")

guess = random.randrange(100) + 1

highlow = raw_input("\nIs it", guess, "?:")

while guess != number:
    if highlow == "lower":
        guess = random.randrange(100) + 1  guess

        highlow = raw_input("\nIs it", guess, "?:")


print "\nHaha! I win!"

raw_input("\n\nPress enter to exit game.")

Ответы [ 3 ]

1 голос
/ 08 марта 2011
highlow = raw_input("\nIs it %s?:"%guess)

Или, используя метод форматирования (введен в Python 2.6):

highlow = raw_input("\nIs it {0}?:".format(guess))

Или, используя if Python3:

highlow = raw_input("\nIs it {}?:".format(guess))
1 голос
/ 08 марта 2011

Эта строка передает 3 аргумента.

highlow = raw_input("\nIs it", guess, "?:")

Форматировать строку снаружи или форматировать строку внутри

mystr = "\nIs it %s ?;" % guess
highlow = raw_input(mystr)

или

highlow = raw_input("\nIs it %s ?;" % guess)
0 голосов
/ 08 марта 2011

Ваша проблема в том, что вы даете raw_input три аргумента, когда он ожидает один;)

Но, если серьезно, ваши вызовы, которые выглядят как raw_input("is it", guess, "?:"), должны использовать форматирование строки Python для форматирования строки, передаваемой в raw_input: raw_input("is it %s?" %(guess, )).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...