Python 在类中使用while循环
我不熟悉类,我需要在类中放置特定的代码。我已经让代码在课堂外按预期工作:Python 在类中使用while循环,python,class,while-loop,Python,Class,While Loop,我不熟悉类,我需要在类中放置特定的代码。我已经让代码在课堂外按预期工作: minnum = 1 maxnum = 100 num = 1 points = 0 count = 9000 while num in range(minnum, (maxnum + 1)): points += int(num + 300 * 2 * num / 3) num += 1 if count < (poin
minnum = 1
maxnum = 100
num = 1
points = 0
count = 9000
while num in range(minnum, (maxnum + 1)):
points += int(num + 300 * 2 * num / 3)
num += 1
if count < (points / 4):
num -= 1
break
print num #Prints "19"
我做错了什么?(我希望
print number.num
返回与第一个代码中相同的值,“19”而不是“1”)在第二个示例中,您没有调用num()
方法,并且您可能也不希望调用同名(“num”)的变量和方法
(就风格而言,我还建议您通过\uuuu init\uuuu
初始化器初始化count
,而不是直接设置count
)
在第二个示例中,您没有调用
num()
(就风格而言,我还建议您通过\uuuu init\uuuu
初始化器初始化count
,而不是直接设置count
)
在第二个示例中,您没有调用num()
(就风格而言,我还建议您通过\uuuu init\uuuu
初始化器初始化count
,而不是直接设置count
)
在第二个示例中,您没有调用num()
(就风格而言,我还建议您通过\uuuu init\uuuu
初始化器初始化count
,而不是直接设置count
)
您是否真的调用了number.num()
?这两个代码中还有一些其他的差异,所以不同的行为一点也不奇怪。究竟是什么self.level
?使用while
循环来迭代一系列数字并不是很像python。每次循环时创建一个新的range()
对象也不是很有效。考虑在Num(Mnnum,Max Num + 1)中执行<代码>:。@克里斯普:是的,但这给了我一个错误。(结果是)方法和变量的名称不允许相同。@user3108546:如果您使用的是python 2.7或更低版本,请使用xrange
而不是range
。这将解决您的效率问题range
返回数字列表,而xrange
返回根据需要生成数字的生成器。如果您使用的是Python3,range
的行为与xrange
相同。您是否实际调用了number.num()
?这两个代码中还有一些其他的差异,因此不同的行为一点也不令人惊讶。究竟是什么self.level
?使用while
循环来迭代一系列数字并不是很像python。每次循环时创建一个新的range()
对象也不是很有效。考虑在Num(Mnnum,Max Num + 1)中执行<代码>:。@克里斯普:是的,但这给了我一个错误。(结果是)方法和变量的名称不允许相同。@user3108546:如果您使用的是python 2.7或更低版本,请使用xrange
而不是range
。这将解决您的效率问题range
返回数字列表,而xrange
返回根据需要生成数字的生成器。如果您使用的是Python3,range
的行为与xrange
相同。您是否实际调用了number.num()
?这两个代码中还有一些其他的差异,因此不同的行为一点也不令人惊讶。究竟是什么self.level
?使用while
循环来迭代一系列数字并不是很像python。每次循环时创建一个新的range()
对象也不是很有效。考虑在Num(Mnnum,Max Num + 1)中执行<代码>:。@克里斯普:是的,但这给了我一个错误。(结果是)方法和变量的名称不允许相同。@user3108546:如果您使用的是python 2.7或更低版本,请使用xrange
而不是range
。这将解决您的效率问题range
返回数字列表,而xrange
返回根据需要生成数字的生成器。如果您使用的是Python3,range
的行为与xrange
相同。您是否实际调用了number.num()
?这两个代码中还有一些其他的差异,因此不同的行为一点也不令人惊讶。究竟是什么self.level
?使用while
循环来迭代一系列数字并不是很像python。每次循环时创建一个新的range()
对象也不是很有效。考虑在Num(Mnnum,Max Num + 1)中执行<代码>:。@克里斯普:是的,但这给了我一个错误。(结果是)方法和变量的名称不允许相同。@user3108546:如果您使用的是python 2.7或更低版本,请使用xrange
而不是range
。这将解决您的效率问题range
返回数字列表,而xrange
返回根据需要生成数字的生成器。如果您使用的是Python3,range
的行为与xrange
相同。谢谢,这回答了我的问题。Python不允许我调用与方法相同的变量(因此,如果我调用了方法,如果它有一个同名的变量,我就会出错),count变量是通过一段单独的代码不断变化(或增长)的。例如,每次按下一个特定按钮时,计数可能会增加+50,这将影响代码的其余部分。谢谢,这回答了我的问题。Python不允许我调用变量
class numbers():
def __init__(self):
self.minnum = 1
self.maxnum = 100
self.num = 1
self.points = 0
self.count = 0
def num(self):
while self.num in range(self.minnum, (self.maxnum + 1)):
self.points += int(self.num + 300 * 2 * self.num / 3)
self.num += 1
if self.count < (self.points / 4):
self.num -= 1
break
return self.num
number = numbers()
number.count = 9000
print number.num #Prints "1"
def __init__(self, count):
self.count = count
# etc...
number = numbers(9000)