python의 math에는 trunc가 있습니다. 이 함수는 소수 부분을 날린 결과를 돌려줍니다. 어떤 결과를 출력하는지 간단하게 알아보도록 하겠습니다. 먼저, math.floor(3.4)와 math.trunc(3.4)를 비교해 보겠습니다. 전자는 3.4보다 작거나 같은 수 중 제일 큰 수인 3을 리턴합니다. 다음에, trunc입니다. .4 부분을 날린 결과는 3이므로, 3을 돌려주겠군요. 결과를 보니까 3, 3으로 같음을 확인할 수 있습니다. n.x에서 소수 부분을 떼어내면 n이 됩니다. 이는 n.x를 넘지 않는 가장 큰 수와 동일합니다. 그러니, 양수일 때에는 floor와 trunc가 같은 결과를 냅니다. 그러면 모든 실수에 대해서 floor와 trunc는 같은 결과가 나올까요? 0보다 작은 실수를 ..
파이썬 검색 결과
최근의 python은 dictionary가 순서가 보장됩니다. 넣은 순서가 유지되는 특성이 있습니다. 여기서 궁금한 점. 그러면 어떻게 가장 먼저 넣은 키와 나중에 넣은 키를 알 수 있을까요? 파이썬의 dictionary와 orderedDict는 popitem 함수가 있습니다. 이 함수는 기본적으로 가장 마지막에 추가한 원소를 제거하면서 가져오는 역할을 합니다. 한 번 사용해 보겠습니다. 먼저, 1부터 4까지 순서대로 OrderedDict에 추가합니다. 다음에, 7번째 줄에 루프를 돌면서, popitem으로 가장 마지막에 추가된 원소를 빼오게 됩니다. 1부터 4까지 있었을 때에는 가장 마지막에 있었던 것이 4입니다. 따라서, 4가 빠질 겁니다. 다음에 1부터 3까지 있을 때에는 가장 마지막에 있던 것이 ..
이번 시간에는 실행 중인 파이썬 프로그램에서 디버거를 호출하는 방법을 알아보겠습니다. pdb는 python debugger입니다. foo 함수 안에, import pdb와 pdb.set_trace()를 입력해 보겠습니다. 사실 저 두 줄이면 됩니다. 다음에, python main.py를 입력해서, main.py를 실행시켜 보겠습니다. 그러면, foo() 함수 안의 5번째 줄의 print(x)에 멈춰있음을 확인할 수 있습니다. 이 지점에서 호출했기 때문에, 디버거가 해당 지점으로 진입하게 됩니다. 그리고 pdb shell이 하나 나오게 됩니다. 이제 help를 입력해 봅시다. 여러 가지 명령어들이 있습니다. 저는 이 중에, 현재 위치의 stack trace를 보고 싶습니다. 이 때에는 where를 입력하면..
파이썬에서 현재 프로세스의 pid와 쓰레드의 id 값을 어떻게 얻어올까요? 이 방법을 알아보겠습니다. 명령어는 window에 설치된 WSL-2, ubuntu 22.04 버전에서 실행하였습니다. 먼저, os.getpid()로 현재 프로세스의 pid (process id)를 얻어올 수 있습니다. 실행해 보겠습니다. python3 test.py를 실행시켜 보니, 130이라는 값이 출력됩니다. pstree가 깔려 있다면, pstree -p로 부모 프로세스와 자식 프로세스들을 한눈에 볼 수 있습니다. python3(130)이라고 되어 있습니다. 이는 python3 프로세스의 pid가 130이라는 것을 의미합니다. ps -aux 명령어를 입력해 보겠습니다. python3 ~ COMMAND를 입력해서 실행시킨 프로세..
안녕하세요. 이번 시간에는 프로그램에 필수 인자와 선택 인자 옵션을 주기 위해 쓰는 argparse에 대해서 알아보고자 해요. 상당히 방대하지만, 필요하다 싶은 것만 빠르게 추려보도록 할게요. 먼저 예제 1번입니다. argparse.ArgumentParser()로 파서를 하나 생성합니다. 다음에, add_argument로 argument 2개를 생성할 거에요. a와 b입니다. 이 둘은 필수 인자들이 되겠습니다. 다음에, 6번째 줄에 parser.parse_args()로 들어온 인자들에 대한 정보들을 리턴하는데요. 이를 vars로 딕셔너리로 변환합니다. 7번째 줄에, 인자 "a"와 "b"에 들어온 수를 합해서, 결과를 출력해요. python main.py를 입력해 봅시다. 그러면, a와 b가 필요한데 없어..
최근댓글