9-1
매개변수로 문자열을 받고, 해당 문자열이 red면 apple을, yellow면 banana를, green이면 melon을, 어떤 경우도 아닐 경우 I don’t know를 리턴하는 함수를 정의하고, 사용하여 result변수에 결과를 할당하고 print해본다.
def func1(str1):
result = ''
if str1 == 'red':
result = 'apple'
elif str1 == 'yello':
result = 'banana'
elif str1 == 'green':
result = 'melon'
else:
return "I don't know"
return result
print(func1('red'))
9-2
1번에서 작성한 함수에 docstring을 작성하여 함수에 대한 설명을 달아보고, help(함수명)으로 해당 설명을 출력해본다.
def func1(str1):
'색깔에 따른 과일을 매칭해줍니다.'
result = ''
if str1 == 'red':
result = 'apple'
elif str1 == 'yello':
result = 'banana'
elif str1 == 'green':
result = 'melon'
else:
return "I don't know"
return result
print(func1('red'))
help(func1)
9-3
한 개 또는 두 개의 숫자 인자를 전달받아, 하나가 오면 제곱, 두개를 받으면 두 수의 곱을 반환해주는 함수를 정의하고 사용해본다.
def func2(num, num2=None):
if num2:
return num*num2
else:
return num*num
print(func2(3,4))
9-4
두 개의 숫자를 인자로 받아 합과 차를 튜플을 이용해 동시에 반환하는 함수를 정의하고 사용해본다.
def add_subtract(a,b):
return a+b, a-b
print(add_subtract(3,5))
9-5
위치인자 묶음을 매개변수로 가지며, 위치인자가 몇 개 전달되었는지를 print하고 개수를 리턴해주는 함수를 정의하고 사용해본다.
def func1(*args):
print(args)
return f'인수의 수는 {len(args)}개 입니다'
print(func1('a','b','c'))
9-6(다시풀기)
람다함수와 리스트 컴프리헨션을 사용해 한 줄로 구구단의 결과를 갖는 리스트를 생성해본다.
list1 = [i*j for i in range(2,10) for j in range(1,10)]
print(list1)
순차검색(Sequential Search)
- 문자열과 키 문자 1개를 받는 함수 구현
- while문을 이용, 문자열에서 키 문자가 존재하는 index위치를 검사 후 해당 index를 리턴
- 찾지 못했을 경우 -1을 리턴
def sequential_search(string, inputstr):
index = 0
while 1:
if index == len(string):
return -1
elif inputstr in string[index]:
return index
else:
index += 1
string = 'abcdefg'
inputstr = 'z'
print(sequential_search(string,inputstr))
선택정렬(Selection sort)
[9, 1, 6, 8, 4, 3, 2, 0, 5, 7] 를 정렬한다.
- 정렬과정
- 리스트 중 최소값을 검색
- 그 값을 맨 앞의 값과 교체
- 나머지 리스트에서 위의 과정을 반복
- 해결방법
- 알고리즘 진행과정 그려보기
- 의사코드(Psuedo code) 작성
- 실제 코드 작성
def selection_sort(list1):
for i in range(len(list1)):
minimum = list1[i]
print('target index', i)
for j in range(i,len(list1)):
if j+1 == len(list1):
continue
elif minimum >= list1[j+1]:
minimum = list1[j+1]
min_index = j+1
print('minimum now', minimum)
list1[min_index], list1[i] = list1[i], list1[min_index]
min_index = i+1
print(list1)
return list1
list1 = [9,1,6,8,4,3,2,0,5,7]
print(selection_sort(list1))
Comments