본문 바로가기
SK Shieldus Rookies 19th/인프라 활용을 위한 파이썬

[SK shieldus Rookies 19기][Python] - 내장 함수, 표준 라이브러리, 외부 라이브러리 Faker

by En_Geon 2024. 3. 18.

1. 내장 함수

파이썬 모듈과 달리 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용할 수 있는 함수

 

 

만들려는 프로그램이 이미 만들어져 있는지 살펴봐야 한다. 이미 만들어진 것을 대시 만드는 것이 목적이 아니라면 누군가 만들어 놓은 프로그램을 다시 만드는 것은 시간 낭비고, 그 프로그램은 이미 테스트 과정을 수없이 거쳤기 때문에 충분이 검증되어 있다.

 

파이썬 라이브러리를 살펴보는 것이 매우 중요하다.

 

 

  • abs
abs(x)는 어떤 숫자를 입력받았을 때 그 숫자의 절댓값을 리턴하는 함수

 

print(abs(-3))
print(abs(-1.2))

 

  • 출력 : 3
  • 출력 : 1.2

 

  • all
all(x)는 반복 가능한 데이터 x를 입력값으로 받아 x의 요소가 모두 참이면 True,
거짓이 하나라도 있으면 False 리턴하는 함수

 

print(all([1, 2, 3]))
print(all([1, 2, 3, 0]))
print(all([]))

 

  • 출력 : True
  • 출력 : False
  • 출력 : True

리스트의 요소 중 0은 거짓이므로 False, all의 입력 인수가 빈 값인 경우 True 리턴하는데 비교할 대상이 없기 때문이다.

 

 

  • any
any(x)는 반복 가능한 데이터 x를 입력받아 x의 요소 중 하나라도 참이 있으면 True 리턴,
x가 모두 거짓일 때만 False 리턴하는 함수 all(x)의 반대로 동작

 

print(any([1, 2, 3, 0]))
print(any([0, ""]))
print(any([]))

 

  • 출력 : True             리스트 중에서 1, 2, 3이 참
  • 출력 : False           리스트의 요소 0과 ""은 모두 거짓
  • 출력 : False           입력 인수가 빈 값인 경우

 

  • chr
유니코드 숫자 값을 입력 받아 해당하는 문자를 려턴하는 함수

 

print(chr(97))
print(chr(44032))

 

  • 출력 : a
  • 출력 : 가

 

  • ord
ord(c)는 문자의 유니코드 숫자 값을 리턴하는 함수

 

print(ord('a'))
print(ord('가'))

 

  • 출력 : 97
  • 출력 : 44032

 

  • dir
객체가 지닌 변수나 함수를 보여 주는 함수

 

print(dir([1, 2, 3]))
print(dir({'1':'a'}))

 

  • 리스트와 딕셔너리가 지닌 함수(메서드)를 보여 주는 예

 

  • divmod
divmod(a, b)는 2개의 숫자 a, b를 입력받고, a를 b로 나문 몫과 나머지를 튜플로 리턴하는 함수

 

print(divmod(7, 3))

 

  • 출력 : (2, 1)

 

  • eval
eval(expression)은 문자열로 구성된 표현식을 입력받아 해당 문자열을
파이썬 문법으로 해석해서 실행한 결괏값을 리턴하는 함수

 

print(eval('7 + 3'))
print(eval('"hi" + "b"'))
print(eval('divmod(4, 3)'))

 

  • 출력 : 10
  • 출력 : hib
  • 출력 : (1, 1)

 

eval은 보안에 취약한 함수다.

개발자가 의도한 형태의 입력은 '7 + 3'인데, 사용자가 __import__('os').system('dir')을 입력하게 되면 현재 디렉터리를 보여주는 명령어인 dir이 입력되어 현재 디렉터리의 파일과 하위 디렉터리 목록을 출력한다.

 

print(eval("__import__('os').system('dir')"))
print(eval("__import__('os').system('type test.py')"))

 

  • 위 코드는 현재 디렉터리의 목록을 출력
  • 다음 코드는 test.py파일의 데이터(코드)를 출력

 

  • hex
hex(x)는 정수를 입력받아 16진수 문자열로 변환하여 리턴하는 함수

 

 

  • id
id(object)는 객체를 입력받아 객체의 고유 주솟값을 리턴하는 함수

 

a = 3 
print(id(3))
print(id(a))

