对不起,如果我没有正确地做到这一点,我是新来的。我试图使它成为raw_input循环通过每次保存self.x的值,以便它询问" r或l"?每当你点击Enter,然后提高或降低self.x但我不知道如何。如果有人能检查我的工作,那将意味着很多。谢谢。
q = raw_input("r or l: ")
class game:
def __init__(self):
self.x = 0
def raise_n(self):
self.x += 1
return self.x
def lower_n(self):
self.x -= 1
return self.x
def main():
g = game()
while q == "r":
print g.raise_n()
break
while q == "l":
print g.lower_n()
break
main()
我也试过这个,但即使我试图再次调用main(),它也没有保存self.x的值。
q = raw_input("r or l: ")
class game:
def __init__(self):
self.x = 0
def raise_n(self):
self.x += 1
return self.x
def lower_n(self):
self.x -= 1
return self.x
def main():
g = game()
while q == "r":
print g.raise_n()
break
while q == "l":
print g.lower_n()
break
main()
任何帮助都非常有用,谢谢!
答案 0 :(得分:0)
您的第二种方法更接近有效的解决方案。有几种方法,下面我给你看一个,没有引入太多的变化。基本上是:
main()函数在无限循环中执行。如果要更改停止条件,请更改True条件。
每次进入main()函数时都会询问并评估问题。然后,它会检查是否必须运行 raise_n()或 lower_n()方法。
代码:
class game():
def __init__(self):
self.x = 0
def raise_n(self):
self.x += 1
return self.x
def lower_n(self):
self.x -= 1
return self.x
def main():
q = raw_input("r or l: ")
if q == "r":
print g.raise_n()
if q == "l":
print g.lower_n()
g = game()
while True:
main()
编辑:为了使while循环的条件迭代一段确定的次数,可以连续增加一个常量并检查它是否已达到所需的极限:
#... Copy previous code here
g = game()
iterations_limit = 10 #Substitute 10 by any positive integer
while k > iterations_limit:
k += 1 #Increase variable k
main()