안녕하세오. 서루태에오.

오늘도 힘내서 달려보자구요!
강제 반복제어
break와 continue
continue를 만나면 현재 진행중인 for문 반복을 멈추고
다음 반복으로 강제로 넘어가요
for x in range(10):
if x % 2 == 0: # 짝수이면 ~
continue #다음 반복으로 넘어가세요
print(x)
=> 1 3 5 7 9
break를 만나면 내가 속한 for,if 문을 종료시켜요
for x in range(1,10):
if x % 2 == 0: # 짝수이면 ~
break #for문을 끝낼게요
print(x)
=> 1
while에 대해서도 알아볼까요?
num = 1
while (num < 10): #조건을 걸어줘요 num이 10보다 작으면~ 계속 반복
print(num)
num += 1
print(num)
=> 1 2 3 4 5 6 7 8 9 10
while문의 조건을 만족하지 않을 때까지 반복해요
다시 말해 num이 11이 되면 반복하지 않고
바로 print(num)으로 넘어가요
[ ]와 for, if의 활용
리스트를 만드는 [ ] 안에서 for와 if를 활용할 수도 있어요
예를 들어볼까요~?
list = [x for x in [1,2,3,4,5]] #1~5까지의 리스트 선언
sum = 0
for i in list: # 조건을 list로 걸어주세요
sum += i
sum #1~5까지의 합
=> 15
이렇게 for 나 if의 조건을 list로 나타낼 수 있답니다
if, for, while의 활용은 매우매우 중요해요
제어문을 잘 다루는 연습은 꼭 해봐야 한다고 생각해요!
그래서 준비 했습니다
제어문 연습 예제
1. for문을 사용하여 리스트의 모든 요소를 출력하세요
fruits = ["apple", "banana", "cherry"]
i = 0
for i in fruits: # i라는 변수에 fruits의 인덱스를 순서대로 넣어줘요 ex) apple, banana, cherry
print(i, end=' ') # i를 출력합니다
=> apple banana cherry
2. while문을 사용해서 리스트의 모든 요소를 출력하세요
i = 0
while (i<3): # i가 3보다 작다면~ 실행 아니면~ break
print(fruits[i], end=' ') # fruits[0]~[2]를 출력하고
i += 1 # i를 하나 증가시켜요 그리고 다시 while문을 실행
=> apple banana cherry
3. for문을 사용하여 아래 조건에 부합하는 출력을 수행하세요
- 1부터 30사이의 3의 배수 출력
m2 = []
for i in range(1,31): # 1부터 30까지 i에 넣어서 반복
if i%3 == 0: # i가 3의 배수라면~
m2.append(i) # 리스트에 i라는 '값'을 추가
print(m2) #최종 출력
=> [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
4. 주어진 리스트에서 값이 30이상인 값은 '우수'란 텍스트 값으로 변경하시오
scores = [10,35,20,38,13,18,27,45]
이전의 문제보다는 조금 어려워요
논리를 단계적으로 쪼개볼게요!
1. 30이상인 값을 찾자.
2. 그 값의 인덱스를 찾자.
3. 인덱스의 값을 '우수'로 수정하자.
4. 바꾼 리스트를 출력하자.
for i in scores: # 리스트의 값을 i에 넣어서 반복
if i >=30: # i가 30보다 큰 값이라면~ 아래 실행
scores[scores.index(i)] = '우수'
# scores.index(i)는 30보다 큰값의 인덱스, 그 인덱스의 값을 '우수'로 수정
print(scores)
=> [10, '우수', 20, '우수', 13, 18, 27, '우수']
5. 구구단 출력
- 구구단 2단부터 9단까지 출력하기
#2단부터 9단까지 출력하기
for i in range(2,10): # i단을 출력
print(f'-----{i}단-----')
for j in range(1,10): # i단 안에서 1부터 10까지 곱하는 반복문
print(f'{i} * {j} = {i*j}')
-----2단-----
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
...
함수와 메서드
함수 Function
반복된 기능을 함수로 구현하여 반복된 코드를 줄일 수 있어요
반복된 코드를 쉽고 빠르게 쓸 수 있음 + 유지보수성이 뛰어나요
만약 2를 곱하는 함수를 만들었다고 할게요
이 함수를 3을 곱하는 함수로 손쉽게 바꿔줄 수 있겠죠?
def mult_2(a):
return 2*a
간단하게 2*a 를 3*a 로 바꿔주기만 하면 3을 곱하는 함수가 된답니다
def mult_3(a):
return(3*a)
함수의 기본 틀은 다음과 같아요
# 함수의 정의
def add(a, b): #매개변수 a,b를 쓸거에요
return a + b # 기능적인 부분
이때, 함수가 무조건 return값을 넘겨주는 건 아니에요
( print( )함수는 return이 없어요! )
함수의 매개변수와 전달
함수의 매개변수를 다양한 방법으로 정해줄 수 있어요
def sub(a, b):
return a - b
## 위치에 의한 매개변수 전달
sub(10, 7)
## 이름에 의한 매개변수 전달
sub(b=7, a=10)
## 입력값의 개수가 미정일 경우
def sum(*nums):
result = 0
for x in nums:
result += x
return result
sum(1, 2, 3)
## 키워드 매개변수
def print_kwargs(**kwargs): # 딕셔너리 형태로 매개변수를 받음
print(kwargs)
print_kwargs(name='홍길동', age=30)
매개변수 전달은 위치를 맞춰줘도 되고, 이름을 맞춰줘도 돼요
매개변수를 여러개 넣고싶다면 매개면수 앞에 *를 붙여주세요
딕셔너리 형태로 매개변수를 쓴다면 앞에 **를 붙여주면 돼요
추가 설명
특별한 매개변수 형식들을 더 알아볼게요!
def standard_arg(arg): # 기본적인 매개변수 양식
print(arg)
def pos_only_arg(arg, /): # /는 기능을 안하고 앞에있는 요소를 무조건 순서에 따라 적용해요
print(arg)
def kwd_only_arg(*, arg): # *는 기능을 안하고 뒤에있는 요소를 무조건 키워드로 전달 해야해요 ex) arg=~
print(arg)
def combined_example(pos_only, /, standard, *, kwd_only): # / 앞에는 순서 * 뒤에는 키워드만 가능
print(pos_only, standard, kwd_only) # standard 부분은 제한없이 순서든 키워드든 모두 가능!
우리가 공식 문서를 볼때, 함수 설명에서 매개변수가 엄청 많은 경우가 허다해요
그럴때 위에있는 매개변수 공식만 따라가면 쉽게 해석 할 수 있답니다!
예시를 하나 보여줄게요
위처럼 pandas.read_csv()함수의 매개변수에서 두번째 변수인 *가 보이시나요?
우리가 * 뒤에 있는 매개변수는 "키워드"로 전달한다고 배웠어요
예를 들어 decimal이라는 매개변수를 기본값 ' . ' 에서 ' , ' 바꾸고 싶어요
그러면 read_csv("./data.csv" , decimal=' , ')
이렇게 써주시면 decimal이라는 키워드를 명시해서 매개변수를 사용할 수 있어요
문서가 길다고 겁먹지 마세요!!! 여러분도 할 수 있답니다!!!

오늘은 여기까지! 조금 힘드셨을까요?
다음 내용도 힘내서 빡코딩 해봅시다!!
모두 화이팅!

'ABC 부트캠프' 카테고리의 다른 글
[6일차] ABC부트캠프 - 데이터 분석 with Python (matplotlib) (0) | 2024.07.01 |
---|---|
[5일차] ABC 부트캠프 - 파이썬 기초 #4 (재귀함수,내장 함수, 표준 라이브러리) (1) | 2024.06.28 |
[3일차] ABC부트캠프 - 파이썬 기초 #2 ( 리스트, 딕셔너리, if문, for문) (2) | 2024.06.26 |
[2일차] ABC 부트캠프 - 파이썬 기초 #1 (변수와 타입, 함수와 메서드) (2) | 2024.06.25 |
[1일차] ABC 부트캠프 - OT (0) | 2024.06.24 |