postgresql에서 insert, update, delete를 할 때 정말 insert, delete, update 등이 되었는지 알고 싶습니다. 쿼리를 실행한 결과를 가지고 오고 싶을 때 returning을 쓰는데요. 이를 통해서 불필요한 쿼리를 방지할 수 있습니다. 간단하게 예제를 보면서 알아보겠습니다. 먼저, c 테이블에 필드 a의 값이 11인 레코드를 추가합니다. 추가된 레코드(Row)를 리턴하는데요. 이 레코드에서 어떤 속성을 가져올 것인지를 적어주면 됩니다. 결과는 id가 11이 나왔습니다. 이는 id가 11인 Row가 추가되었다는 것을 의미합니다. 이제, returning id, a를 입력해 보겠습니다. 그러면 어떻게 나올까요? id가 12이고 a가 11이라고 하네요? 이는 속성 id가 ..
코딩 검색 결과
python에서 정말 긴 문자열을 여러 줄에 걸쳐서 표현할 수 있는 방법이 없을까요? 가장 먼저 생각해 볼 수 있는 방법은, 배열로 만든 다음에 "".join으로 연결해 버리는 것입니다. 위 예제를 보겠습니다. 문자열을 이루는 문자열들을 str_set에다가 모아 놓았습니다. 다음에 "".join으로 str_set에 있는 문자열들을 모두 join해서 출력하게 됩니다. 출력 결과를 보겠습니다. abcdef가 나오는군요. 그런데, (로 감쌀 수도 있습니다.위와 같이 입력해 봅시다. 그래도 똑같이 나옵니다. 긴 문자열도 2가지 방법으로 깔끔하게 정돈할 수 있습니다. 당연하게도 이 방법을 응용하면 여러 줄로 이루어진 문자열도 깔끔하게 선언할 수 있습니다. (를 이용한 방식을 봅시다. 뒤에 "\n"을 붙여주었습니다..
안녕하세요. 이번 시간에는 datetime.datetime에 있는 astimezone 함수에 대해서 알아봅시다. 현재 제 컴퓨터의 표준 시간대는 UTC +09:00 서울입니다. utc 시간대보다 9시간 빠르다는 의미입니다. datetime.strptime은 문자열을 datetime.datetime으로 바꿔줍니다. 4번째 줄에서 v.tzinfo를 출력합니다. 다음에, pytz의 timezone을 이용해서 타임존을 "America/New_York"으로 바꿔주는데요. 여기서 중요한 것은, UTC 시간은 같지만, 로컬 시간에 맞춰서 변경됩니다. 이게 무슨 소리인가? 기준 시간은 같지만 로컬 시간이 다르다는 의미입니다. utc 시간은 같지만, 이를 지역 시간에 맞춰 출력한다는 이야기입니다. 출력 결과를 보면서 이..
실수 x가 0보다 크거나 같을 때 소수점 n째 자리에서 버림, 올림을 하는 방법을 알아보겠습니다. 먼저, math의 floor와 ceil에 대해서 간단하게 알아봅시다. floor는 x보다 작거나 같은 수 중, 가장 큰 것을, ceil은 x보다 크거나 같은 정수 중 가장 작은 것을 돌려줍니다. -1.3이 있습니다. 이것보다 작거나 같은 수들에는 -2, -3, ... 이 있습니다. 이들 중 가장 큰 것은 -2이니, floor(-1.3)은 -2가 리턴됩니다. -1.3보다 큰 것은 -1, 0, 1 .. 이 있습니다. 이 중, 가장 작은 것은 -1이므로 ceil(-1.3)은 -1이 됩니다. 다음에 -1보다 작거나 같은 수는 -1, -2, ... 가 있어요. 이 중 제일 큰 것은 -1이니 floor(-1)은 -1이..
이번 시간에는 실행 중인 파이썬 프로그램에서 디버거를 호출하는 방법을 알아보겠습니다. pdb는 python debugger입니다. foo 함수 안에, import pdb와 pdb.set_trace()를 입력해 보겠습니다. 사실 저 두 줄이면 됩니다. 다음에, python main.py를 입력해서, main.py를 실행시켜 보겠습니다. 그러면, foo() 함수 안의 5번째 줄의 print(x)에 멈춰있음을 확인할 수 있습니다. 이 지점에서 호출했기 때문에, 디버거가 해당 지점으로 진입하게 됩니다. 그리고 pdb shell이 하나 나오게 됩니다. 이제 help를 입력해 봅시다. 여러 가지 명령어들이 있습니다. 저는 이 중에, 현재 위치의 stack trace를 보고 싶습니다. 이 때에는 where를 입력하면..
최근댓글