인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
if문
- 기본 개념
# 기본 형식 # if 조건식: # code # if문의 기본구조은 위와 같으며 조건식이 True 값을 가질 때, # if문의 code가 실행된다.(조건식이 False이면 code 실행X) # 파이썬에서는 if문의 code 앞에 들여쓰기(indent)를 하지 않으면, # 에러가 발생한다. print(type(True)) # 결과 : <class 'bool'> # 0이 아닌 수, 문자열, 데이터가 들어있는 리스트, 데이터가 들어있는 튜플, # 데이터가 들어있는 딕셔너리가 if문의 조건식에 들어가면 True 값을 가진다. print(type(False)) # 결과 : <class 'bool'> # 숫자 0, 빈 문자열, 빈 리스트, 빈 튜플, 빈 딕셔너리가 if문의 조건식에 # 들어가면 False 값을 가진다. # if문의 예시 if True: print("Good") # print("Good")앞에 들여쓰기를 하지 않으면 에러발생 if False: print("bad") if "a": print("Good") # code 실행(문자열) if "": print("bad") # code 실행X(빈 문자열) # if-else문 if False: print("bad!") else: print("Good!") # if-else문의 기본구조는 위와 같으며 if문의 조건식이 True이면 # if문의 code가 실행되고, else문의 code는 실행되지 않는다. # 반면에 if문의 조건식이 False이면 if문의 code가 실행되지 않고, # else문의 code가 실행된다. # if-else문의 예시 city = "" if city: print("You are in:", city) else: print("plz enter your city") # 결과 : plz enter your city(else문의 code 실행) city2 = "Seoul" if city2: print("You are in:", city2) else: print("plz enter your city") # 결과 : You are in: Seoul(if문의 code 실행)
- 응용 개념
# 관계 연산자 # >, >=, <, <=, ==, != x = 15 y = 10 print(x == y) # 결과 : False print(x != y) # 결과 : True print(x > y) # 결과 : True print(x >= y) # 결과 : True print(x < y) # 결과 : False print(x <= y) # 결과 : False # 논리 연산자(중요) # and, or, not a = 75 b = 40 c = 10 print('and:', a > b and b > c) # 결과 : and: True # and 연산자는 모든 조건을 만족해야만 True 값이 나오고, 그 외에는 False 값이 된다. # 즉, 조건 a > b와 b > c를 모두 만족해야만 True 값을 출력한다. print('or:', a > b or b < c) # 결과 : or: True # or 연산자는 조건 중 적어도 1개만 만족하면 True 값이 나오고, # 모든 조건이 만족하지 않는 경우에만 False 값이 된다. # 즉, 조건 a > b와 b > c 중에서 적어도 1개만 만족하면 True 값이 나온다. print('not:', not a > b) # 결과 : not: False # not은 조건의 결과 값과 반대되는 값을 출력한다. # 즉, 조건 a > b는 True이지만, 조건 앞에 not이 있기 때문에 # 결과 값은 False가 된다. print(not True) # 결과 : False print(not False) # 결과 : True # 산술, 관계, 논리 연산자 간의 우선순위 # 산술연산자(+,-,*,/ 등) # 관계연산자(>,=,< 등) # 논리연산자(and, or, not) # 연산자 간의 우선순위는 산술 > 관계 > 논리 순이다. # 즉, 산술연산자가 가장 우위에 있고 그 다음으로 관계, 논리 순서대로 # 연산을 하여 결과 값이 도출된다. print('e1 : ', 3 + 12 > 7 + 3) # 결과 : e1 : True # 3 + 12와 7 + 3을 먼저 연산한 후에 두 수의 관계를 연산하여 결과 값을 도출한다. print('e2 : ', 5 + 10 * 3 > 7 + 3 * 20) # 결과 : e2 : False # 위와 동일한 원리 print('e3 : ', 5 + 10 > 3 and 7 + 3 == 10) # 결과 : e3 : True # 위와 동일한 원리 print('e4 : ', 5 + 10 > 0 and not 7 + 3 == 10) # 결과 : e4 : False # 조건 5 + 10 > 0와 조건 not 7 + 3 == 10이 먼저 연산된 후에, # 두 결과 값을 토대로 and의 논리연산을 통해 결과 값을 도출한다. # 즉, 5 + 10 > 0는 True이고, not 7 + 3 == 10는 False이므로 # and의 논리연산 결과는 False가 된다. # if문의 활용 예시(if, if-else, elif, 다중·중첩 조건문) score1 = 70 score2 = 'A' if score1 >= 90 and score2 == 'A': print('Pass') else: print('Fail') # 결과 : Fail id1 = 'vip' id2 = 'admin' grade = 'platinum' if id1 == 'vip' or id2 == 'admin': print('관리자 입장') if id2 == 'admin' and grade == 'platinum': print('최상위 관리자') # 결과 : 관리자 입장, 최상위 관리자 num = 90 if num >= 90: print('Grade : A') elif num >= 80: print('Grade : B') elif num >= 70: print('Grade : C') else: print('과락') # 결과 : Grade : A # 다중 조건문 grade = 'A' total = 95 if grade == 'A': if total >= 90: print('장학금 100%') elif total >= 80: print('장학금 80%') else: print('장학금 50%') else: print('장학금 없음') # 결과 : 장학금 100% # 중첩 조건문(단, if문을 지나치게 많이 중첩시키면 코드의 효율성은 하락)
- 참고
# in, not in 연산자 # in과 not in 연산자는 리스트, 집합, 딕셔너리, 튜플 등과 같은 # 데이터 컨테이너 안에 특정 데이터가 존재하는지 여부를 알려준다. q = [10, 20, 30] # 리스트 w = {70, 80 ,90, 100} # 집합 e = {"name": "Lee", "city": "Seoul", "grade": "A"} # 딕셔너리 r = (10, 12, 14) # 튜플 print(15 in q) # 결과 : False print(90 in w) # 결과 : True print(12 not in r) # 결과 : False print("name" in e) # 결과 : True # in 연산자 앞에 벨류가 아닌 키를 써야한다. print("Seoul" in e.values()) # 결과 : True # 만약, in 연산자 앞에 벨류를 쓰고 싶다면 values( ) 함수를 사용해야 한다.
'Python' 카테고리의 다른 글
Python - while문 (0) | 2021.10.14 |
---|---|
Python - for문 (0) | 2021.10.14 |
Python - 기초 자료형(집합) (0) | 2021.10.13 |
Python - 기초 자료형(딕셔너리) (0) | 2021.10.13 |
Python - 기초 자료형(튜플) (0) | 2021.10.13 |
댓글