def oz():
for i in range(5):
print('oz코딩스쿨')
oz() # 함수의 이름을 적어주면 바로 함수의 내용이 출력
def oz(message, n):
for i in range(n):
print(message)
oz('oz코딩스쿨', 5) # 'oz코딩스쿨', 5 : 인자
def oz(message, n):
for i in range(n):
print(message)
oz('oz코딩스쿨') # 정상적으로 호출
oz('oz코딩스쿨') # 매개변수의 개수가 2개인데 입력된 매개변수가 1개여서 호출 X
oz('oz코딩스쿨',5,3) # 3개가 입력되어 호출 X
def oz(n, *values): # 매개변수 ,* 가변 매개변수
for i in range(n):
for value in values:
print(value)
print() # 한줄 띄어쓰기
oz(3, "이렇게", "저렇게", "가변 매개변수는 요렇게", "신기하죠")
# 3은 n 매개변수에 들어가고 나머지는 가변 매개변수에 들어간다.
def oz(value, n=2): # (매개변수, 기본 매개변수)
for i in range(n):
print(value)
oz("일반 매개변수 다음에 기본 매개변수를 배치해야 합니다.")
# 매개변수 값을 지정하지 않아서 기본값으로 대체
oz("일반 매개변수 다음에 기본 매개변수를 배치해야 합니다.", n=10)
# 기본값이 존재하지만 매개변수 값을 지정하면 지정한 값으로 호출
def oz(n=3, *values): #(기본 매개변수, 가변 매개변수)
for i in range(n):
for value in values:
print(value)
print()
oz("기본 매개변수 다음에", "가변 매개변수를", "넣을 수 있을까요?")
#(가변 매개변수, 기본 매개변수)
def oz(*values, n=3):
for i in range(n):
for value in values:
print(value)
print()
oz("기본 매개변수 다음에", "가변 매개변수를", "넣을 수 있을까요?", 10)

키워드 매개변수 end=""를 사용하면 한줄에 모두 출력
#직육면체를 부피를 구하는 코드를 작성해보자 : 가로 : x, 세로 : y, 높이 : h
def oz(x, y=20, h=10):
print(x * y * h)
#x식별자에 매개변수 10을 넣은 경우
oz(10) = 2000
#x식별자에 10을 넣고 y=10이라는 키워드 매개변수를 이용한 경우
oz(10, y=10) = 1000
#모든 매개변수를 키워드 매개변수로 넣은 경우
oz(x=5, y=5, h=5) = 125

def oz_return():
return "파이썬 재미있엉" # 값과 함께 리턴하는 경우
result = oz_return()
print(result)
def oz_return():
# return # 리턴값이 없는 경우
result = oz_return()
print(result) = None
def oz(start, end, multiple): # 기본 매개변수 이용가능
for i in range(start, end, multiple):
print(i, " ", end="")
print()
oz(1, 10, 3) # 매개변수 입력 =1 4 7 10
oz(start=1, end=50, multiple=5) # 키워드 매개변수 이용
oz(start=10, end=100, multiple=10)
# 반복문을 이용한 팩토리얼 구현 코드
def oz_factorial(n):
output = 1
for i in range(1, n+1):
output *= i # 곱하기 연산에서 output의 초기값은 1
return output
n = int(input("구하고자하는 팩토리얼의 수를 입력해주세요"))
print(f'{n}의 결과는 {oz_factorial(n)}입니다.')

