해당 시리즈의 모든 내용은 국비지원 부트캠프 '엘리스 AI 7기' 이호준 선생님의 AI 프리트랙 강의를 수강하며 수업 내용을 정리한 것 입니다.
컴퓨터에게 정보를 입력하면 컴퓨터가 작업을 하고, 컴퓨터가 그 작업결과를 출력한다.
특정 기능을 수행하는 코드(들의 모임)
자료를 넣으면 특정 행동을 한 후 결과를 알려준다.
파이썬 개발자들이 이미 만들어 둔 함수를 편리하게 가져다 쓰면 된다.
input()
: 자료를 입력하는 함수print()
: 자료를 출력하는 함수>>.a = input()
Hello
>>>print(a)
'Hello'
max()
: 시퀀스 자료의 최댓값을 구하는 함수min()
: 시퀀스 자료의 최솟값을 구하는 함수>>> print(max(1, 2, 3, 4, 5))
5
>>> print(min([1, 2, 3, 4, 5]))
1
sum()
: 숫자 원소로 이루어진 시퀀스 자료의 합len()
: 시퀀스 자료의 길이를 구하는 함수>>> print(sum((1, 2, 3, 4, 5)))
15
>>> print(len("Triangle"))
8
사용자가 여러 코드를 묶어서 새로 만든 함수
>>> def plusDouble(a, b):
c = a + b
return 2 * c
>>> print(plus(3, 4))
14
def
키워드를 이용해서 함수를 정의한다.매개변수
를 이용해서 함수 내부로 값을 전달한다.같은 들여쓰기
를 통해서 명령을 작성한다return
을 이용해서 함수 외부로 값을 전달한다.# 사용자 지정함수 기본 구조
def 함수이름(매개변수):
<수행할 명령>
<수행할 명령>
.
.
return 반환값
# 함수 호출
함수이름(매개변수)
# 예제
>>> def plus(a, b):
c = a + b
return c
>>> print(plus(3, 4))
7
print()
와 return
의 차이점
함수 안에 print()
가 있다면 함수 호출 시 print()
를 써줄 필요가 없지만, return
만 있는 경우에는 반드시 print()
를 써줘야 호출과 동시에 출력이 된다.
print()
는 우리가 눈에 볼 수 있도록 출력하는 함수이고, return()
은 함수 안에서 일어난 일을 외부로 꺼내오는 기능만 하는 것을 명심하자.
>>> my_tuple = (1, 20, 30, 40, 100)
>>> var1 = max(my_tuple)
>>> var2 = min(my_tuple)
>>> print(var1, var2)
100 1
>>> my_list = [10, 20, 30, 40, 50]
>>> var1 = sum(my_list)
>>> var2 = len(my_list)
>>> var3 = var1/var2
>>> print(var1, var2, var3)
150 5 30.0
>>> def plus_print(a, b):
print(a+b)
>>> def times_return(a, b):
return a*b
>>> plus_print(3, 4)
>>> print(times_return(3,4))
7
12
함수 안에서 일어난 일은 함수 밖에 영향을 끼치지 않는다.
>>> def my_func(a):
x = "Hi!"
print(a)
>>> a = 3
>>> my_func(a)
3
>>> print(x)
Error
함수 밖에서 정의되어 어디서든지(함수 안, 함수 밖 모두) 사용할 수 있는 변수
>>> x = "Hi!" # 전역변수 x
>>> def my_func():
print(x)
>>> my_func()
Hi!
>>> print(x)
Hi!
특정 구문(for
문, 함수 ...) 안에서 정의한 변수로, 변수를 정읳나 범위 내에서만 사용 가능한 변수
>>> def my_func():
x = "Hi?" # 지역변수 x
print(x)
>>> my_func()
Hi?
>>> print(x)
Error
>>> greeting = "밥 먹었어요?" # 전역변수 greeting
>>> print("서울 :", greeting)
서울 : 밥 먹었어요?
>>> def busan():
greeting = "밥 뭇나?" # 지역변수 greeting
print("부산 :", greeting)
>>> busan()
부산 : 밥 뭇나?
>>> print(greeting)
밥 먹었어요?
특정 자료에 대해 특정 기능을 하는 코드(함수)
>>> my_list = [1, 2, 3]
>>> my_list.append(4)
>>> my_list.count(2)
>>> my_list.pop()
>>> my_list = [1, 2, 3]
>>> len(my_list)
3
>>> sum(my_list)
6
>>> min(my_list)
1
.
을 찍어 사용한다.)>>> my_list = [1, 2, 3]
>>> my_list.sort()
>>> my_list.pop()
>>> my_list.clear()
>>> my_dict = {1:"one", 2:"two", 3:"three"}
>>> var1 = my_dict.keys() # 딕셔너리의 '모든 키'를 반환
>>> var2 = my_dict.values() # 딕셔너리의 '모든 값'을 반환
>>> print(var1, var2)
dict_keys([1, 2, 3]) dict_values(['one', 'two', 'three'])
>>> def solve(a, b):
return a*b
>>> var1 = solve(3, 4)
>>> var2 = solve(3, ['Cham'])
>>> print(var1, var2)
12 ['Cham', 'Cham', 'Cham']
# 모범답안
>>> def our_max(nums):
maxNum = -999999999
for i in nums:
if i > maxNum:
maxNum = i
return maxNum
>>> print(our_max([1, 2, 10, 9, 3, 7, 0, 99, 27, 85]))
99
# 내 풀이
>>> def our_max(nums):
nums.sort()
a = nums.pop()
return a
>>>ㅊprint(our_max([1, 2, 10, 9, 3, 7, 0, 99, 27, 85]))
99
각 놀이기구의 대기시간이 담긴 리스트가 인자로 주어졌을 때, 유진이가 놀이기구를 타는 순서로 대기시간을 정렬한 함수 neverland()
를 만들어보자. 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구로, 대기시간에 상관없이 가장 먼저 타야한다. 주어진 조건에 맞게 정렬된 리스트를 반환해보자.
>>> def neverland(queue):
must = [] # 2번쨰 인자를 담을 빈 리스트 선언
must.append(queue[2]) # 2번째 인자 추가
queue.pop(2) # 2번째 인자를 따로 빼놓는다
queue.sort() # 2번째 인자가 제거된 나머지 원소 오름차순 정렬
queue = must + queue # 2번째 인자 + 정렬된 원소 합치기
return queue
>>> queue = [30, 10, 20, 50, 40, 60]
>>> print(neverland(queue))
[20, 10, 30, 40, 50, 60,]
주어진 조건에 맞는 비밀번호를 만들어주는 함수 yoonHa()
를 만들어보자.
def yoonHa(nums):
secret = {'4':'love', '8':'smile', '6':'kiss'}
answer = ''
for i in nums:
answer = answer + secret[i]
return answer
nums = input()
print(yoonHa(nums))