1 분 소요

삼항 연산자

  • 참 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개일때만 사용하는 것 추천

댓글남기기