01 수치 연산 함수 abs() / divmod() / pow()
02 시퀀스형 / 반복 가능한 자료형을 다루는 함수
all() / any() / enumerate() / filter() / list() / tuple() / set() / dict() / map() / max() / min() / range() / sorted() / zip()
03 변환함수 chr() / ord() / hex() / int() / float() / str()
04 객체 조사를 위한 함수 dir() / globals() / locals() / id() / instance() / issubclass()
05 실행 관련 함수 eval()
#03 변환함수
01_chr() / ord() / hex()
chr()
정수 형태의 유니코드 값을 인자로 전달받아 해당 코드의 문자를 반환하는 함수
val = 65
print("chr({0}) => '{1}'".format(val, chr(val)))
# => 정수 65에 해당하는 유니코드 값의 문자열 'A'반환
val = 97
print("chr({0}) => '{1}'".format(val, chr(val)))
# => 정수 97에 해당하는 유니코드 값의 문자열 'a'반환
val = 0xac00
print("chr({0:x}) => '{1}'".format(val, chr(val)))
# 16진수 0xac00해당하는 유니코드 값의 문자열 '가'반환
# [결과]
# chr(65) => 'A'
# chr(97) => 'a'
# chr(0xac00) => '가'
ord()
문자를 인자로 전달 받아 유니코드 값(10진 정수0)을 반환하는 함수
val = "A"
print("ord('{0}') => {1}".format(val, ord(val)))
# 문자열 'A'에 해당하는 유니코드 값 65를 반환
val = "a"
print("ord('{0}') => {1}".format(val, ord(val)))
# 문자열 'a'에 해당하는 유니코드 값 97를 반환
val = "가"
print("ord('{0}') => {1}".format(val, ord(val)))
# 문자열 '가'에 해당하는 유니코드 값 44032를 반환
print("hex('{0}') => {1}".format(val, hex(ord(val))))
# 유니코드 값 44032의 16진수 값 0xac00반환
# [결과]
# ord('A') => 65
# ord('a') => 97
# ord('가') => 44032
# hex('가') => 0xac00
hex()
10진 정수 값을 인자로 전달 받아 16진수로 변환된 값을 반환하는 함수
02_int() / float() / str()
int()
인자로 전달된 숫자 형식의 문자열, 부동소수점 숫자를 정수로 변환한 값을 반환하는 함수
float()
인자로 전달된 숫자 형식의 문자열, 정수를 부동소수점 숫자로 변환한 값을 반환하는 함수
str()
인자로 전달된 객체에 대한 문자열 변환 값을 반환하는 함수
x = "10"
y = "3c"
z = 4.5
print("2진수 표현인 문자열 '{0}' 은(는) 10진수 {1}로 변환됩니다.".format(x, int(x, 2)))
# => 10진수 2로 변환
print("16진수 표현인 문자열 '{0}' 은(는) 10진수 {1}로 변환됩니다.".format(y, int(y, 16)))
# => 10진수 60으로 변환
print("int({1})은 {0} {1}을 {2} {3}로 변환됩니다.".format(type(z), z, type(int(z)), int(z)))
# 정수로 변환
print("int({1})은 {0} '{1}'을 {2} {3}로 변환됩니다.".format(type(x), x, type(int(x)), int(x)))
# 문자열이 정수로 변환
print("str({1})은 {0} {1}을 {2} '{3}'로 변환됩니다.".format(type(z), z, type(str(z)), str(z)))
# 부동소수점이 문자열로 변환
# [결과]
# 2진수 표현인 문자열 '10' 은(는) 10진수 2로 변환됩니다.
# 16진수 표현인 문자열 '3c' 은(는) 10진수 60로 변환됩니다.
# int(4.5)은 <class 'float'> 4.5을 <class 'int'> 4로 변환됩니다.
# int('10')은 <class 'str'> '10'을 <class 'int'>10로 변환됩니다.
# str(4.5)은 <class 'float'> 4.5을 <class 'str'> '4.5'로 변환됩니다.
#04 객체 조사를 위한 함수
01_dir()
인자로 전달된 객체가 가지고 있는 변수, 메서드와 같은 속성 정보를 리스트 객체로 반환,
인자를 전달하지 않고 호출하면 현재 지역 스코프에 대한 정보를 리스트 객체로 반환
print("dir() => {0}".format(dir()))
# => 지역 스코프에 대한 정보를 리스트 객체로 반환
data_str = "Hello Python!"
print("dir(data_str) => {0}".format(dir(data_str)))
# => 문자열이 가지고 있는 많은 메소드 정보를 리스트 객체에 담아 반환
data_list = [10, 20, 30, 40, 50]
print("dir(data_list) => {0}".format(dir(data_list)))
# => 정수형 리스트 객체가 가지고 있는 메소드 정보들을 리스트 객체에 담아 반환
data_dict = {"key1": 10, "key2": 20, "key3": 30}
print("dir(data_dict) => {0}".format(dir(data_dict)))
# => 객체가 가지고 있는 메소드 정보들을 리스트 객체에 담아 반환
02_. globals() / locals()
globals()
현재의 전역 심볼 테이블을 보여주는 딕셔너리를 반환하는 함수
=> 전역변수와 함수, 클래스의 정보 포함
locals()
현재의 지역 심볼 테이블을 보여주는 딕셔너리를 반환하는 함수
=> 매개변수를 포함한 지역변수와 중첩함수의 정보 포함
class MyClass:
pass
def test_fn(param):
def inner_fn(): # 중첩함수로 inner_fn함수를 가짐
pass
val1 = 5
val2 = 8
for item in locals().items():
# => Locals함수가 반환한 딕셔너리 객체에 대해
# Items 함수로 리스트 객체를 얻음
print("\t{0} : {1}".format(item[0], item[1]))
# 첫 번째 항목인 키를, 두 번째 항목인 값을 접근해 지역 정보 출력
value1 = 10
value2 = 20
obj1 = MyClass()
g = dict(globals())
# => globals함수가 반환한 dict객체의 현재 상태를 복사해 g에 저장
print("globals()")
# => g의 items함수로 반환된 리스트 객체를 얻음
for item in g.items():
print("\t{0} : {1}".format(item[0], item[1]))
# => 튜플 객체인 각 항목에 대해 첫 번째 항목인 키, 두 번째 항목인 값에 접근해 전역 정보 출력
print("\n\nlocals()") # => test_fn함수를 호출하면서
# 인자 값 10을 전달해서 4~10행까지 차례대로 실행
test_fn(10)
# [결과]
# globals()
# __doc__ : None
# __package__ : None
# __loader__ : <frozen_importlib_external.SourceFileLoader object at 0x00000199623BD048>
# __spec__ : None
# __annotations__ : {}
# __builtins__ : <module 'builtins' (built-in)>
# __file__ : C:/users/ai/PycharmProjects/PythonPrograming/Lab09/09-10.py
# __cached__ : None
# MyClass : <class '__main__.Myclass'>
# test_fn : <function test_fn at 0x0000019962291EA0>
# value1 : 10
# value2 : 20
# obj1 : <__main__.MyClass object at 0x00000199624C9898>
# locals()
# val2 : 8
# val1 : 5
# inner_fn : <function test_fn.<locals>.inner_fn at 0x000001996264C29D8>
# param : 10
03_id()
인자로 전달된 객체의 고유 주소(참조값)를 반환하는 함수
x = 10
print("{0} x의 주소값: {1}".format(type(x), hex(id(x))))
y = 10
print("{0} y의 주소값: {1}".format(type(y), hex(id(y))))
z = "10"
print("{0} z의 주소값: {1}".format(type(z), hex(id(z))))
# [결과]
# <class 'int'> x의 주소 값 : 0x75126f00
# <class 'int'> y의 주소 값 : 0x75126f00
# <class 'str'> z의 주소 값 : 0x24b4827d110 # => x, y와 다른 객체의 주소를 가짐
04_instance() / issubclass()
instance()
첫 번째 인자로 전달된 객체가 두 번째 인자로 전달된 클래스의 인스턴스인지에 대한 여부를 True/False로 반환하는 함수
issubclass()
첫 번째 인자로 전달된 클래스가 두 번째 인자로 전달된 클래스의 서브클래스인지에 대한 여부를 True/False로 반환하는 함수
class Patent:
pass
class Chile(Parent): # Parent class 상속
pass
p = Parent()
c = Child()
print("p 객체는 Parent 클래스의 인스턴스 입니까? {0}".format(instance(p, Parent)))
# => True 반환
print("c 객체는 Child 클래스의 인스턴스 입니까? {0}".format(instance(c, Child)))
# => True 반환
print("c 객체는 Parent 클래스의 인스턴스 입니까? {0}".format(instance(c, Parent)))
# => True 반환
print("p 객체는 Child 클래스의 인스턴스 입니까? {0}".format(instance(p, Child)))
# => False 반환
print("Child 클래스는 Parent 클래스의 인스턴스 입니까? {0}".format(instance(Child, Parent)))
# => True 반환
'Study > Python' 카테고리의 다른 글
현재시간 가져오기 (0) | 2022.12.09 |
---|---|
#10_Python_2예외처리:예외 객체, 강제로 예외를 발생시키는 방법 (0) | 2022.12.08 |
#10_Python_1예외처리:구문오류와 예외, 예외 처리 방법 (0) | 2022.11.26 |
#9_Python_3내장함수:실행 관련 함수 (0) | 2022.11.16 |
#9_Python_1내장함수:수치 연산 함수, 시퀀스형 / 반복 가능한 자료형을 다루는 함수 (0) | 2022.11.15 |