-
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 - 시간을 묻지 않아도 시간을 계산해야하기 때문에 코드 실행이 오래 걸림