SiLaure's Data

[Python] 14-2. Python 기초 문법 - Function 2(Implementation) (2) 본문

카테고리 없음

[Python] 14-2. Python 기초 문법 - Function 2(Implementation) (2)

data_soin 2021. 7. 22. 16:59

- Deep in the Parameter

  • 함수에서 굉~장히 중요한 concept
  • 어려울 것임

 

 

- 함수에서 사용되는 변수들은 효력범위와 수명이 있다.

효력 범위 : range
수명 : lifetime
  • 함수 내부에서 사용되는 parameter들은 외부에 영향을 주지 않는다.
    함수 내부에서만 생성되고 사라진다.
    => local variable --지역변수

Q. 함수의 파라미터 변수 이름과 함수를 호출하는 argument의 이름이 같은 경우에 어떻게 될까?

def change_name(name):
    name = "lee"
	return name

name = "kim" 
name = change_name(name)

print(name)

출력 : lee

 

Q. 만약 return이 없다면?

def change_name(name):
    name = "lee"
    print("in function : ", name)

name = "kim"  # global
change_name(name)

print(name)

출력 : 

lee

kim

 

 

- Lambda 함수 (Lamda Expression)

  • 굉장히 간단한 함수가 있는 경우, 한 줄짜리 함수로 간편하게 사용할 수 있다.
    => inline function --def라고 하는 명령어 없이 간단하게 정의해서 사용할 수 있다.
  • lambda함수와 반복문을 사용해서 함수의 정의 없이 다양한 프로그래밍을 할 수 있다.

e.g.

def add(a, b):
    return a+b​

 

Q. lambda 함수로 바꾸면?

A. 

f = lamda a, b : a+b

 => a, b는 input parameter들, a+b는 return되는 output parameter.

f = lambda a, b : a+b
    
print(add(3,5))
print(f(3,5))

출력 : 둘 다 8

 

 

 

-  연습하기

Q. 아래 리스트의 원소들을 원소들의 길이에 따라 정렬하고 싶은 경우엔 어떻게 해야할까?

strings = ['yoon', 'kim', 'jessica', 'jeong']

strings.sort(key=lambda s : len(s))
strings

출력 : ['kim', 'yoon', 'jeong', 'jessica']

strings.sort()
sort() 함수 : alphabetical order로 정렬된다.(알파벳 순 ==사전 순)

 

 

 

- 파이썬에서 이미 정의된 함수 --내장함수

  e.g. print(), sorted(), ...

liabrary -- 라이브러리
: 누군가가 만들어 놓은 체계적인 코드 묶음
e.g. math : 수학계산을 하기 위해 불러오는 코드 묶음
  • 수학 계산을 해보기
import math

# 절대값, 올림, 내림
print(abs(-3))  # math가 아닌 Python의 default function
print(math.ceil(3.5))
print(math.floor(3.3))

# sin, cos
print(math.sin(1))
print(math.cos(1))

출력 :

3
4
3
0.8414709848078965
0.5403023058681398

 

  • 복권 숫자 만들어보기
import random
random.sample(range(1, 46), 7)
random.sample(범위, 뽑아 낼 개수) --method임
주어진 범위에서 뽑아 낼 개수만큼 무작위로 뽑는 함수!

 

  • 특수한 사전들
from collections import defaultdict
from collections import OrderedDict
1. defaultdict
  : 처음부터 초기화로 세팅되는 dict
2. OrderedDict
  : 입력한 순서(저장한 순서)를 기억하는 dict

1. defaultdict

D = defaultdict(int)
D

출력 : defaultdict(int, {})

 

2. OrderedDict

D2 = OrderedDict()

D2['c'] = 5
D2['a'] = 1
D2['b'] = 2
D2['d'] = 3

D2

출력 : OrderedDict([('c', 5), ('a', 1), ('b', 2), ('d', 3)])

Comments