python-8: 삼항연산
삼항 연산자
-
참 if 조건식 else 거짓
-
값1 if 조건식 else 값2
• 조건식이 참일때 조건식통째가 값1임, 거짓이면 값2 • 10 if 10>1 else 1 은 true이므로 결과는 10이 나옴
(문장1 if 조건식 else 문장2)
대소비교
- 두 정수 입력받기
n1Msg = "첫번째 정수 : "
n2Msg = "두번째 정수 : "
num1 = int(input(n1Msg))
num2 = int(input(n2Msg))
result = num1 if num1 > num2 else "X\n두 수가 같습니다" if num1 == num2 else num2
print("더 큰 값 : {}".format(result))
- num1이 num2보다 크면 num1이 큰 값
- num1이 num2보다 작으면 num2가 큰 값
- num2가 더 크거나, num1과 num2가 같으면 False쪽으로 이동한다.
- else쪽(Flase쪽)에서 한 번 더 두 수가 같은 지 물어본다.
- 만약 두 수가 같다면 “두 수는 같습니다”, 두 수가 같지 않다면,
- num2가 더 큰 값이다.
퀴즈게임
qMsg = "다음 중 프로그래밍 언어가 아닌 것은?"
choiceMsg = "1.JAVA\n2.파이썬\n3.C언어\n4.망둥어\n"
choice = int(input(qMsg + "\n" + choiceMsg))
answer = 4
result = "정답!" if choice == answer else "오답..."
print(result)
연산과 연결
print(10 + 9)
print('10' + '9')
print('10' + str(9))
- 음수를 입력했을때에 대비해서 삼항연산자를 계속 추가해줘야함
result = (("정답!" if choice == answer else
"오답.." if choice >= 1 and choice <= 4 else
"잘못 입력하셨습니다."))
• 문장이 길어지면 (())를 씌우고 엔터를 하면 컴퓨터는 이어진것으로 해석함
qMsg = (("당신의 혈액형은?\n"
+ "1.A형\n2.B형\n3.O형\n4.AB형"))
choice = int(input(qMsg + "\n"))
answer_a = "세심하고 거짓말을 잘 못한다."
answer_b = "거침없고 추진력이 좋다."
answer_o = "사교성이 좋다."
answer_ab = "착하다."
errMsg = "다시 입력해주세요."
result = ((answer_a if choice == 1 else
answer_b if choice == 2 else
answer_o if choice == 3 else
answer_ab if choice == 4 else errMsg
))
print(result)
• 순차적으로 조건을 확인하면서 진행됨 • 4까지도 검사해봤는데 false라면 errMsg를 보여줌 • 삼항연산자를 계속 추가하면 가독성이 떨어짐. • 삼항연산자는 조건식이 1개일때만 사용하는 것 추천
댓글남기기