#재귀함수를 이용한 팩토리얼 구현 코드
def oz_factorial(n):
if n == 0:
return 1 # 0! = 1
else:
return n * oz_factorial(n-1)
n = int(input("구하고자하는 팩토리얼의 수를 입력해주세요"))
print(f'{n}의 결과는 {oz_factorial(n)}입니다.')
count = 0
def oz_fibo(n):
print(f'피보나치 수열 {n}을 구하는 중입니다.')
global count
count += 1
if n == 1:
return 1
if n == 2:
return 1
else:
return oz_fibo(n-1) + oz_fibo(n-2)
n = int(input("구하고자하는 피보나치의 수열의 수를 입력해주세요"))
oz_fibo(n)
print(f'피보나치 수열 {n}을 구하기 위해 계산된 횟수는 {count}입니다')
oz_tuple = (1,2,3)
print(oz_tuple) = (1,2,3)
print(oz_tuple[0]) = 1
print(oz_tuple[1]) = 2
print(oz_tuple[2]) = 3
#튜플에 데이터를 변경을 불가하므로 아래 코드 실행 시 오률가 발생합니다.
oz_tuple[2] = 5
x, y = 1, 2
print("x: ", x) =1
print("y: ", y) =2
print() # 한줄 띄어쓰기
x, y = y, x # 값의 교환
print("x: ", x) =2
print("y: ", y) =1
def oz_tuple():
return (1, 2)
x, y = oz_tuple()
print("x:", x)
print("y:", y)
fruits = ["사과", "바나나", "체리"]
for index, value in enumerate(fruits):
print(index, value)
출력 = 0 사과
1 바나나
2 체리
for index, value in enumerate(fruits, start=1): # 시작 번호 변경
print(index, value)
출력 = 1 사과
2 바나나
3 체리
divmod(a,b)
a, b = 7, 3 # 괄호 없이 여러개의 값을 할당 가능한 이유 : 튜플형태이기 때문
x, y = divmod(a, b)
print("몫:", x) = 몫 : 2
print("나머지:", y) = 나머지 : 1
def oz_call(function):
for i in range(5):
function()
def talk():
print("콜백 함수는 무엇인가..")
oz_call(talk) # talk : 콜백 함수
#자기 자신을 곱합 결과를 새로운 list를 만들어주는 map() 함수 코드
def square(i):
return i * i
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = map(square, numbers_list)
# list값을 square에 매개변수로 넣고 리턴
print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
-------------------------------------------------------------------------
#조건에 맞는 값만을 이용해 새로운 list를 만들어주는 filter()함수 코드
def under(i):
return i < 5
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = filter(under, numbers_list)
print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
square = lambda i : i * i # def square(i) return i*i 와 동일
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = map(square, numbers_list)
print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
-------------------------------------------------------------------------
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = map(lambda i : i * i, numbers_list)
print("map 결과 :", result)
print("map 결과의 list 형변환:", list(result))
-------------------------------------------------------------------------
under = lambda i : i < 5 # def under(i) return i < 5 와 동일
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = filter(under, numbers_list)
print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
-------------------------------------------------------------------------
numbers_list = [1,2,3,4,5,6,7,8,9,10]
result = filter(lambda i : i < 5, numbers_list)
print("map 결과:", result)
print("map 결과의 list 형변환:", list(result))
def test():
print("제너레이터 실습 코드입니다.")
yield "test"
print("첫번째 출력")
test()
print("두번째 출력")
test()
print(test()) = <generator object test at 0x103ec7400> 출력
def test():
print("첫번째 출력") = 2.출력
yield 1 = 3. "1" 출력
print("두번째 출력") = 5.출력
yield 2 =6. "2" 출력
print("세번째 출력") = 8.출력 다음 yield 3 없어서 오류 발생
output = test()
print("네번째 출력") = 1.출력
x = next(output) # next를 만나면 yield있는 위치까지 출력
print(x)
print("다섯번째 출력") = 4.출력
y = next(output)
print(y)
print("여섯번째 출력") = 7.출력
z = next(output)
print(z)
def oz(x: int, y: int, h: int) -> int: # 타입 어노테이션
return x * y * h
oz(10,10,10)
my_dog : str = "hunt"
my_dog_age : int = 7
dogs: list[str] = ["딕스훈트", "시바견", "웰시코기", "이탈리안그레이하운드"]
dogs: dict[str, int] = {
"닥스훈트" : 7,
"시바견" : 5,
"웰시코기" : 6,
"이탈리안그레이하운드" : 3,
}
print(my_dog)
def hunt(name: str) -> str:
return name[0]
def hunt_info(name: str, age: int = 7) -> str:
return name + str(age)
def hunt_happy_time(name: str) -> None:
print("간식줄께" + name)
def hunt_bow(message: str, times: int = 10) -> list[str]: # 리스트에 문자열 들어갈것임
return [message] * times