• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

문제 5번 질문이 있어요 (사실 7번도요)

22.08.17 12:13 작성 조회수 134

0

안녕하세요 선생님. 먼저 좋은강의 감사해요

다름이 아니라 5번 문제에 관해 질문이 있어 글을 올리게 되었어요.

(쓰다보니 너무 길어졌네요 죄송합니다..)

1. 먼저,
my_list = [10, 25, 78, 456]


total = 0
length = 0

for i in my_list:
total += i
print(total)
 
이렇게 코딩을 했을 때는 
10 35 113 569 이렇게 4개의 값이 나오는데,

print()를 빼고 total 만 하여 엔터를 하면
569 딱 한 값만 나오더라고요. 
이유를 할 수 있을까요??
 
2. 7번 문제의 경우,
 
x = input() 이렇게 시작하여서 입력한 포켓몬의 결과값만 나올 수 있는 코딩법을 알 수 있을까요?
 
계속 해봤는데 아직 제 실력으로는 부족한 것 같더라고요.
 
my_pokemon_hp = {
'피카츄': 100,
'꼬북이': 90,
'파이리': 80,
'이상해씨': 140
}

x = input('당신의 포켓몬은? : ')

for 포켓몬, hp in my_pokemon_hp.items() :
       if hp >= 100 :
           print(f"가라, {포켓몬}")
       else :
           print('다시 돌아와')
 
이렇게 했을 때, '파이리'값을 넣으면,
-> 당신의 포켓몬은? : 파이리
    가라, 피카츄
    가라, 이상해씨. 
 
이렇게 3개가 나오더라고요. 저는 파이리를 넣으면 '다시 돌아와'가 될줄 알았어요.
 
 
 
 

답변 1

답변을 작성해보세요.

0

[ 1번 질문 ]

for i in my_list: # 1. my_list 안에 있는 원소 i를  
    total += i    # 2. total에 더하고 
    print(total)  # 3. (2에 의해 변화한) total을 출력한다.

위와 같은 과정(3번까지 모두)을 my_list의 첫 번째 원소 10에 대해 적용하고 나서, 두 번째 원소 25에 대해 적용합니다.
2번 과정에 의해 total 값은 계속 변화하고, 3번 과정에 의해 변화할 때마다 출력을 해서 그 때 그 때의 total 값을 확인할 수 있었던 것입니다.
그런데 3번 과정을 제외하면 total 값이 바뀌었어도 그 바뀐 값을 매번 출력하지 않습니다.
for 반복문이 모두 끝나고 나서 total을 출력하면 마지막 시점의 값 하나만 보여 줍니다.

 

[ 2번 질문 ]

x = input('당신의 포켓몬은? : ')

이 코드를 실행한 후 '파이리'라는 문자열을 넣으면 x = '파이리'가 됩니다.
리스트에 있는 모든 값이 필요한 것이 아니라, 이 중에서 x에 해당하는 hp 값만 필요하므로 for 반복문은 쓰실 필요가 없습니다.
그리고 이 hp가 100보다 크거나 같은 값인지, 작은 값인지에 따라 분류해 상황에 따라 다른 값을 출력해야 하므로 if 조건문을 사용하셔야 합니다.
아래 코드를 참고해 주세요.

if my_pokemon_hp[x] >= 100:
    print(f"가라, {x}")
else:
    print("다시 돌아와")