2016-09-14 2 views
1

안녕하세요, 저는 학교에서 운동하는 데 막혔습니다. 도움을받을 수 있습니다.파이썬 3 for 루프 짝수 또는 홀수

만들기위한 루프 번호를 통과 : 현재 짝수 인 경우

67,2,12,28,128,15,90,4,579,450 

, 당신은 변수에 추가해야하며 현재 번호가 홀수 인 경우, 당신은에서를 빼야한다 변수.

최종 결과로 답변.

여기 내 코드가 있습니다. a의 초기 값은 0 경우 정답이 53을해야

5.6 FAIL. 
You said: 
4 class 'int'> 

:이 프로그램을 실행하면

def listnum(a): 
for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]: 
    if (num%2): 
     a = a + num 
    else: 
     a = a - num 
    return a 

답 내가 답을 얻을

=.

어느 누구도 나를 도울 수 있으며 어떤 일이 잘못되었는지 말할 수 있습니까? 또는 올바른 방향으로 나를 가리킬 수도 있습니다. 감사합니다.

+0

'if (num % 2 == 0)', 0은 그렇지 않다면 – Li357

+1

입니다. 파이썬은 공백에 의존하므로 코드를 게시 할 때 우리에게주는 것을 경계하십시오. – Fallenreaper

+1

@Fallenreaper는 귀하의 이익이 현재 귀하의 else 블록을 처음 실행 한 후 귀하의 기능을 종료 할 것이라고 말하고 있습니다. – dckuehn

답변

0

여러분의 함수 입력이 반환 값이 아니라면 더 의미가 있다고 생각합니다. 또한 (다른 사람들이 언급했듯이) num % 2 == 0이 필요하고 들여 쓰기가 옳지 않습니다. 대신보십시오 : 당신이 한 줄에서이 작업을 수행 할 수

def listSum(l): 
    ans = 0 
    for num in l: 
    if num % 2 == 0: 
     ans += num 
    else: 
     ans -= num 
    return ans 

참고 :

def listSum(l): 
    return sum(i if i % 2 == 0 else -i for i in l) 

print(listSum([67, 2, 12, 28, 128, 15, 90, 4, 579, 450])) 인쇄 두 경우 모두 53.

0

대부분 상태를 조정해야하는 것처럼 보입니다.

def listSum(a): 
    for num in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]: 
    if(num % 2 == 0): #subtle difference here. 
     a += num 
    else: 
     a -= num 
    return a 

이것은 약간의 차이가 있습니다.