2022. 12. 21. 16:21ㆍ데이터 엔지니어링 과정/python
목차
1. 조건에 따라 분기하는 if문
2. 지정된 범위만큼 반복하는 for 문
3. 조건에 따라 반복하는 while 문
4. 반복문을 제어하는 break와 continue
5. 조건문을 포함한 리스트 컴프리헨션
1. 조건에 따라 분기하는 if문 (분기점이 존재할 때 사용)
1. if 단일 조건에 따른 분기
x = 95
if x>=90:
print("Pass")
>>> Pass
👂🏻파이썬은 콜론(:)과 들여 쓰기로 코드의 구조를 결정한다.
스페이스 바 또는 탭(Tab)으로 조절
2. if ~ else 단일 조건 및 그 외 조건에 따른 분기
x = 75
if x >= 90:
print("Pass")
else:
print("Fail")
>>> Fail
3. if ~ elif ~ else 여러 조건에 따른 분기
- elif문을 보면 두 가지 방식으로 표현이 가능하다.
x = 85
if x >=90:
print("Very good")
elif (x >= 80) and (x < 90):
print("Good")
else:
print("Bad")
>>> Good
x = 85
if x >=90:
print("Very good")
elif 80 <= x < 90: #허용됨
print("Good")
else:
print("Bad")
>>> Good
4. 중첩 조건에 따른 분기
x = 100
if x >=90:
if x==100:
print("Perfect")
else:
print("Very good")
elif (x >= 80) and (x < 90):
print("Good")
else:
print("Bad")
>>> Perfect
📍만약 x=200이라면 출력값은?
➡ Very good
👂🏻나중에 구현하고 싶은 코드라면 PASS 활용
x = 75
if x >= 80:
pass
else:
print("Bad")
>>> Bad
2. 지정된 범위만큼 반복하는 for 문 (범위를 정하고 실행하고 싶을 때 사용)
1. 반복문의 필요성
a = 0 #변수 a를 0으로 초기화
print(a) #변수 a 출력
a = a + 1 #변수 a에 1을 더한 후, 다시 a에 대입
print(a) #변수 a 출력
a = a + 1 #같은 코드 반복
print(a)
a = a + 1 #같은 코드 반복
print(a)
a = a + 1 #같은 코드 반복
print(a)
a = a + 1 #같은 코드 반복
print(a)
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
이건 에바잖아.. 그래서 for문을 사용할겁니다.
2. for문의 구조
3. 반복 범위 지정
- 리스트 이용
for a in [0, 1, 2, 3, 4, 5]:
print(a)
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
myFriends = ['James', 'Robert', 'Lisa', 'Mary'] #리스트를 변수에 할당
for myFriend in myFriends:
print(myFriend)
>>> James
>>> Robert
>>> Lisa
>>> Mary
- range() 함수 이용
- range(start, stop, step)
- 리스트 형태로 출력해야 한다.
- 반복문에 활용한다면 start부터 stop-1까지 step 씩 증가하는 값들을 가진 리스트를 만든다.
이때, for문에서는 리스트를 설정하지 않아도 된다. - 생략도 가능하다.
- stop은 생략 불가능
- 양수가 아니더라도 가능하다.
print(list(range(0, 20, 5))) #LIne 1
print(list(range(-10, 0, 2))) #Line 2
print(list(range(3, -10, -3))) #Line 3
print(list(range(0, -5, 1))) #Line 4
>>> [0, 5, 10, 15]
>>> [-10, -8, -6, -4, -2]
>>> [3, 0, -3, -6, -9]
>>> []
4. 중첩 for 문
x_list = ['x1', 'x2']
y_list = ['y1', 'y2']
print(" x y")
for x in x_list:
for y in y_list:
print(x,y)
>>> x y
>>> x1 y1
>>> x1 y2
>>> x2 y1
>>> x2 y2
5. 여러 개의 리스트 다루기
#여러 개의 리스트 정의
names = ['James', 'Robert', 'Lisa', 'Mary']
score = [95, 96, 97, 94]
- len 활용
len 리스트의 길이를 알아낸다.
for k in range(len(names)):
print(names[k], scores[k])
>>> James 95
>>> Robert 96
>>> Lisa 97
>>> Mary 94
for k in range ((len(names))
➡ for k in range (4)
- zip 활용
zip 같은 순서의 데이터끼리 묶어준다.
for name, score in zip(names, scores):
print(name, score)
>>> James 95
>>> Robert 96
>>> Lisa 97
>>> Mary 94
3. 조건에 따라 반복하는 while 문 (특정 조건을 만족하지 않을 때까지 돌리고 싶을 때 사용)
1. while 문의 구조
i = 0
sum = 0
print("i sum")
while sum<20:
i = i + 1
sum = sum + i
print(i, sum)
>>> i sum
>>> 1 1
>>> 2 3
>>> 3 6
>>> 4 10
>>> 5 15
>>> 6 21
2. 무한 반복 while 문
while True:
print('while Test')
4. 반복문을 제어하는 break와 continue
1. break 반복문을 빠져나온다.
k=0
while True:
k = k + 1 # k는 1씩 증가
if (k > 3): # k가 3보다 크면
break # break로 while 문을 빠져나옴
print(k) # k 출력
>>> 1
>>> 2
>>> 3
for k in range(10):
if (k>2): #k가 2보다 크면
break #break로 for문을 빠져나옴
print(k) #k 출력
>>> 0
>>> 1
>>> 2
2. continue 다음 반복을 실행한다.
for k in range(5):
if (k == 2):
continue
print(k)
>>> 0
>>> 1
>>> 3
>>> 4
k=0
while True:
k = k + 1
if (k == 2):
print("continue next")
continue
if (k > 4):
break
print(k)
>>> 1
>>> continue next
>>> 3
>>> 4
5. 조건문을 포함한 리스트 컴프리헨션
1. 컴프리헨션 (comprehension)의 기본 구조
- 리스트 컴프리헨션
- [<반복실행문> for <반복변수> in <반복변수>]
쉽게 이해하자면, 기존에는
numbers = [1, 2, 3, 4, 5]
square = []
for i in numbers:
square.append(i**2)
print(square)
>>> [1, 4, 9, 16, 25]
이렇게 구하던 것을
numbers = [1, 2, 3, 4, 5]
square = [i**2 for i in numbers]
print(square)
>>> [1, 4, 9, 16, 25]
이렇게 구할 수 있다.
👨🏻💻강사님 曰: 쉽게 구할 수 있어서 좋지만, 추천하지는 않아요! 이 방식에 익숙해진다면, 다른 언어를 배울 때 어려움을 겪을 수도 있습니다.
2. 조건문을 포함한 리스트 컴프리헨션
- [<반복실행문> for <반복변수> in <반복범위> if <조건문>]
기존에는
numbers = [1, 2, 3, 4, 5]
square = []
for i in numbers:
if i >= 3:
square.append(i**2)
print(square)
>>> [9, 16, 25]
이랬던 코드를
numbers = [1, 2, 3, 4, 5]
square = [i**2 for i in numbers if i >=3]
print(square)
>>> [9, 16, 25]
이렇게 간단하게 구할 수 있다.
🍯코딩문제 풀기 좋은 사이트 추천
'데이터 엔지니어링 과정 > python' 카테고리의 다른 글
[6일차] 객체와 클래스 (0) | 2022.12.27 |
---|---|
[5일차] 함수 (0) | 2022.12.26 |
[4일차] 입력과 출력 (2) | 2022.12.22 |
[2일차] 변수와 자료형 (0) | 2022.12.20 |
[1일차] 파이썬 계산 (0) | 2022.12.19 |