스터디/파이썬 스터디 강의자료

[2차시/전서연] 파이썬 스터디 - 조건문과 반복

23 데이터사이언스학과 전서연 2024. 3. 18. 22:41

2차시_Chapter04 조건문과 반복문.pdf
0.63MB
2차시_과제.pdf
0.22MB

 

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의 치환

컴퓨터는 기본적으로 이진수만 처리할 수 있으므로 True1False0으로 처리한다.

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 파일로 확인해주시길 바랍니다.