반응형
Preface
오늘은 파이썬 자체에 내장되어 있어 import 없이 사용할 수 있는 다양한 함수들을 공부했다.
지금껏 코딩을 배우며 기본적인 내장 함수는 대부분 익혔으리라 생각하고 있었는데, 내가 생각지도 못했던 수많은 함수들이 소개되어 당황스러웠다.
이러한 함수들의 사용법을 모두 익히는 것은 사실상 불가능한 일이지만, 평소 유용하게 사용할 수 있는 몇가지 함수들은 반드시 익혀야겠다는 생각과 동시에, 필요한 함수들은 언제든 def를 통해 만들 수 있으니 크게 걱정할 필요가 없겠다는 생각도 들었다.
1. 내장 함수 1
# iterable은 반복 가능(iterable)한 자료형 여러 개를 입력할 수 있다는 의미이다.
print(abs(3))
print(abs(-4))
print(abs(3.4))
print('\n')
# abs(x)는 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수이다.
print(all([1, 2, 3]))
print(all([1, 2, 4, 0]))
print(all([]))
print('\n')
# all(x)는 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다.
# all의 인수가 비어있을 땐 True를 돌려준다.
print(any([1, 2, 3]))
print(any([1, 2, 4, 0]))
print(any([0, '']))
print(any([]))
print('\n')
# any(x)는 x의 요소 중 하나라도 참이 있으면 True를 돌려주고, x가 모두 거짓일 때에만 False를 돌려준다.
# any의 인수가 비어있을 땐 False를 돌려준다.
print(chr(97))
print(chr(44032))
print('\n')
# chr(i)는 유니코드(Unicode) 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수이다.
print(ord('a'))
print(ord('가'))
print('\n')
# ord(c)는 문자의 유니코드 값을 돌려주는 함수이다.
print(dir([1, 2, 3]))
print('\n')
print(dir({'1': 'a'}))
print('\n')
# dir은 객체가 자체적으로 가지고 있는 변수나 함수를 보여 준다.
print(divmod(7, 3))
print(divmod(8, 3))
print('\n')
# divmod(a, b)는 2개의 숫자를 입력으로 받아 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수이다.
for i, name in enumerate(['apple', 'lemon', 'melon']):
print(i, name)
print('\n')
# enumerate는 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아
# 인덱스 값을 포함하는 enumerate 객체를 돌려준다.
# enumerate를 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.
print(eval('1 + 2'))
print(eval("'see' + 'you'"))
print(eval('divmod(8, 5)'))
print('\n')
# eval(expression)은 실행 가능한 문자열을 입력으로 받아 문자열을 실행한 결괏값을 돌려주는 함수이다.
# 코드가 길어지기만 하는데, 굳이 사용할 필요가 있나??
def positive(l):
result = []
for i in l:
if i > 0:
result.append(i)
return result
print(positive([1, -3, 2, 0, -5, 6]))
# 양수만을 출력하는 코드를 filter를 이용하여 더욱 간단하게 만들면
def positive2(l):
return l > 0
print(list(filter(positive2, [1, -3, 2, 0, -5, 6])))
print('\n')
# filter 함수는 첫 번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다.
# 그리고 두 번째 인수가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서(걸러 내서) 돌려준다.
# 여러개의 값을 묶어서 반환하기 때문에 list를 사용하는 듯하다.
print(hex(123))
print(hex(203))
print('\n')
# hex(x)는 정수 값을 입력받아 16진수(hexadecimal)로 변환하여 돌려주는 함수이다.
2. 내장 함수 2
a = 3
b = a
print(id(3))
print(id(a))
print(id(b))
print('\n')
# id(object)는 객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수이다.
a = int(input('숫자를 입력하세요: '))
if a > 0:
print('양수입니다.')
else:
print('음수입니다.')
print('\n')
# input([prompt])은 사용자 입력을 받는 함수이다.
print(int('3'))
print(int(3.2))
# int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수이다.
print(int('11', 2))
print(int('1A', 16))
print('\n')
# int(x, radix)는 radix 진수로 표현된 문자열 x를 10진수로 변환하여 돌려준다.
class Person:
pass
a = Person()
b = 3
print(isinstance(a, Person))
print(isinstance(b, Person))
print('\n')
# isinstance(object, class )는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다.
# 입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려준다.
print(len('123'))
print(len('hello'))
print('\n')
# len(s)은 입력값 s의 길이(요소의 전체 개수)를 돌려주는 함수이다.
print(list('Python'))
print(list((1, 2, 3)))
print('\n')
# list(s)는 반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려주는 함수이다.
# list 함수에 리스트를 입력으로 주면 똑같은 리스트를 복사하여 돌려준다.
def two_times(numberList):
result = []
for number in numberList:
result.append(number*2)
return result
result = two_times([1, 2, 3, 4])
print(result)
# 결괏값의 2배를 출력하는 코드를 map을 사용하며 간단하게 만들면
def twotimes(x):
return x*2
print(list(map(twotimes, [1, 2, 3, 4])))
print('\n')
# map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다.
# map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.
print(max([1, 2, 3]))
print(max('python'))
print('\n')
# max(iterable)는 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수이다.
print(min([1, 2, 3]))
print(min('python'))
print('\n')
# min(iterable)은 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 돌려주는 함수이다.
print(oct(8))
print(oct(13))
print('\n')
# oct(x)는 정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려주는 함수이다.
print(int('0o10', 8))
print(int('0o15', 8))
print('\n')
# 앞서 배운 int는 각 진수로 표현된 숫자를 10진수로 돌려주는 함수이다.
# open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수이다.
# 읽기 방법(mode)을 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 돌려준다.
3. 내장 함수 3
print(pow(2, 3))
print(pow(4, 2))
print('\n')
# pow(x, y)는 x의 y 제곱한 결괏값을 돌려주는 함수이다.
print(list(range(5)))
print(list(range(1, 11)))
print(list(range(1, 6, 2)))
print('\n')
# range함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려준다.
# 시작 숫자를 지정해 주지 않으면 range 함수는 0부터 시작한다.
# 입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다. (끝 숫자는 해당 범위에 포함 X)
# 세 번째 인수는 숫자 사이의 거리를 말한다.
print(round(2.3))
print(round(4.7))
print(round(2.357, 2))
print('\n')
# round(number[, ndigits]) 함수는 숫자를 입력받아 반올림해 주는 함수이다.
# round 함수의 두 번째 매개변수는 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)이다.
a = [4, 2, 5, 1]
print(sorted([3, 5, 1]))
print(sorted(['b', 'c', 'a']))
print(sorted('python'))
print(sorted(a))
print('\n')
# sorted(iterable) 함수는 입력값을 정렬한 후 그 결과를 리스트로 돌려주는 함수이다.
# sort 함수는 list에만 적용되는 함수이다.
print(str(3))
print(str('hi'))
print(str('hi'.upper()))
print('\n')
# str(object)은 문자열 형태로 객체를 변환하여 돌려주는 함수이다.
print(sum([1, 2, 3]))
print(sum([4, 5, 6]))
print('\n')
# sum(iterable) 은 입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 함수이다.
print(tuple('abc'))
print(tuple([1, 2, 3]))
print(tuple((4, 5, 6)))
print('\n')
# tuple(iterable)은 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려주는 함수이다.
# 만약 튜플이 입력으로 들어오면 그대로 돌려준다.
print(type('haha'))
print(type([1, 2, 3]))
print(type({'name': '경모', 'age': '22'}))
print('\n')
# type(object)은 입력값의 자료형이 무엇인지 알려 주는 함수이다.
print(list(zip([1, 2, 3], [4, 5, 6])))
print(list(zip('abc', 'def')))
# zip(iterable)은 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다.
728x90
반응형
댓글