--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[34], line 23 21 print('猜大了') 22 n=int(input('请输入你猜的整数:')) ---> 23 Puzzle.guess(n) 24 print('猜对了') TypeError: Puzzle.guess() missing 1 required positional argument: 'n'
时间: 2023-08-15 07:36:03 浏览: 99
这个报错提示说 `Puzzle.guess()` 方法缺少一个必需的参数 `n`。这是因为在调用 `Puzzle.guess()` 方法时,需要将类的实例对象作为第一个参数进行传递,否则方法无法识别要操作的对象。可以将 `Puzzle.guess(n)` 改为 `puzzle.guess(n)`,其中 `puzzle` 是 `Puzzle` 类的一个实例对象。修改后的代码如下所示:
```python
import random
class Puzzle():
def __init__(self):
self.result = random.randint(1,100)
def guess(self,n):
if n == self.result:
return 0
elif n > self.result:
return 1
else:
return -1
puzzle = Puzzle()
n = int(input('请输入你猜的整数:'))
while True:
p = puzzle.guess(n)
if p == 0:
print('猜对了')
break
elif p == -1:
print('猜小了')
else:
print('猜大了')
n = int(input('请输入你猜的整数:'))
```
修改后的代码中,首先创建了一个 `Puzzle` 类的实例对象 `puzzle`,然后在循环中调用 `puzzle.guess(n)` 方法进行猜测,并根据返回值进行输出提示。当用户猜中数字时,使用 `break` 语句跳出循环并输出"猜对了"。
阅读全文