JAMONGPROJECT
[DAY10] 함수 심화학습 본문
6 실전 문제풀이
1. enumerate
x = [23, 45, 76]
for i, s in enumerate(x):
# i에는 index, s에는 값이 추출
print(i,':', s)
0 : 23
1 : 45
2 : 76
2. factorial 구현
def fat1(num):
if num > 0:
return fat1(num - 1) * num
# fat1(4)*5-> fat1(3)*4*5 -> fat(2)*3*4*5
# -> fat1(1)*2*3*4*5 -> fat1(0)*1*2*3*4*5
# -> 1 * 2 * 3 * 4 * 5
else:
return 1
print(fat1(5))
120
# 재귀함수를 사용하지 않고 factorial 값 구하기
def fat1(num):
result = 1
for i in range(1,num + 1):
result *= i
return result
print(fat1(5))
120
3. filter 예제
li = [1,2,3,4,5,6,7]
result = list(filter(lambda x:x%2!=0,li))
print(result)
[1, 3, 5, 7]
li = [0,1,2,3,4,5,6,7,8,9,10]
# 5보다 큰 숫자만 출력
result = list(filter(lambda x:x > 5, li))
print(result)
[6, 7, 8, 9, 10]
# 홀수만 출력
result = list(filter(lambda x:x %2 == 1,li))
print(result)
[1, 3, 5, 7, 9]
4. 함수명을 변수, 리스트의 요소, 매개변수, return값으로 사용하기
def print_something(v):
print(v)
# print_something('철수')
f = print_something # 함수명을 변수에 저장하여 사용 가능
f(123)
def plus(x, y):
print(x + y)
def minus(x, y):
print(x - y)
# plus(2,3)
# minus(2,3)
f = [plus, minus] # 함수명을 list의 요소처럼 사용
f[0](2, 3)
f[1](2, 3)
def anyoung():
print('안녕하세요')
def hello():
print("Hello ")
def greet(f):
f()
# 함수의 이름을 매개변수 처럼 사용
greet(anyoung)
greet(hello)
def anyoung():
print('안녕하세요')
def hello():
print("Hello ")
def greet(f): # 함수이름도 return사용 가능
if f == 'k': result = anyoung
else: result = hello
return result
x = greet('k')
x()
x = greet('e')
x()
5. sort 구현해보기
def insertion_sort(some_list):
for i in range(len(some_list)):
key = some_list[i]
j = i - 1
while j >= 0 and some_list[j] > key:
some_list[j + 1] = some_list[j]
j = j - 1
some_list[j + 1] = key
some_list = [11, 3, 6, 4, 12, 1, 2]
insertion_sort(some_list)
print(some_list)
6. map, lambda함수 응용
def f1(x):
return x * x
list1 = [1, 2, 3, 4, 5]
list2 = []
# for i in list1:
# print(f1(i))
for i in list1:
list2.append(f1(i))
print(list2)
# list1안의 요소들을 함수 f1안에 대입하여 처리
result = list(map(f1, list1))
print(result)
# 여기서 f1대신에 lamda함수, map은 for문 대신
result2 = list(map(lambda x:x*x,list1))
print(result2)
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
7. random 라이브러리
import random
# random.random 0과 1사이의 실수
print(random.random())
# 1 과 45사이의 정수를 랜덤
print(random.randint(1,45))
data = [1,2,3,4,5,6]
# data를 랜덤하게 섞는다
random.shuffle(data)
print(data)
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완
#한번에끝내는컴퓨터공학전공필수&인공지능심화초격차패키지Online
'Challenge > FASTCAMPUS 30일 챌린지' 카테고리의 다른 글
[DAY12] 클래스 (0) | 2023.03.03 |
---|---|
[DAY11] 클래스 (0) | 2023.03.02 |
[DAY9] 함수 심화학습 (0) | 2023.02.28 |
[DAY8] 함수 심화학습 (0) | 2023.02.27 |
[DAY7] 함수 작성 실습 (0) | 2023.02.26 |
Comments