循环中创建变量的问题
我正在通过一本教人用游戏来学习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, ))
。