JAMONGPROJECT

[DAY10] 함수 심화학습 본문

Challenge/FASTCAMPUS 30일 챌린지

[DAY10] 함수 심화학습

JAMONGPROJECT 2023. 3. 1. 08:47

 


6 실전 문제풀이

1. enumerate

x = [234576]
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(xy):
    print(x + y)
def minus(xy):
    print(x - y)
# plus(2,3)
# minus(2,3)
f = [plus, minus] # 함수명을 list의 요소처럼 사용
f[0](23)
f[1](23)
 
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 = [113641212]
insertion_sort(some_list)
print(some_list)

 
6. map, lambda함수 응용
 
def f1(x):
    return x * x
list1 = [12345]
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)
 
 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

#패스트캠퍼스 #패캠챌린지 #수강료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