b = a
print(id(b))

 

  • 모두 같은 객체를 가리키고 있으므로 같은 주솟값을 리턴한다.

 

  • isinstance
isinstance(object, class)는 첫 번째 인수로 객체, 두 번째 인수로 클래스를 입력받아 객체가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 리턴하는 함수

 

class Plants:
    pass

class Bird:
    pass

class Eagle(Bird):
    pass


e = Eagle()
print(isinstance(e, Eagle))
print(isinstance(e, Bird))		# 부모 클리스인 경우에도 True를 리턴

print(isinstance(e, Plants))

 

  • 출력 : True
  • 출력 : True
  • 출력 : False

e는 Plants 클래스로 만든 인스턴스가 아니므로 False를 리턴

 

 

  • oct
oct(x)는 정수를 8진수 문자열로 바꾸어 리턴하는 함수

 

 

 

  • pow
pow(x, y)는 x를 y제곱한 결괏값을 리턴하는 함수

 

 

 

  • round
round(number [,ndigits])는 숫자를 입력받아 반올림해 리턴하는 함수
[,ndigits]는 ndigits가 있을 수도 있고, 없을 수도 있다는 의미 

 

print(round(5.678, 2))

 

  • 소수점 2자리까지만 반올림하여 표시
  • round 함수의 두 번째 인수는 반올림하여 표시하고 싶은 소수점의 자릿수를 의미

 

  • sorted
sorted(iterable)는 입력 데이터를 정렬한 후 그 결과를 리스트로 리턴하는 함수

 

print(sorted([3, 1, 2]))
print(sorted(['a', 'c', 'b']))
print(sorted("zero"))
print(sorted((3, 2, 1)))

 

  • 숫자는 오름차순, 알파벳은 알파벳 순으로 정렬한다.

 

2. 표준 라이브러리

파이썬 고수들이 만든 유용한 프로그램을 모아 놓은 것

 

  • 어떤 일을 할 때 어떤 라이브러리를 사용해야 한다는 정도만 알면 된다.
  • 점프 투 파이썬 교재에 어떤 표준 라이브러리가 있는지 읽어보는 것으로 대체

 

 

3. 외부 라이브러리

외부 라이브러리를 사용하려면 pip  도구를 이용하여 설치해야 한다,

 

 

1) pip

파이썬 모듈이나 패키지를 쉽게 설치할 수 있도록 도와주는 도구

 

 

(1) pip install

pip install "원하는 패키지"

 

PyPI(Python Package Idex) 파이썬 소프트웨어가 모인 저장 공간이다. 이곳에는 파이썬 패키지가 등록되어 있으며 이곳에 등록된 파이썬 패키지는 누구나 내려받아 사용할 수 있다.

 

 

(2) 최신 버전 업그레이드

pip install --upgrade 

 

  • 패키지를 최신 버전으로 업그레이드하려면 --upgrade 옵션을 사용

 

(3) Faker

pip install Faker

 

  • 테스트 데이터가 필요할 때 Faker를 사용하면 매우 쉽게 만들 수 있다.

 

from faker import Faker

faker = Faker() 

for i in range(10):
    print(faker.name())

 

  • 무작위로 생성한 이름 리턴

 

한글 이름이 필요하다면 로케일을 한국으로 설정하면 된다.

 

from faker import Faker

faker = Faker('ko-KR')      # 로케일을 한국으로 설정

for i in range(10):
    print(faker.name())

 

  • 무작위로 생성한 한글 이름 리턴

 

테스트 데이터로 이름, 주소, 이메일을 생성할 수 있다.

 

from faker import Faker

faker = Faker('ko-KR')      # 로케일을 한국으로 설정

for i in range(10):
    print(faker.name(), faker.address(), faker.email())

 

  • 무작위로 생성한 한글 이름, 주소, 이메일을 생성해 리턴한다.

 

 

Faker 활용

항목 성명
fake.name() 이름
fake.address() 주소
fake.postcode() 우편 주소
fake.country() 국가명
fake.company() 회사명
fake.job() 직업명
fake.phone_number() 휴대전화 번호
fake.email() 이메일 주소
fake.user_name() 사용자명
fake.pyint(min_value=0, max_value=100) 0부터 100 사이의 임의의 숫자
fake.ipv4_private() IP 주소
fake.text() 임의의 문장(한글 임의의 문장은 fake.catch_phrase() 사용)
fake.color_name() 색상명

 

댓글