2017-04-18 1 views
-1

변수 mult는 프로그램이 실행될 때 업데이트되지 않습니다. 이 코드의 문제점은 무엇입니까? 실행 결과는 내가 원하는대로 루프가 실제로 작동하는지 보여줘하지만 다른 코드 목록 업데이트 및 최종 인쇄list.append를 사용하여 for 루프에서 목록을 업데이트하십시오.

number = 18 

for i in range(int(number/2)): 
    i += 1 
    mults = [] 
    if number % i == 0: 
     mults = mults.append(i) 
     print(i) 
    elif number % i != 0: 
     pass 
    elif i == int(number/2): 
     print(mults) 

내가 오류 얻을 : AttributeError를 'NoneType'개체가 어떤 속성을 '추가'를이 없습니다 당신이 끝난 때마다 루프가 실행 그것을 작성되지 않도록

number = 18 
mults = [] 
for i in range(int(number/2)): 
    i += 1 
    if number % i == 0: 
     mults = mults.append(i) 
     print(i) 
    elif number % i != 0: 
     pass 
print(mults) 
+1

루프가 반복 될 때마다 'mults'가 재설정됩니다. – MooingRawr

+1

'mults = mults.append (int (i))': 그 중 하나는 작동하지 않습니다 ... –

+0

btw :'int (number/2)'=>'number // 2'. 루프 중에 'i'를 변경하지 마라. 마지막 인덱스를 검사하는 대신 for 루프를 사용하여 결과를 출력하라. 그러면 elsif 대신에 else를 사용할 수있다. –

답변

0
number = 18 
mults = [] 
for i in range(int(number/2)): 
    i += 1 

    if number % i == 0: 
     mults.append(i) 
     print(i) 
    elif number % i != 0: 
     pass 
print(mults) 

몇 가지주의 사항은, 루프의 mults 외부로 이동합니다.

for 루프가 완료되면 print(mults)이라는 마지막 elif 문은 필요하지 않습니다. 기본적으로 마지막 elif 문입니다.

mults.append(i)은 라인 mults을 자동으로 변경하므로 사용자가 다시 지정하지 않아도된다는 의미입니다.

+0

감사합니다. 반복 된 실수가 결코 없었던 것을 보았습니다 – Pozeidon

+0

Welp가 문제를 해결했을 경우 답변을 수락하는 것이 좋습니다. 그렇지 않은 사람이 더 좋은 대답을 받아 들일 수 있습니다. – MooingRawr

+0

아직 수 없습니다. , 그러나 곧 나의 명성이 나를 허락 할 것이면서 그것은 끝날 것이다. – Pozeidon

관련 문제