inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

(기출) 2025년 1회 (1/3)

2025년 1회 (1/3) 29분 51초

해결된 질문

58

준상

작성한 질문수 7

0

29분 51초의 화면 기준으로 아래 코드를 보면 node가 None인지를 먼저 판단하는것 같습니다. 즉, 위 코드에 if가 2개 존재하는데, 그 중 오른쪽 if 조건을 먼저 판단하는 것 같습니다. 제가 제대로 알아들은게 맞을까요??

 

그런데
result = "왼쪽 성공!" if True else "가운데" if (1 / 0 == 1) else "오른쪽"

print(result)

이 코드를 실행시켜보면, 왼쪽 성공이 출력됩니다. 그럼 왼쪽의 if를 먼저 판단한다는거같은데...

 

제가 어디서 잘못 생각하고 있을까요??

python java c 정보처리기사 정보처리산업기사

답변 2

1

주말코딩

안녕하세요. Python의 삼항연산자는 왼쪽 if부터 평가합니다.

영상 안에 있는 슬라이드는 개념적으로는 맞는데 정확한 코드는 아닙니다.

A if 조건1 else B if 조건2 else C

 

영상 내의 코드 설명

return node.value if level % 2 else 0 + sum(...) if node else 0

 

이걸 괄호로 변경해서 바꾸자면

return (node.value if level % 2 else (0 + sum(...) if node else 0))

평가 순서:

  1. level % 2 를 먼저 봄 (왼쪽 if)

  2. True면node.value 리턴 (오른쪽 if는 아예 보지 않음 )

  3. False면 → 그제야 오른쪽 if node else 0 을 평가

즉, "node가 None인지 먼저 판단한다"는 것은 오해입니다.
level % 2가 False일 때만 if node가 실행됩니다.

 

삼항연산자를 보면 왼쪽 먼저 보시고 오른쪽으로 흘러간다고 생각하시면 됩니다.

 


 

질문 주신 것을 보면,

result = "왼쪽 성공!" if True else "가운데" if (1 / 0 == 1) else "오른쪽"

이 코드의 순서는 이렇습니다.

  • 왼쪽 if True → 바로 True

  • "왼쪽 성공!" 리턴

  • 1 / 0실행조차 안 됨 → ZeroDivisionError 없이 정상 출력

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 준상님.

Python의 삼항 연산자인 조건부 표현식은 왼쪽부터 오른쪽 순서로 평가됩니다. 즉, 전체 조건을 평가하기 전에 왼쪽의 if 조건을 먼저 검사합니다. 삼항 연산자 구문 참일 때 값 if 조건 else 거짓일 때 값조건을 평가하여 참이면 참일 때 값을, 거짓이면 거짓일 때 값을 반환합니다.

주신 코드:

result = "왼쪽 성공!" if True else "가운데" if (1 / 0 == 1) else "오른쪽"

에서, True 라는 확실히 참인 조건이 먼저 나왔기 때문에, 이 삼항 연산식의 첫 번째 조건이 참으로 평가됩니다. 그래서 뒤의 값들은 확인하지 않고 “왼쪽 성공!“이 출력됩니다. Python은 단락 평가(short-circuit evaluation)를 활용하여 첫 번째 조건이 참이면 나머지 조건을 확인하지 않기 때문입니다.

이 과정에서 1 / 0 == 1 조건은 평가되지 않았습니다. 왜냐하면 첫 번째 True가 이미 결과를 결정했기 때문입니다.

이와 유사한 부분을 다룬 답변 링크를 참고하시면 도움될 수 있습니다:
- 29:27 Python 삼항연산자 해설 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

26년2회 실기기출은 언제쯤...

0

24

2

이론 공부법 요약본 버전 업데이트 문의

0

21

2

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

55

2

조건 반복문 질문: for 문 ?

0

63

1

정처기 26-2회. 9번 질문드립니다!

0

80

1

이론 보면서 질문이 있습니다.

0

78

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

88

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

149

2

262 정처기 실기 C언어코딩

0

47

1

정보처리기사 262 실기 Hash(해시) 질문

0

80

2

static 변수 질문입니다.

0

62

2

파이썬 4강 질문입니다.

0

69

2

모의고사 1회 3번문제

0

90

3

41강 30:10

0

68

2

이론 공부법 질문 있습니다.

0

90

2

부모의 생성자 관련 질문

0

67

2

시험지 문제에 필기해도 되나요?

0

90

3

41강 11:23

0

60

2

4강파이썬 질문입니다

0

54

2

try-catch 핸들러명

0

66

2

36강 3:48

0

65

2

35강 18:27

0

66

2

자식 코드 내 super() 생략

0

60

2

출력질문

0

76

2