본문 바로가기
DATA | IT/패스트캠퍼스 BDA 13기

[패스트캠퍼스 데이터 분석 부트캠프] 4주차_파이썬 제어문과 반복문(If문, While문, For문)

by KKAMPU 2024. 4. 8.

깜푸의 패스트캠퍼스 데이터분석 부트캠프 4주차 학습일지

 

<if문>

: 조건의 참과 거짓을 판단해 그에 따라 동작을 수행하는 제어문

* if문의 기본 구조

if 조건문 :

실행문 1 :

실행문 2 :

...

elif 조건문 :

실행문 1 :

실행문 2 :

...

else :

실행문 1 :

실행문 2 :

...

→ 조건이 여러개라면 elif를 원하는 만큼 사용할 수 있다

→ elif가 아닌 if문을 여러개 사용한다면 실행 시간이 늘어날 수 있어 심플하게 elif사용

→ 조건문에 대한 실행문은 들여쓰기할것!!!

→ if문 안에 if문, for문, while문 중첩 가능

정수를 하나 입력받고 1~10 사이의 정수인지 판단하는 조건문

세개의 정수를 한번에 받고 가장 큰 수를 판단하여 출력하는 조건문


<for문>

: 가장 많이 쓰이는 반복문

: 리스트, 튜플, range(), 문자열과 같이 시퀀스 자료형의 첫번째 요소부터 마지막 요소까지 순서대로 변수를 받아 반복적으로 수행문을 실행하는 함수

* for문의 기본 구조

for 변수 in 시퀀스자료형 :

수행문1

수행문2

...

for문의 기본구조

→ for문 안에 if문, for문 중첩 가능

→ for문을 사용하여 빈 리스트에 리스트값들을 채울 수 있음


<while문>

: 특정 조건이 지속될 때까지 반복하여 수행하는 반복문

* while문 기본 구조

while 조건문 :

수행문 1

수행문 2

...

→ 이때 while의 조건문은 True로 안에 if문을 중첩하여 참인 값을 계속 출력하고 거짓인 값일때 break로 중단시킬 수 있고, 혹은 조건문에 바로 반복할 특정 조건을 작성할 수도 있다

→ while 조건문이 참이면 계속 반복 루프를 돌기때문에 무한 루프가 발생하지않도록 작성에 유의할것!!

 

짜장면 10그릇을 먹으면 무료쿠폰을 받는다는 것을 표현한 while문

→ 이때 조건문에 사용하는 변수를 while문 이전에서 0으로 미리 설정해주고

반복문 안에서 1씩 증가하도록 하여 변수가 10이 되기전까지 1씩 증가하며 반복문을 출력하도록 설정

변수 += 1 조건을 써주지 않으면 반복 루프가 생성되지않고 변수값이 0에서 고정된다

(for 반복문과 차이점***)


<조건문, 반복문에서 활용할 수 있는 실행 코드>

* continue

: 해당 조건에서 실행문을 실행하지않고 다음 루프로 넘어가도록 한다

홀수만 출력하는 if문

→ 다음과 같이 짝수에 해당하는 변수 i 값은 출력하지 않고

홀수에 해당하는 i 값만 받는 조건을 설정할 수 있다

* pass

: 해당 조건에서 실행할 코드가 없는 것과 같은 의미

: 파이썬에서는 코드를 비워둘 수 없기 때문에 pass를 활용하여 나중에 코드를 채워넣을 수 있다

: pass가 사용된 실행문은 실행되지 않고 다음 루프로 넘어가게된다

→ if문에서 변수가 짝수가 될 때 실행문을 pass 한다고 설정했으므로, for문으로 인해 변수가 반복 루프를 돌때 짝수가 되면 실행문을 pass, 즉 실행문이 없는 것으로 간주되기 때문에 변수 i는 1부터 10까지 모두 출력된다.

따라서 pass 조건문이 없는

for i in range(1,11) :

print(i)

의 결과값과 동일한 결과가 출력된다

* break

: 해당 조건의 조건문 자체를 중단시킨다

→ 변수 i 가 range(1, 11)까지로 설정되었으므로 1부터 10까지 1씩 증가하며 반복문을 돌게 되는데,

안에 중첩된 if문에서 i가 짝수가 되면 조건문을 중단하도록 작성된 것을 확인할 수 있다.

따라서 i = 1 인 경우에는 if문에 해당하지 않으므로 출력되고 다음 루프로 넘어가서 i = 2 가 되었을때는 if문에 의해 조건문이 중단되므로 더이상 for문이 반복되지않아 결과는 1만 출력되고 중단된다

<copy함수>

: a라는 변수를 생성하고, b = a 로 논리연산자를 이용하여 변수를 설정하면 둘의 저장 아이디 공간이 일치하여 a 혹은 b를 변경하면 둘 다 값이 반영된다

: 따라서 copy() 함수를 사용하여 다른 객체로 만들어줄 수 있다

 


<list comprehension>

: 리스타 안에 for문을 포함하여 한 줄로 편하게 코드를 작성할 수 있게 하는 문법

* 기본 구조

리스트 이름 = [표현식 for 항목 in 시퀀스 if 조건문]

 

중첩문과 list comprehesion으로 축소한 문장


<사용자 서식 지정>

: 지정서식자를 작성한 뒤, %변형할 데이터 작성하여 사용

* 정수(demical) : %d 로 서식 지정

* 실수(float) : %f 로 서식 지정

→ %.(숫자)f : 소숫점 자리수를 나타내고싶은만큼 콤마와 숫자를 적어서 소수점 지정

* 문자열(string) : %s 로 서식 지정

→ %(숫자)s : 문자열의 총 길이를 숫자로 나타낼 수 있다

만약, 숫자가 정렬하고자하는 문자열의 길이보다 긴 경우,

숫자가 양수이면 오른쪽 정렬 / 음수이면 왼쪽 정렬

→ .just( ) 함수로도 비슷한 결과를 출력할 수 있다

*포매팅 방법 3가지

<enumerate(리스트)>

: 순서가 있는 자료형의 인덱스 번호와 인덱스 값을 반환