【发布时间】:2021-08-14 05:18:27
【问题描述】:
我正在尝试制作一个猜谜游戏,我想我已经把所有东西都安排好了。但是,由于某种原因,我的第二种方法中的 for 循环似乎被跳过了。这个循环应该是从用户那里获取猜测并将它们与number_gen 方法中生成的数字进行比较。
我什至不确定我是否应该使用__init__ 方法,但这就是我最后一次课堂作业的开始,所以我认为这是一个不错的起点。
import random
guess = 0
num = 0
attempts = 0
class guessgame:
def __init__(self, guess, num):
self.guess = guess
self.num = num
def number_gen():
num = random.randrange(1, 100, 1)
print(num)
def take_guess():
global attempts
print("haha")
for i in range(attempts):
if self.guess != self.num and self.guess == 0:
input("Enter a number to guess between 1 and 100! ")
elif self.guess != self.num and self.guess >= 1:
input("Sorry, try again! ")
elif self.guess == self.num:
print("You got it!\nIt only took " + attempts + " attempts!")
attempts = attempts + 1
guessgame.number_gen()
guessgame.take_guess()
我让它打印num 和haha 只是为了让我看到它已经走得那么远。
【问题讨论】:
-
您缺少
self作为方法的参数。 -
第一次迭代的尝试次数不等于 0 吗?所以它是
for i in range(0):最后你需要创建一个类的对象。我建议在互联网上查找一些教程。 docs.python.org/3/tutorial/classes.htmlprogramiz.com/python-programming/class -
我什至不明白你在这里要做什么;看起来您需要将
self添加到所有方法,然后使用guess和num创建guessgame的实例。但是,在take_guess函数中,您只需继续循环attempt次,检查在开头初始化的变量是否为开头的数字。如果您每次都检查相同的两个值(因此得到相同的输出attempt次),那么这个循环有什么用?
标签: python python-3.x loops class methods