Language/Python

[Python] 3_함수

Deveun 2021. 5. 3. 00:17

- 함수 기초

'''
파이썬 함수에서 매게변수 갯수가 정확하지 않을 때
'''
def func(*args):	# * 붙이기
    
'''
여러개의 결과값을 반환 (tuple)
'''
def add_and_mul(a,b):
    return a+b, a*b
res1, res2 = add_and_mul(3,4)	# >>> res1 = 7, res2 = 12
res = add_and_mul(3,4)	# >>> res = (7, 12)

'''
# 함수정의시에 def func(a=b): 와 같은 식으로 초기값 설정가능.
선언시에 값을 설정하면 설정값으로 반영.
초기값 설정된 변수는 항상 맨 마지막
'''

# 람다(lambda)
### lambda 매개변수1, 매개변수2 ... : 매개변수를 이용한 표현식
### return이 없이 결과값을 돌려주는 한줄 함수
func = lambda a,b: a + b
func(3,4) # >>> 7

 

- 입출력 함수

# 입력
a = input()
a = input("질문") # 프롬프트를 띄움
a = input().split # 여러개 입력

# 출력
print(a)
print("a", "b", "c") # ,가 있으면 문자열 띄어쓰기 >>> a b c
print("a", end=' ') # end 를 사용해 마지막 값 설정 가능

 

- 주요 내장함수

# abs 절대값 / max 최대 / min 최소 / pow(a,b) a의 b제곱 / round 반올림 / len 길이
# div 몫, 나머지를 튜플로. (//, %)
# int(x, redix) redix진수의 정수 x / sum([,,...]) 합
# list / tuple
# id 객체 주소 / type 자료형
# isinstance(object, class) object가 클래스의 인스턴스인지 True/False
# sorted 정렬한 결과를 리스트로 리턴
# sum([,,...]) 합
# chr() : 유니코드 -> 문자 / ord() : 문자 -> 유니코드 

# all 모든 요소가 참이면 True / any 하나라도 참이면 True
all([]), all([1,2,0]) # >>> False
any([1,2,3,0]) # >>> True

# dir 객체가 자체적으로 가진 변수/함수를 보여줌
dir([1,2]) # 리스트
### >>> ['append','count','extend',...]
dir({'1':'a'}) # 딕셔너리
### >>> ['clear', 'copy', 'get', ...]

# enumerate (열거)
### 리스트, 튜플, 문자열을 인덱스값을 포함하는 객체로.
for i, name in enumerate(['a', 'b', 'c']):
    print(i, name)
### >>> 0 a  1 b  2 c

# eval 문자열 실행
eval('1+2') # >>> 3
eval('divmod(4,3)') # >>> (1,1)

# filter (함수이름, 함수에 들어갈 자료)
def positive(x):
    return x>0
print(list(filter(positive, [1,-2,5,0,-1]))) # Use1
list(filter(lambda x: x>0, [1,-2,5,0,-1])) # Use2
### >>> [1, 5]

# map(함수이름, 리스트요소)
### 각 요소에 함수를 수행한 결과를 묶음
def func(x):
    return x*2
list(map(func, [1,2,3,4])) # case1 >>> [2,4,6,8]
list(map(lambda x: x*2, range(1,5)) # case2

# reduce(함수이름, 리스트요소)
### 원소들을 누적적으로 함수에 적용
from functools import reduce
reduce(lambda x,y : y+x, 'abcde') # >>> 'edcba'

# range
list(range(3)) # >>> [0, 1, 2]
list(range(2,5)) # >>> [2, 3, 4]
list(range(2,10,2)) # >>> [2, 4, 6, 8]

# zip 동일한 개수의 자료형을 묶음
lsit(zip("abc", "def"))
[('a','d'), ('b','e'), ('c','f')]

참고: wikidocs.net/book/1

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net