728x90

def 함수이름(매개변수):

   <수행할 명령>

   return 반환값

 

 

함수 안에서 일어난 일은 함수 밖에 영향을 끼치지 않는다.

 

 

전역변수 : 함수 외부에서 정의한 변수(어디서든지 사용할 수 있는 변수)

지역변수 : 함수 내부에서 정의한 변수 (for문, 함수 등...)

 

# 다음은 표준어로 "밥 먹었어요?"가 담긴 변수 greeting입니다.
greeting = "밥 먹었어요?"
 
# 이를 print로 출력하면 다음과 같습니다.
print("서울 :",greeting)
 
# 함수 busan을 선언하고, 그 안에 변수 greeting에 "밥 뭇나?"를 넣어봅시다.
def busan():
  greeting = "밥 뭇나?"
  print("부산 :",greeting)
 
# 함수 busan을 실행해보세요.
busan()
 
# 변수 greeting을 출력해보세요.
print(greeting)
 

 

 

#1. 대응 관계가 5개 있는 Dictionary를 만들고, 이를 변수 my_dict에 넣어봅시다.
my_dict = {1:"one"2:"two"3:"three"4:"four"5:"five"}
 
#2. 다음 두 메서드를 이용해서, Dictionary의 Key값들을 담은 변수 var1과 
# Value값들을 담은 변수 var2를 만들어봅시다.
var1 = my_dict.keys()
var2 = my_dict.values()
print(var1)
print(var2)

 

 

인자와 매개변수
•매개변수(parameter) : 함수를 정의할 때 넘겨받은 값을 관리하는 변수
•인자(argument) : 함수를 호출할 때 함수로 넘겨주는 자료

 

default parameter 사용 시 주의사항

- 디폴드 파라미터 뒤에 일반 파라미터가 위치할 수 없음.

  ex) def test(a, b=2, c=1)

      def test(a, b=2, c) 이건 에러 발생

#1.함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
#2.이 함수는 a와 b를 곱한 것을 반환합니다.
def solve(a, b):
  return a*b
 
#3.이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
var1 = solve(34)
 
#4. 이 함수에 숫자 3과 리스트 [‘Cham’]을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.
var2 = solve(3, ['Cham'])
 
print(var1)
print(var2)

 

return 만 존재하면, None 반환

return이 없는 경우, 기본적으로 함수 코드 블럭이 종료되면 종료로 간주. None 반환

return 옆에 값이나 수식이 있다면, 해당 값을 호출자에게 반환(전달)

 

최대값 구하는 함수

# 리스트 nums를 넣었을 때, 최댓값을 반환(return)하는 함수 our_max를 작성해봅시다.
def our_max(nums):
  maxNum = 0
  for i in nums:
    if i > maxNum:
      maxNum = i
  return maxNum
 
print(our_max([12109370992785]))
 

 

네버랜드 : 환상의 나라로!

# 대기시간이 담긴 리스트가 인자로 주어지면 조건을 만족하도록
# 타야하는 대기시간의 순서가 담긴 리스트를 반환하는 함수 neverland()를 작성해봅시다.
# 대기시간이 가장 짧은 놀이기구부터 오름차순으로 놀이기구를 탑니다.
# 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구이기에 
# 대기시간에 상관없이 가장 먼저 탑니다.
 
def neverland(q):
  temp = q.pop(2)
  q.sort()
  q.insert(0,temp)
  return q
 
 
# 확인을 위한 코드입니다.
# 대기시간이 담긴 리스트 queue를 자유롭게 수정해보세요!
queue = [301020504060]
print(neverland(queue))

 

#1.함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
#2.이 함수는 a와 b를 곱한 것을 반환합니다.
def solve(a, b):
  return a*b
 
#3.이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
var1 = solve(34)
 
#4. 이 함수에 숫자 3과 리스트 [‘Cham’]을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.
var2 = solve(3, ['Cham'])
 
print(var1)
print(var2)

 

가변 매개변수

# 가변 매개변수는 함수에 1개만 올 수 있다.
# 가변 메개변수는 *args 와 같이 앞에 *를 붙인다.
# 일반 매개변수, 가변 매개변수 순서로 와야 한다.
def print_n_times(value, *args, n=3):
    for i in range(n):
        print(value)
        print(args)
 
# 가변 매개변수와 혼용하여 사용시에는 기본 매개변수는 변수명과 값을 직접 적어줘야 한다.
print_n_times("hello"1,2,3,4,5, n=5)
 
def print_n_times(value, n=3):
    for i in range(n):
        print(value)
        
# 가변 매개변수가 없을 때는 아래와 같이 하면 된다.
print_n_times("hello"5)

 

실행결과

hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)


hello
hello
hello
hello
hello

 

리스트 평탄화 예제

def flatten(data):
    output = []
    for item in data:
        if type(item)  == list:
            output += flatten(item)
        else:
            output += [item]
    return output
 
example = [[1,2,3], [4,[5,6]], 7, [8,9]]
print("원본:",example)
print("변환:", flatten(example))
 

 

블로그 이미지

Link2Me

,