2주차 강의 주제는 조건문과 반복문입니다.
[Chapter 04] 조건문과 반복문
1. 조건문
1) 조건문의 개념
조건문 : 조건에 따라 특정 동작을 하도록 하는 프로그래밍 명령
- 조건문을 구성하기 위해서는 조건을 나타내는 기준과 실행해야 할 명령이 필요하다.
- 조건문은 반드시 조건의 참(True)과 거짓(False)으로 구분되어야 한다.
- ex) ‘스마트폰 잠금 해제 패턴이 5회 틀리면’이 조건의 기준이고, ‘20초 동안 대기 상태’가 실행해야 할 명령이다.
2) if-else문
if-else문의 기본 문법
if <조건>: # if를 입력하고 조건 삽입 후 ':'입력
<수행 명령 1-1> # 들여쓰기 후 수행 명령 입력
<수행 명령 1-2> # 같은 조건에서 계속 수행할 명령일 경우 들여쓰기 유지
else: # 조건이 불일치할 경우 수행할 명령
<수행 명령 2-1> # 조건 물일치 시 수행할 명령 입력
<수행 명령 2-2> # 조건 불일치 시 수행할 명령일 경우 들여쓰기 유지
① if 뒤에는 참과 거짓을 판단할 수 있는 조건문이 와야 하고, 조건문이 끝나면 반드시 콜론(:)을 붙여야 한다.
② 들여쓰기 indentation를 사용하여 해당 조건이 참일 경우 수행할 명령을 작성한다. 명령이라는 것을 거창하게 생각하지 말고. 단순히 a = 30처럼 앞에서 배운 여러 파이썬 코드를 작성한다고 생각하면 된다. 들여쓰기는 [Space] 키나 [Tab] 키 등을 사용하여 코드를 일정 간격 안쪽으로 넣는 것이다. 들여쓰기는 파이썬이 기존 다른 언어들과 가장 큰 차이를 보이는 문법으로, 다른 언어들에 비해 코드에 대한 시각적 이해에 도움이 된다.
③ if의 조건이 거짓일 경우 else문이 수행된다. else문은 생략해도 상관없다. 만약 조건에 해당하지 않는 경우 처리해야 할 명령이 있다면 else문을 넣으면 된다.
print("Tell me your age?")
myage = int(input()) # 나이를 입력받아 myage 변수에 할당
if myage<30: # myage가 30 미만일 떄
print("Welcome to the Club.")
else: # myage가 30 이상일 때
print("Oh! No. You are not accepted."))
위 코드에서 먼저 나이를 입력하라는 메세지가 나타나면 사용자가 나이를 입력
>>> (True) 만약 나이가 30세 미만이면 "Welcome to the Club."출력
>>> (False)만약 나이가 30세 이상이면 "Oh! No. You are not accepted."출력
3) 조건의 판단
3.1 비교 연산자
※ 파이썬에서는 같음을 의미하는 == 연산자를 사용하고, 할당의 의미를 표현할 때는 = 연산자를 사용한다.
==연산자와 is연산자 구분
>>> a = 100
>>> b = 100
>>> a is b
True
>>> a == b
True
>>> a = 300
>>> b = 300
>>> a == b
True
>>> a is b
False
파이썬은 처음 인터프리터를 시작할 때 -5~256까지는 변하지 않는 메모리(정적 메모리static memory) 주소에 값을 할당한다. 그리고 해당 값을 다른 사용할 때 그 메모리 주소를 반환한다. 그래서 a와 b, 둘 다 100일 때는 is와 ==모두 같다고 나오지만, 둘 다 300일 경우에는 값만 같고 메모리 주소는 다르다고 나온다. is not도 마찬가지로 사용된다.
3.2 True와 False의 치환
컴퓨터는 기본적으로 이진수만 처리할 수 있으므로 True는 1로 False는 0으로 처리한다.
print((3>5)>10)
print((2<11)<10)
>>> 3>5는 False가 되어 0으로 치환된다. 그래서 이것을 다시 치환하면 (0)>10이 되고, 값은 거짓이므로 False가 반환된다.
??? 2<11는 True가 되어 1로 치환된다 그래서 이것을 다시 치환하면 (1)<10이 되고, 값은 참이므로 True가 반환된다.
3.3 논리 연산자
논리 연산자는 and/or/not이 있으며, 논리 연산자를 통해 조건문을 좀 더 확장할 수 있다.
a = 20
b = 24
print(a==20 and b==24)
print(a>23 or b>23)
print(not(a>10))
>>> a==20 and b==24의 ****경우, a==8은 참이고 b==20은 참이므로True and True로 치환되고, 둘 다 참이므로 True가 출력된다.
>>> a>23 or b>23의 경우, a>23은 거짓이고 b>23은 참이므로 False or True로 치환되고, 둘 중 하나가 참이므로 True가 출력된다.
>>> **not(a>10)**의 경우, not True로 치환되고, True는 not에 의해 False가 출력된다.
4) if-elif-else문
중첩 if-else 조건문
조건문 내에 또 다른 조건문을 사용한 조건문
age = int(input("Enter your age:"))
if age >= 20:
if age >= 65:
print('노인입니다.')
else:
print('성인입니다.')
else:
print('미성년자입니다.')
>>> 사용자 입력으로 22를 받아 if age >= 20: 만 만족하므로 ‘성인입니다.’가 출력되었다.
if-elif-else 조건문(다중 if문)
중첩 if문 중간의 if~else문을 elif문으로 줄여서 사용할 수 있다. 세 개 이상의 조건을 연결해서 사용한다
age = int(input("Enter your age:"))
if age >= 65:
print('노인입니다.')
elif age >= 20:
print('성인입니다.')
else:
print('미성년자입니다.')
>>> 사용자 입력으로 elif age >= 20: 을 만족하여 ‘성인입니다.’가 출력되었다.
📚 내용이 많은 관계로 줄입니다. 나머지 내용은 첨부한 강의안 pdf 파일로 확인해주시길 바랍니다.
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[4차시/노주원] 파이썬 스터디-'자료구조'와 '모듈과 패키지' (0) | 2024.05.13 |
---|---|
[3차시/김규의] 파이썬 스터디-함수와 문자 (0) | 2024.04.02 |
[1차시/공다원] 파이썬 스터디 - 파이썬 개요, 입출력과 리스트 (0) | 2024.03.09 |
[3팀/김경은] 10주차 파이썬 스터디 - 예외처리 (0) | 2023.06.02 |
[1팀/허서원] 10차시 파이썬 스터디 - 예외처리 (0) | 2023.06.01 |