18. 내장함수1
"""
20200812
파이썬 공부 18일차
"""
원래 내장 함수 한 번에 다 끝내려고 했는데 워낙 양이 많아서 이것도 끊기로 했다.
김형준 사무실 왔는데 내가 형준이 자리 뺏음
내장 함수
파이썬 내장 함수는 외부 모듈과 달리 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용할 수 있다.
활용빈도가 높고 중요한 함수를 알파벳 순서대로 정리했다는데 이걸 다 쓰나싶음
지금 당장 다 알 필요는 없고, 나중에 어렴풋이 기억만 나면 될 것 같다.
# abs
abs(x)는 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수다.
print(abs(-3))
print(abs(65))
print(abs(-5.74))
>>> -3
>>> 65
>>> 5.74
# all
all(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다.
print(all([1, 2, 3]))
print(all([1, 2, 3, 0]))
>>> True
>>> False
[1, 2, 3, 0] 중에서 숫자 0은 거짓이므로 False를 돌려준다.
# any
any(x)는 x 중 하나라도 참이 있으면 True, 모두 거짓일때 False를 돌려준다.
print(any([1, 2, 3, 0]))
print(any([0, ""]))
>>> True
>>> False
1, 2, 3이 참이므로 True, 요소 0과 ""은 모두 거짓이므로 False를 돌려준다.
# chr
chr(i)는 아스키 코드 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수다.
아스키 코드는 0에서 127 사이의 숫자를 각각 하나의 문자 또는 기호에 대응시켜 놓은 것이다.
print(chr(97))
print(chr(126))
>>> a
>>> ~
# dir
dir은 객체가 자체적으로 가지고 있는 변수나 함수를 보여준다.
print(dir([1, 2, 3]))
>>> ['__add__', '__class__', __delitem__', ..., 'append', count', 'extend', ...]
print(dir({'1':'a'}))
>>> ['__class__', '__contains__', '__delattr__', ..., 'clear', 'copy', 'fromkeys', ...]
리스트와 딕셔너리 객체 관련 함수(메서드)를 보여 주는 예시이며, 하도 많아서 ...으로 줄였다.
# divmod
divmod(a, b)는 2개의 숫자를 입력으로 받고, a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수
print(divmod(7, 3))
>>> (2, 1)
7 나누기 3의 몫은 2, 나머지는 1이기 때문에 (2, 1)이 출력되었다.
# enumerate
순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다.
for i, name in enumerate(['wide', 'yoon', 'python']):
print(i, name)
>>> 0 wide
>>> 1 yoon
>>> 2 python
순서 값과 함께 wide, yoon, python이 순서대로 출력되었다.
enumerate를 for문과 함께 사용하면 자료형의 현재 순서(Index)와 그 값을 쉽게 알 수 있다.
for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인덱스 값이 필요할 때 enumerate 함수를 사용하면 매우 유용하다.
# eval
실행 가능한 문자열을 입력으로 받아 문자열을 실행한 결과값을 돌려주는 함수다.
print(eval('1+2'))
print(eval("'hi' + ' wideyoon'"))
print(eval('divmod(4, 3)'))
>>> 3
>>> hi wideyoon
>>> (1, 1)
eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용한다.
# filter
첫 번째 인수로 함수 이름, 두 번째 인수로 그 함수에 차례로 들어갈 반복가능한 자료형을 받는다.
두 번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서 돌려준다.
def positive(l):
result = []
for i in l:
if i > 0:
result.append(i)
return result
print(positive([1, -3, 2, 0, -5, 6, 7]))
>>> [1, 2, 6, 7]
positive 함수는 리스트를 입력값으로 받아 각각의 요소를 판별하여 양수값만 돌려준다.
filter 함수를 사용해보자.
def positive(x):
return x > 0
print(list(filter(positive, [1, -3, 2, 0, -5, 6, 7])))
>>>[1, 2, 6, 7]
두 번째 인수인 리스트의 요소들이 첫 번째 인수인 positive 함수에 입력되었을 때 반환 값이 참인 것만 묶어서 돌려준다.
1, 2, 6, 7만 양수이기 때문에 x > 0 문장이 참이되므로 해당 결과값을 돌려준다.
lambda를 사용하면 더 쉽게 코드를 짤 수 있다.
list(filter(lambda x: x > 0, [1, -3, 2, 0, -5, 6, 7]))
# hex
hex(x)는 정수 값을 입력받아 16진수로 변환하여 돌려주는 함수다.
print(hex(52))
>>> 0x34
# id
id(object)는 객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수
a = 3
b = a
print(id(a))
print(id(3))
print(id(b))
위 예의 3, a, b의 고유 주소 값이 모두 같으므로 모두 같은 객체를 가리킨다.
# input
input[prompt]은 사용자 입력을 받는 함수다.
매개변수로 문자열을 주면 그 문자열은 프롬프트가 된다.
a = input() # 사용자가 입력한 정보를 변수 a에 저장
b = input("Enter: ") # Enter: 프롬프트를 띄우고 사용자 입력을 받음
# int
int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수
정수를 입력으로 받으면 그대로 돌려준다.
print(int('3')) # 문자열 형태 '3'
print(int(5.67)) # 소수점이 있는 숫자 3.4
>>> 3
>>> 5
int(x, radix)는 radix 진수로 표현된 문자열 x를 10진수로 변환하여 돌려준다.
# 2진수로 표현된 11의 10진수 값
print(int('11', 2))
>>> 3
# 16진수로 표현된 1A의 10진수 값
print(int('1A', 16))
>>> 26
# isinstance
isinstance(object, class)는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다.
입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려줌
class Person: pass # 아무 기능이 없는 Person 클래스
a = Person() # Person 클래스의 인스턴스 a 생성
print(isinstance(a, Person)) # a가 Person 클래스의 인스턴스인지 확인
>>> True
b = 3
print(isinstance(b, Person))
>>> False
b는 Person 클래스가 만든 인스턴스가 아니므로 False를 돌려준다.
파이썬 점점 하기 싫어지네
으앙에악
끝