python에서 os의 environ이 무엇을 담고 있는지 간단하게 알아보겠습니다. 먼저, cho로 로그인 한 쉘입니다. 변수 CHO의 값을 출력해 보니 3이 나왔습니다. 다음에 root 쉘로 로그인 했습니다. 마찬가지로 쉘 변수 CHO를 출력해 보니, 10이 나왔습니다. 여기서 중요한 것은 cho로 로그인이 된 쉘의 CHO와 root 쉘의 CHO의 값이 달랐다는 점입니다. 이제, os의 environ으로부터 변수 'GH'의 값을 얻어봅시다. 1.py에, 그러한 일을 수행하는 코드를 작성하였습니다. 단 두 줄이면 얻어낼 수 있습니다. 이 코드는 'GH'의 값을 얻어냅니다. cho로 로그인 한 쉘에서는 3을 출력합니다. 그런데, root로 로그인 한 쉘에서는 10을 출력합니다. 이를 토대로 추측할 수 있는..
코딩/파이선 검색 결과
오랫만입니다. 이번 시간에는 파이썬의 sys.path에 대해 간단하게 알아보겠습니다. 먼저, testmodule 프로젝트를 하나 만들었습니다. 프로젝트의 구조는 main.py가 있고, t1 패키지 아래에 cron.py가 있는 구조입니다. cron.py에 있는 test_cron은 test_cron_1을 출력합니다. t1.cron으로부터 test_cron을 import 하면 의도대로 잘 동작할까요? 같은 프로젝트 폴더 내에 있으니, 잘 찾아갈 겁니다. test_cron_1이 잘 출력됩니다. 이제, 제가 testmodule2라는 프로젝트를 새로 하나 만들었습니다. t2라는 패키지가 있고요. 그 아래에 cron.py가 있습니다. 이 파일 안에는 test_cron 함수가 있습니다. testmodule1에 있는 m..
파이썬에서 dict는 꽤 많이 사용합니다. 키에 대응되는 값을 찾고 싶습니다. 어떻게 하면 좋을까요? 이번 시간에는 dictionary를 index로 접근하는 방법과 get 메서드로 접근하는 것의 차이점을 알아보겠습니다. 그리고 키가 없을 때 get 함수를 이용해서 어떻게 디폴트 값을 얻는지도 알아봅니다. 먼저 딕셔너리 d에는 키 값이 1이고 값이 1인 쌍과 키 값이 2이고 값이 2인 쌍 2개가 저장되어 있습니다. d[1]은 키 값이 1인 것의 value 값을 뽑아내는 것입니다. 1이 나오네요. 이건 당연합니다. 그러면, 이 경우는 어떨까요? 3이라는 키는 없으니까 딕셔너리에서 3을 꺼내와 봅시다. 해당 코드는 위와 같이 작성할 수 있습니다. 그랬더니 KeyError 에러가 납니다. 이는 3이라는 키가 ..
python에서 2개의 set에 대해서 합집합, 교집합, 차집합, 대칭 차집합 등을 구하고 싶을 때가 있습니다. 어떻게 구하면 될까요? 먼저 set A에 속하지만, set B에 속하지 않는 원소들을 모두 구해봅시다. 그러려면 A에서 B를 빼면 됩니다. 3번째 줄에 C = (A - B)라고 했는데요. 이는 A와 B의 차집합을 구하라는 의미입니다. 이는 A에서 A와 B의 교집합을 빼는 것과 같습니다. A와 B의 교집합에 속하는 원소는 2이므로, A에서 원소 2가 빠지면 {1, 4}가 됩니다. 결과는 예상한 대로 나왔음을 알 수 있습니다. 교집합을 구해 봅시다. (A & B)는 set A와 set B의 교집합을 구합니다. A와 B 집합에 동시에 속하는 원소는 2입니다. 따라서 2만 출력됩니다. A 또는 B에 ..
제가 3회 코딩테스트 문제에 출제했던 가희와 무궁화호는 처음에 실수 민감형이였습니다. 어떤 버전이였는지는 old version의 코드를 보시면 대략 감이 오실 듯 싶어요. 부동 소수점은 0.1, 0.2 등을 정확하게 저장하지 못합니다. 정확하게 저장하려면 고정 소수점 등을 이용해야 합니다. 파이썬에서는 Decimal을 쓰면 그러한 일을 할 수 있습니다. 당연하게도 현재 버전의 풀이가 아닙니다. 이 글에서는 단지, 엄청나게 작은 오차도 허용하지 말아야 하는 경우에 파이썬에서는 어떻게 해야 하는지에 대해서만 언급하겠습니다. 24336번의 원래 버전은 눈치 채셨겠지만, 표정 속도를 소수점 첫째 자리에서 버림한 값을 출력하라 했습니다. 이게 실수 민감형인가요? 라고 물어보실 수도 있습니다만, 매우 쉽게 실수 오..
최근댓글