반응형 Programming/Python11 파이썬 eval() exec()함수와 취약점 발생 가능성 파이썬에는 명령문, 식 등을 실행시켜주는 내장함수가 존재합니다. eval, exec, compile함수가 있습니다. 1. exec( )&eval( ) 1.1 exec 함수 파이썬 코드 동작시 동적실행에서 사용될 수 있습니다. 문자열, 코드객체를 인수로 받습니다. 문자열의 경우 분석을 한뒤 실행하고 코드객체는 바로 실행됩니다. 반환값은 None (반환을 하지 않습니다.) 실행만을 위해 사용하는 함수입니다. exec(object, globals, locals) # object = 'print("hello world")' globals, locals는 선택사항입니다. 딕셔너리 객체로 받을 수 있습니다. 1.2eval 함수 eval은 인수로 표현식을 받습니다. 표현식을 받아 코드 동작중에 표현식을 실행합니다. .. 2022. 8. 31. 파이썬 math 패키지 (삼각함수, 상수, 로그 사용) math 패키지 고급 수학 함수나 과학 관련 함수가 필요할 때 사용하는 패키지입니다. 파이썬이 설치될 때 같이 설치되어 따로 설치할 필요 없이 바로 사용 가능합니다. pi나 e 같은 특수한 상수 값도 제공합니다. math 패키지 카테고리 삼각함수 : sin, cos, tan 등 기본 삼각함수 역삼각함수 : asin, acos, atan 등 역삼각 함수 하이퍼 삼각함수(쌍곡선) : sinh, cosh, tanh와 asinh 등 쌍곡선 형태의 삼각함수 각도와 라디안 : 흔히 쓰는 각도(º)와 π 같은 라디안 값으로의 변환 각도가 친근할 수 있으나 삼각함수에서는 라디안 값을 사용하므로 라디안으로 변환이 필수적임 로그 : 밑이 2와 10, e 등의 로그를 지원 정수 변환 및 기타 : floor와 ceil 같은 .. 2021. 11. 6. 파이썬 random 패키지 파이썬 프로그래밍을 하다 보면 난수를 필요로 하는 시점이 발생합니다. 파이썬에는 파이썬을 설치하면서 random패키지도 같이 설치되어 따로 모듈을 설치하지 않고 random 패키지를 탑재할 수 있습니다. random 패키지는 단순 난수 도구 이외의 통계에 필요한 간단한 도구를 제공합니다. 간단한 난수 구현기이며 매우 완벽한 100% 난수가 아닌 의사 난수입니다. Random 패키지 함수 random() random.random() 1을 제외한 [0,1) 사이의 실수 무작위 수를 생성합니다. randint(a, b) random.randint(a,b) 동일한 확률로 a~b 범위에 무작위 정수를 반환합니다. b를 포함한 범위이므로 [a, b]입니다. shuffle(list) random.shuffle(lis.. 2021. 10. 31. 파이썬 바이너리 파일 입출력 struct와 pickle 바이너리 파일 입출력은 저수준 방식의 파일 입출력을 사용하는 방법입니다. 바이트 열을 다루게 됩니다. 기본적으로 텍스트 파일 입출력과 사용방법이 동일합니다. 옵션에 바이너리 모드인 것을 명시해주면 됩니다. with open('s.txt','wb') as ori: ori.write(b'1234') 바이너리 데이터를 다루기 위해서 struct, pickle 패키지 등의 패키지를 알게 되면 다루기가 수월합니다. 바이너리를 다루는 만큼 저수준 데이터를 다루므로 운영체제, 시스템, 언어에 대한 이해도가 있으면 좋습니다. struct 패키지 파이썬으로 다루지 않은 바이너리 파일을 다루려면 struct 패키지를 사용하는 것이 좋습니다. 바이트 문자열로 pack, unpack 함수가 있습니다. c의 구조체 형식으로 저.. 2021. 9. 25. 파이썬 파일 입출력과 포인터 사용하기 파일 입출력 파이썬에는 기본적으로 텍스트 모드로 파일을 입출력할 수 있습니다. 텍스트 모드와 16진수 단위로 다루는 바이너리 모드로 사용할 수 있습니다. 바이너리 모드는 저수준 모드로 원시 데이터를 직접 다룹니다. 여기에서는 파일 입출력에 대한 도구, 기능들을 다룹니다. open('test.txt','r') as file: #file=open('test.txt','r') 과 동일 text=file.read() close(file) 일반적으로 다음과 같이 사용한다. 파일 입출력이 끝난 후 close로 마무리해줘야 합니다. with 키워드 with 키워드는 사실상 파일 입출력에 있어서 같이 쓰는 것이 좋습니다. with 키워드를 사용하면 close를 사용하지 않아도 됩니다. 만일 예외가 발생하여 파일 입출력.. 2021. 9. 18. 파이썬 format 메서드 다양한 포매팅을 돕는 메서드 % 포맷팅보다 더 정교하고 완벽하게 표현하려면 format 메서드를 사용하면 됩니다. 문자열 객체의 기본 제공 메서드로 '문자열'.format(인수들) 또는 문자열 변수 s.format(인수) 형태로 사용이 가능합니다. 물론 아무 문자열이나 다 되는 것은 아니고 포맷이 지시된 문자열이어야 합니다. 변수로 사용하던 문자열 그 자체로 사용해도 똑같습니다. format 메서드 가장 간단한 예입니다 print('{}+{}={}'.format(15,5,20)) 당연하겠지만 문자열 '내용' 부분은 하나의 객체이고 format 메서드를 통해 포매팅하는 것입니다. {} 안에는 어떤 자료형도 상관없이 사용 가능합니다. 변수를 통해 사용하는 것도 가능합니다. 중괄호 자체를 출력하고 싶다면 {{ 혹은 }}로 두 번 연달아 .. 2021. 8. 22. 이전 1 2 다음 반응형