我收到一个错误,说"raw_input() takes from 1 to 2 positional arguments but 4 were given".我无法弄清楚出了什么问题



我正在尝试为一个简单的游戏制作代码。游戏的设计很好。但是我很难在原始输入函数中包含变量和文本。任何帮助将不胜感激。

这是代码

while True:
n=int(input("How many marbles to start with? ")) #Exercise 2.4
if (n>=1) and ((n%1)==0):
break
else:
print("enter a positive integer")
while n>0:
p2=int(input("Player #1, there are",n, "marbles left. How many marbles will you take? "))
if (p2 not in (1,2,3)) or (p2>n):
print("not a proper input")
else:
n=n-p2
if n==0:
print("Player #1, you took the last marble and have won! ")   
else:
while True:
p1=int(input("Player #2, there are",n, "marbles left. How many marbles will you take? "))
if (p1 not in (1,2,3)) or (p1>n):
print("not a proper input")
else:
n=n-p1
if n==0:
print("Player #2, you took the last marble and have won! ")
break

这是我收到的错误消息

TypeError                                 Traceback (most recent call last)
<ipython-input-13-d507a539ca61> in <module>
6         print("enter a positive integer")
7 while n>0:
----> 8     p2=int(input("Player #1, there are",(n), "marbles left. How many marbles will you take? "))
9     if (p2 not in (1,2,3)) or (p2>n):
10         print("not a proper input")
TypeError: raw_input() takes from 1 to 2 positional arguments but 4 were given

您需要将要传递给input()的字符串连接成单个字符串,而不是像现在这样将它们作为单独的参数传递。取代:

input("Player #1, there are",(n), "marbles left. How many marbles will you take? ")

input("Player #1, there are " + str(n) + " marbles left. How many marbles will you take?")

相关内容

最新更新