ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 25 - 조건문
    study with Q - 파이썬 2024. 3. 20. 23:55

    # 함수

    int() : 정수로 변환

    float() : 부동소수점으로 변환

    str() : 문자열로 변환

    bool() : 불자료형으로 변환 

    #Boolean (불 자료형)

    : True(참)과 False(거짓) 값만 가질 수 있다. 

    : '어떤 명제'의 결과가 될 때 의미를 갖는다

     

    ‣ False(거짓)로 변환되는 값: None, 0, 0.0, 빈 컨테이너(현재 수준에서는 빈 문자열)

    bool(0) 
    >>> False
    bool(0.0)
    >>> False
    bool("")
    >>> False
    bool(100)
    >>> True
    bool(0.2)
    >>> True
    bool("False")
    >>> True

     

    #손코딩

    사용자가 빈 문자열을 넣었을 때, "프로그램을 재실행하시오." 메시지 띄우기

     

    코드1

    더보기
    ri = input("값을 입력하시오: ")
    ri = ri.strip() 
    #또는 ri = input("값을 입력하시오: ").strip() 
    
    if ri == "":
      print("프로그램을 재실행하시오.")
    else:
      print("입력한 내용은", ri)

     

    ‣ 입력한 내용을 출력하는 print("입력한 내용은", ri)가 프로그램의 주요 기능이고, print("프로그램을 재실행하시오.")는 프로그램의 보완적 기능이므로 주객이 전도된 느낌.

    코드 2

    더보기
    ri = input("값을 입력하시오: ").strip() 
    
    if ri != "":
      print("입력한 내용은", ri)
    
    else:
      print("프로그램을 재실행하시오.")

     

    ri = input("값을 입력하시오: ").strip() 
    
    if not(ri == ""):
      print("입력한 내용은", ri)
    
    else:
      print("프로그램을 재실행하시오.")

     

    조건을 수정해서 if 구분에 주요기능을 넣을 수 있음

    코드 3 

    더보기
    ri = input("값을 입력하시오: ").strip() 
    
    if ri == "":
      print("프로그램을 재실행하시오.")
      exit()
    
    print("입력한 내용은", ri)

     

    예전에 많이 쓰던 방식, 공백을 입력하면 프로그램을 종료 때려버림 (눈도장 찍어두기)

    #계속 말하지만 프로그램 만들 때는 팀의 방식, 시대의 흐름 등을 따라서 다양하게 작성된다.

     

    코드 4

    더보기
    ri = input("값을 입력하시오: ").strip() 
    
    if ri:
      print("입력한 내용은", ri)
    
    else: 
      print("프로그램을 재실행하시오.")

     

    냅다 if에 함수를 때려넣는 방법

    생각의 과정을 한 번 더 거쳐야 해서 찬반이 있지만, 어쨌든 다양한 방식의 코드를 짜는 방법을 눈에 익혀두는 것이 좋다.

     

    #pass 키워드

    : 코드를 작성하다보면 중간에 코드를 비워두고 나중에 넣으려고 하는 경우

    : 파이썬은 조건문 뒤에 Suite() 복합 구문이 와야하는데, 누락할 경우 Indentation Error가 발생함.  

    나중에 넣어두는 키워드로 pass를 넣을 수 있음

    num = input("정수를 입력하시오: ")
    num = int(num)
    
    if num >0 :
      #나중에
      pass
    else : 
      #나중에
      pass

     

    #raise NotImplementedError

    : 나중에 넣으려다가 잊어버릴 수 있으므로 미구현 상태일 경우 강제로 에러를 발생 시킬 수 있음

    num = input("정수를 입력하시오: ")
    num = int(num)
    
    if num >0 :
      raise NotImplementedError
    else : 
      #나중에
      raise NotImplementedError
      
    >>> NotImplementedError

     

    #도전문제 1번

     ‣ 나의 코드

    더보기
    ip = input("입력문: ")
    
    from pytz import timezone
    from datetime import datetime
    xz = datetime.now(timezone('Asia/Seoul'))
    xz = xz.hour
    
    if ip == "안녕":
      print("안녕하세요.")
    
    elif ip == "안녕하세요.":
      print("안녕하세요.")
    
    elif ip == "지금 몇시?":
      print("지금은 {}시입니다.".format(xz))
    
    elif ip == "지금 몇시에요?":
      print("지금은 {}시입니다.".format(xz))
    
    else:
      print(ip)

     

    • 시간을 묻지 않아도 시간을 계산해야하기 때문에 코드 실행이 오래 걸림
      • 시간을 물었을 때만 시간을 계산하는 것이 효율적
    • 정말 특정한 문구를 입력했을 때만 해당하는 답변이 나올 수 있음. 
      • 지금 몇시여? 와 같이 오탈자가 있으면 대답이 나오지 않음

       

     ‣ 쌤의 코드

    더보기
    i = input("입력: ")
    
    if ("hi" in i) or ("hello" in i):
      print("안녕하세요.")
    elif "time" in i:
      from pytz import timezone
      from datetime import datetime
      now = datetime.now(timezone('Asia/Seoul'))
      print(f"지금은 {now.hour}시 입니다.")
    
    else:
      print(i)

    #도전문제 2번

    나의 코드 

    더보기
    z = int(input("정수를 입력하시오: "))
    
    if z % 2 == 0:
      print(z, "은 2로 나누어 떨어지는 숫자입니다.")
    
    elif z % 2 != 0:
      print(z, "은 2로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 3 == 0:
      print(z, "은 3으로 나누어 떨어지는 숫자입니다.")
    
    elif z % 3 != 0:
      print(z, "은 3으로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 4 == 0:
      print(z, "은 4로 나누어 떨어지는 숫자입니다.")
    
    elif z % 4 != 0:
      print(z, "은 4로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 5 == 0:
      print(z, "은 5로 나누어 떨어지는 숫자입니다.")
    
    elif z % 5 != 0:
      print(z, "은 5로 나누어 떨어지는 숫자가 아닙니다.")

     

    • 왜 굳이 elif로 함?

     ‣ 쌤의 코드

    더보기
    z = int(input("정수를 입력하시오: "))
    
    if z % 2 == 0:
      print(z, "은 2로 나누어 떨어지는 숫자입니다.")
    
    else:
      print(z, "은 2로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 3 == 0:
      print(z, "은 3으로 나누어 떨어지는 숫자입니다.")
    
    else:
      print(z, "은 3으로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 4 == 0:
      print(z, "은 4로 나누어 떨어지는 숫자입니다.")
    
    else:
      print(z, "은 4로 나누어 떨어지는 숫자가 아닙니다.")
    
    if z % 5 == 0:
      print(z, "은 5로 나누어 떨어지는 숫자입니다.")
    
    else:
      print(z, "은 5로 나누어 떨어지는 숫자가 아닙니다.")

    'study with Q - 파이썬' 카테고리의 다른 글

    27 - 수열, 배열, 리스트  (0) 2024.03.22
    혼공파 개정판 25강 - 추가 학습  (0) 2024.03.20
    23, 24 - elif, else  (0) 2024.03.18
    22 - 확인문제  (0) 2024.03.18
    21 - if 조건문 연습  (0) 2024.03.04
Designed by Tistory.