파이썬 스터디 3일차 : 03장 프로그램의 구조를 쌓는다! 제어문

2024. 1. 1. 23:51학습/팀스터디

 

도전한 점

 

03 프로그램의 구조를 쌓는다! 제어문

[목차]

03-1 조건문(if 문)

03-2 반복문(while 문)

03-3 반복문(for 문)

 

03-1 if 문

조건에 따라서 (돈이 있냐, 없냐) 행동을 달리해야 할 때 (택시 타기, 걷기) 쓰인다.

쉽죵? 굉장히 흔하게 쓰이는 개념이니까 반!드!시! 알아둔다.

 

기본 구조의 예시(if)

money = True

if money:

    print("택시 타기") -> 참일 때 실행할 것 -> 들여쓰기로 덩어리를 구분한다.

else:

    print("걸어 가기") -> 거짓일 때 실행할 것  -> 들여쓰기로 덩어리를 구분한다.

결과 money가 True로 주어졌으니까 "택시 타기"가 출력된다.

 

*들여쓰기(인덴트)는 매우 중요하다.

 

*조건문 다음에 콜론(:)을 까먹지 말자.

 

if 조건문에서 '조건문'이란?

참과 거짓을 판단하는 문장을 말한다.

해석 : 조건이 True가 되면 안쪽 구문을 실행하시오.

 

비교 연산자에서 중요한 부분

a. x == y -> x와 y가 같다.

b. x != y -> x와 y가 같지 않다.

c. 등호는 뒤에 온다. >=, <=

 

and, or, not 연산자

a. x or y : x와 y 둘 중 하나만 참이어도 참이다.

b. and : 모두 참이어야 한다.

c. not x : 거짓이면 참이다. -> 무조건 x의 반대개념

 

in, not in 연산

다른 언어에서 쉽게 볼 수 없는 재미있는 조건문이다.

a. x in 리스트, x not in 리스트 -> not은 그냥 반

b. x in 튜플, x not in 튜플

c. x in 문자열, x not in 문자 -> 문자열도 여러가지 char가 붙어있는 거니까.

해석 : 리스트/튜플/문자열 중에 x가 포함되어 있니? -> Ture/False

 

기본 구조의 예시(in)

print(1 in [1, 2, 3]) -> 결과 Ture -> 1이 [1, 2, 3] 안에 포함되어 있니?

not in은 처음에 헷갈릴 수 있으니 두고두고 복습하자.

공백도 반영된다.

 

조건문에서 아무 일도 일어나지 않게 출력하고 싶다면?

print(어쩌고) 대신 pass 라는 '예약어'를 사용한다.

 

다양한 조건을 판단하는 elif : else + if 의 기능을 함.

if > elif > else 순서로 무한정 조건을 늘릴 수 있다.

 

if문을 한줄로 줄여쓰기(1)

 a. if 'money' in pocket : pass

else: print("카드를 꺼내라")

하지만 보통 한줄로 쓰면 구분이 어려워서 두줄로 쓰는게 일반적이다.

 

if문을 한줄로 줄여쓰기(2)

b. 조건부 표현식 : 참일때실행할것 + 조건 + 거짓일때실행할것

 

*여기서 다시 다루는데 자료형의 참과 거짓

불 자료형이 아닌데도 각자의 속성이 있어서 참과 거짓이 판별된다.

참고로 -1도 True로 본다.

 

 

03-2 while 문

반복적인 작업을 한 번에 수행해야 할 경우에 사용한다.

조건을 놓고 만족할 때까지 계속 반복하는 구조이다. 조건이 F가 되면 빠져나감.

 

*Run > Start 디버깅 모드로 한 줄씩 시행 참고하기

 

꿀팁

treeHit = treeHit +1 -> 하나씩 추가하는 걸 많이 쓰다보니까 줄이고 싶어

treeHit += 1 -> 줄일 수 있다. -= 1도 가능하다.

 

뒤에서 배울 내용

number = int(input()) -> 유저의 input값을 기다리는 중

 

while 문 강제로 빠져나가기 : break

조건이 True인 동안 계속 반복문 안의 내용을 반복적으로 수행한다. 멈추고 싶을 때.

break 마지막에 쓰면 된다. -> 반복구문을 깨고 나와서 다음 아래 구문이 실행된다.

 

while 문의 맨 처음으로 돌아가기 : continue

예시) 짝수만 출력하는 반복문

 

continue, break 공통점

자신과 가장 가까운 반복문으로 돌아가거나, 가까운 반복문을 break 한다.

 

무한 루프야 멈춰라!

Ctrl + C

 

 

03-3 for 문

파이썬의 직관적인 특징을 가장 잘 보여주는 것이 바로 for 문이다.

while 문과 비슷한 반복문인 for 문은 문장구조가 한 눈에 들어온다는 장점이 있다.

파악하기가 편리하다. for 문을 잘 사용하면 프로그래밍이 즐거워질 것이다.

 

리스트(또는 기타) = [1, 2, 3, 4, 등등등등]

for 변수 in 리스트(또는 튜플, 문자열과 같이 값이 여러개인 것):

    수행을 반복할 문장_1

    수행을 반복할 문장_2

-> 리스트에서 하나씩 빼다가 변수에 넣는 행위를 for(반복)한다.

 

튜플 (a, b) = (1, 2) 있으면 각각 할당되는거 복습하기.

변수를 이렇게 a로만 주면 튜플 (1, 2)이 통으로 출력됨.

 

하나씩 뽑을 때는 for 문을

무한 반복할 때는 while을 쓴다.

 

for문의 countinue문, break

리스트 for문은 (범위 내의 값을) 하나씩 뽑아 쓰면서 다 소진하면 for 문을 빠져나가서 종료된다.

 

for 문과 자주 사용되는 range 함수

a = range(1, 10) -> 1부터 10미만까지 리스트 축약. 길게 쓰기 귀찮으니까.

 

구구단 예시

이중 for문을 설명한다, 반복문 안에 반복문이 된다. 어려우면 디버깅 모드 참고.

end=" " -> 한줄씩 안내려가고 띄워쓰기로 대체하겠다는 의미이다.

print(' ') -> print는 기본적으로 한줄을 띄워주는 역할. 다음 줄로 넘어간다.

 

표보다 디버깅을 찍어보면 이해가 편하다.

 

꿀팁

a. print가 기본적으로 엔터키(\n, 줄바꿈)를 포함하고 있다.

그래서 print(a) = print(a, end="\n") 이 같은 값이다.

따라서 \n 대신에 띄워쓰기를 추가하면 한줄로 출력된다.

b. 한줄 내리는 명령어 : print("")

 

패션코딩

a. 리스트 컴프리헨션 사용하기 (줄여쓰는 방법) -> 일단 보류

 

잊지말 점

  • 실제로 for 문 while 문 가리지 않고 왔다갔다 쓸 수 있으니 배워두고 원하는데 맞게 쓰기.