循环中创建变量的问题

0 投票
3 回答
1015 浏览
提问于 2025-04-16 13:16

我正在通过一本教人用游戏来学习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

这一行代码传递了三个参数。

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

可以在外面格式化字符串,也可以在里面格式化字符串。

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

或者

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

或者,使用格式化方法(在Python 2.6中引入的):

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

或者,如果你在用Python 3的话:

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

你的问题是你给了 raw_input 三个参数,而它其实只需要一个;)

不过说正经的:你写的像 raw_input("is it", guess, "?:") 这样的调用,应该用Python的字符串格式化来处理传给 raw_input 的字符串:raw_input("is it %s?" %(guess, ))

撰写回答