인프런 커뮤니티 질문&답변

chon9143님의 프로필 이미지
chon9143

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

for 구문(2-3)

for 구문에서 다음과 같은 오류가 나타나는 이유

작성

·

183

0

아래와 같은 오류가 나는 이유가 뭘까요?

학생 이름을 넣어서 특정 점수를 넘는 학생에게 합격 그렇지 못한 학생에게 불합격 글자가 뜨게 하고 싶습니다.

range가 초과하는 이유도 모르겠고

70점을 넘는 학생도 있는데 모든 학생이 불합격으로 뜨는 이유도 궁금합니다.

답변 1

2

혹시나 해서 어디가 문제인가 하고 type에 문제인지 score 변수 쪽이 잘 못되었는지 등을 print문을 추가하여 확인해봤습니다.

위 이미지를 보시면 왜 불합격으로만 나오는지 이해하실 거라 생각합니다!

----------------------------------------------------------------

그리고 학생 이름을 넣어서 특정 점수를 넘는 학생에게 합불판정을 하고 싶다고 하셨는데

아래 예시처럼 이해하면 되는 건가요? 

66 - LEE

43 - KIM

59 - BAE

99 - KO

69 - MOON

78 - JEON

92 - PARK

60 - YOON

만약 위 예시처럼이라고 하면 아래 코드로 수정하시면 원하는 값으로 출력됩니다 :)

for num, score in enumerate(marks):
    if score >= 70:
        print("{} 학생은 합격입니다. 축하합니다." .format(name[num]))
    else:
        print("{} 학생은 불합격입니다." .format(name[num]))

결과는 아래와 같습니다.

코드를 살짝 수정하면 아래 이미지처럼 이렇게까지 할 수 있습니다.

혹시 몰라서 위 이미지에 대한 코드를 첨부합니다!

marks = [66, 43, 59, 99, 69, 78, 92, 60]
name = ['LEE', 'KIM', 'BAE', 'KO', 'MOON', 'JEON', 'PARK', 'YOON']

for num, score in enumerate(marks):
    if score >= 70:
        print("{}번째 {} 학생은 {}점으로\n합격입니다. 축하합니다." .format((num+1), name[num], score), "\n")
    else:
        print("{}번째 {} 학생은 {}점으로\n불합격입니다." .format((num+1), name[num], score), "\n")

----------------------------------------------------------------

도움이 되었으면 우측하단 또는 좌측하단에 하트 한번만 눌러주세요 :)

또한, 해결이 안된 경우 답글 작성 부탁드립니다!

chon9143님의 프로필 이미지
chon9143

작성한 질문수

질문하기