我是使用類的新手,我需要在類中放置某個代碼。我已經得到了代碼爲預期類以外的工作:在類中使用while循環
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"
count
實際上應該從0開始,但我把它9000在第一個例子(而在第二個我改變count
從0到9000 )
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"
我在做什麼錯? (我想要print number.num
返回與第一個代碼中相同的值,「19」不是「1」)
有你居然叫'number.num()'? – ChrisP
這兩個代碼還有一些其他的區別,所以不同的行爲根本不會令人驚訝。什麼是'self.level'? –
使用'while'循環遍歷一個數字範圍並不是pythonic。每循環一次,也會創建一個新的'range()'對象*,效率不高。考慮爲範圍內的數字(minnum,maxnum + 1):'代替。 –