저는 수업을 처음 사용하기 때문에 클래스 내에 특정 코드를 배치해야합니다. 나는 클래스의 외부에서 의도 한대로 작동하는 코드를 가지고 :클래스에서 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
두 번째로 내가 9000 0에서 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()'라는 적이 (스타일을 말하자면, 나는 또한 당신이 아니라 직접
count
을 설정하지 않고,__init__
initialiser를 통해count
를 초기화하는 것이 좋을 것)? – ChrisP두 코드에는 몇 가지 다른 차이점이 있으므로 다른 동작은 전혀 놀랄만하지 않습니다. 도대체'self.level'이란 무엇입니까? –
'while'루프를 사용하여 숫자의 범위를 반복하는 것은 매우 평범하지 않습니다. 또한 새로운'range()'객체 *를 반복 할 때마다 루프가 효율적이지 않습니다. 대신'num for range (minnum, maxnum + 1) :'을 수행하는 것을 고려하십시오. –