인생 첫 차를 드디어 버리게 됐다. 첫 주인은 2012년에 이 차를 샀다가 중고차매장에 넘겼고 나는 이것을 2014년에 구입해 8년을 타고다녔다.
새차는 못 타도 똥차는 안 탄다고 엄청 관리를 열심히 해서 어디 긁을 때마다 자비로 수리하고 엔진도 하부도 매우 신경써서 출고 10년이 지난 지금도 멀쩡한데 아주 가끔 스피커에 음악이 안 날 때가 있다. 여느 때면 그냥 그러려니 했을 텐데 왠지 며칠 전은 에라 차 바꿔야겠다 괜히 그런 생각이 들어서 바로 질렀다.
그렇게 애지중지 타고다니던 차였지만 폐차를 할 수 밖에 없었다. 10년된 국산 준중형 차는 상품 가치가 없단다. 아니 이렇게 멀쩡한 차가 상품 가치가 없다니. 소리도 조용하고 주행감도 이렇게 멀쩡한데? 근데 뭐 나도 안 타니까 할 말이 없다. 10년된 차는 매물이 많다고 한다. 다들 10년 쯤 되면 나처럼 바꾸나보다.
70만원에 팔린다는데 폐차하면 50만원을 준단다. 70만원에 사가는 사람도 나중에 폐차 비용 50을 챙길 테니, 실질적으로는 20만원에 사는 셈이다. 그러니까 대한민국에서 차라는 물건은 공짜나 다름없는 것이다. 유지비만 좀 들어갈 뿐. 차나 집이나 관리하고 깨끗히 쓰려니까 돈이 들어가지 그냥 버리려면 돈도 안 든다.
처음 차를 살 때는 중고차 매장에서 경차를 사려다가 당시로서는 조금 무리해서 준중형을 산 건데, 정말 그러길 잘했다. 경차였으면 회사 업무를 나갈 때도 그렇고 데이트를 할 때도 그렇고 조금 서운했을 것이다. 별로 좋은 차도 아니지만 이거 타고 다니면서 자신감을 잃은 적은 없었다.
아무런 근거도 없이는 자존감이 생기기 어렵다. 사람의 마음은 환경과 물질의 지배를 받는다 .이 차 한대라도 가지고 있었던 것이.. 그래도 내 인생에 자유를 보장해주었다.
이렇게 글을 쓰면서 올려놓은 사진을 보고 있으니까.. 역시 옛날 추억이 떠오른다. 졸음 운전으로 고꾸라졌던 생각도 나고. 빗길에서 한바퀴 반 돌았던 생각도 나고. 그러나 역시 .. 뭐.. 옆자리에 태웠던 여자 생각이 나네. 많이는 못 태웠어도, 그래도 앉혀 놓고 잼있게 놀던 시절이 있었는데.
근데.. 솔직히 다 잊어버리고 별로 생각도 안 난다. 나의 30대, 그 추억을 함께한 차가 버려지면서 기억도 같이 멀어져간다.
두 번째 차는 예전부터 가지고 싶었던 렉서스 CT200h 이다. 나는 차에 관심은 없지만, 그래도 바꾼다면 이런 차 사고 싶다고 이따금 생각했던 게 CT라서.. 근데 단종됐네? 중고 매물 올라온 거 바로 질렀다. 운전 스트레스가 워낙 심해서 큰 차는 절대 사양이고 작은 차 중에서 가장 좋다고 하는 차를 내 나름 골라두었던 것이다.
그래서 무척이나 기뻐야 하는데, 차만 있어도 행복한 시절은 지나서인지 신나는 마음보다는 걱정이 많다. 집 사는 데 보탰어야 할 금액을 또 메우려니까 그렇고. 이제는 이 정도 차 샀다고 뽐내고 자랑할 처지도 아니고. 그래도 지금이 아니면 언제 또 외제차를 사보나, 나이들면 더 못 살 텐데, 그런 생각이 드니까 비싼 건 아니라도 이 정도는 질러보자 싶더라.
나이가 들 수록 뭘 해도 행복하지가 않다. 행복은 저축이 안 된다. 그 시절에 느낄 행복은 그 시절에만 느낄 수 있다. 지금 행복한 것도 지금 뿐이니, 현재에 감사해야지.
가끔 마포대교에 설치됐었던 자살 방지 문구가 조롱의 대상이 되곤 한다.
'수영 잘 해요?'
이 문구가 상대를 조롱하는 느낌이 든다는 것이다.
그러나 내가 생각할 때는 나쁘지 않다. 우선 자살하려는 사람들은 물에 빠지면 그 다음에 어떻게 되는지를 별로 생각하지 않는다. 그러나 물에 빠지면 춥고 물먹고 고생이 많다. '수영 잘 해요?' 문구는 이런 구체적인 상황을 떠올리게 만든다. 또한 도발을 당해서 욱 하는 심정이 든다면 그것만으로도 자살 생각을 잊게 만들 수 있다.
'뛰어봐 ㅋ 쫄보새끼'
'헬조선 경쟁자 제거www'
'하하하하하하하하하하'
이런 문구들도 다 자살하려는 사람을 도발하기 위한 것들이다.
사실 그 밖의 문구들도 그냥 문장 자체만으로 의미가 있다. 자살하려는 사람이 바로 뛰어내리지 않고 뭐라도 생각할 수 있게끔 시간을 주는 것이다.
나도 10대 20대때는 수도 없이 자살 충동에 시달리다가 서른 살 즈음에야 자살 생각을 덜 하기 시작했다. 짧게 봐도 그렇고 길게 봐도 그렇고 자살을 막는 것은 역시 그냥 시간을 보내는 것이었다. 기왕이면 바쁘게. 20대 시절에 우울증에서 벗어난 기간이 두 번 있었는데, 한 번은 군대에 있을 때였고, 한 번은 동아리 회장으로 있던 때였다. 그 둘의 공통점은 바쁘게 할 일이 많다는 것이었다. 군대에서 너무 정신없고 바쁘니까 내가 바깥에서 왜 슬퍼했는지, 뭐가 문제였는지 잊게 되더라. 그리고 바쁘게 인생 살다 보니까 그냥 다 잊어버리게 되더라.
어쩌면 멍청해진 것일 지도 모르겠다. 자살 생각과 더불어서 감정도 메마르고 실제로 머리도 나빠졌다. 예전에는 술술 쓰던 시나 글도 지금은 잘 쓸 수 없다. 어렸을 때는 작곡을 잘 했었는데 이젠 그것도 못 하게 됐다. 말도 많이 느려지고 집중력도 떨어졌다. 우울증에 걸리면 뇌가 가진 사고력의 반절을 잃게 된다는데, 우리의 뇌는 그렇게 자기 자신을 치유하나보다.
이것 말고 자살을 막는 데 가장 큰 영향을 준 것은 종교이다. 10대와 20대를 종교적 사명으로 죽지 않고 억지로 살았다. 나 자신보다 더 중요한 것이 있다, 세상을 구원하는 일이다, 이렇게 생각하고 살았는데, 그 표본이 예수그리스도이고, 그래서 예수 따라서 산다고 하여튼 살았다. 살다 보니 살아남았다. 또한 돌이켜보면 그 때 옆에서 같이 교회다니던 친구들은 그들 나름대로 최선을 다해서 나를 돌봐주었다. 아무런 보상도 없이 나처럼 질척거리고 더러운 영혼과 말을 섞고 투정을 받아주고 감싸 안아줬던 것은 분명 종교가 아니면 할 수 없는 일이다. 종교의 위대함은 no cost에서 나온다. 아무런 댓가 없이 용서받을 수 있다.
사람들은 자살에 대해서 뭘 알기나 하고 자살 예방 문구를 조롱하는 것일까? 자살하려는 사람을 단 1주일이라도 끈질기게 설득을 해본 적이 있을까? 자살을 막는다는 게 어떤 건지 알지도 못하지. 우울과 상실의 깊이가 어떤 건지 모르지, 알 리가 없지.
한 가지 더 조롱받는 것이 있다.
'멈춰!'
주변에서 괴롭힘을 당하는 친구가 있을 때, 다같이 이렇게 외치라는 것이다.
방법이 우스꽝스러운 걸까? 아니면 그런 걸 누가 하느냐고 실효성을 말하는 것일까? 실효성은 없을 수 있다. 아무도 그렇게 하지 않을 테니까. 그럼 왜 아무도 그렇게 안 하느냐고 따져야 옳다. 방법이 잘못되진 않았다.
내가 괴롭힘을 당할 때, 반에는 세 가지 종류만 있었다. 나, 날 괴롭히는 사람, 그리고 나 괴롭힘 당하는 걸 구경하는 사람. 실제로 괴롭힘을 당할 때, 누군가 멈춰! 했더라면.. 아니면 그거 그러지 말라고 내 편을 조금이라도 들어줬다면, 괴롭힘이 아예 멈추진 않았을지라도 나는 마음의 상처를 덜을 수 있었을 것이다. 괴롭힘 당할 때 가장 큰 문제는 괴롭힘 그 자체가 아니라 세상 천지에 내 편이 없다는 것이다.
딱 한 명 기억나는 친구가 있다. 이진혁, 깜바. 내가 기억한다. 늘 그랬던 건 아니지만 내가 괴롭힘 당할 때 한 번인가 야 야 그만 좀 해라~ 한 마디 해준 거. 평생 고마워한다. 얼마나 든든했던가.
사실은 나에게도 기회가 있었다. 내 친구 손명수가 옆반 애한테 멱살이 쥐어지고 협박을 당하는데, 나는 그냥 보고만 있다가 나중에 명수야 괜찮다 라며 위로를 해줬다. 지금의 나라면 바로 주먹을 날려서 옆반 새끼를 단 한 대라도 쥐어박았을 텐데. 그렇게 했어야 했다. 왜 나는 비겁하게 구경만 했을까. 그 때는 너무 몰랐어, 사람은 때리면 안 되는 줄 알았어. 절대 다른 사람은 안 때린다고.
용기를 낸다는 게, 그렇게 어려운 일이다. 지혜도 어렵다.
와콤 원 산다.
아니 와콤 원을 그냥 살걸 괜히 이것 저것 써본다고 다른 거 샀다가 후회만 막심하다.
와콤 원과 비교하여 리뷰를 써 본다.
XP-PEN의 장점은 전면에 달린 인터페이스다.
그리고 옆면에 달린 밝기 조절 버튼이다.
그리고 펜이 2버튼이다.
그리고 가격이 더 싸다.
단점은?
1. 화질 - 일반 모니터에 비해 완전히 떨어지는 색표현력을 가지고 있다. 딱 켜자마자 느껴지는 우중충함... 이에 반해 와콤 원은 LG노트북급 화질이다. 비교해봐도 전혀 나쁘지 않다.
2. 펜 - Artist 13.3의 펜은 굵기가 굵고 펜촉이 길다. 펜촉이 길어서 보는 것과 쓰는 것과의 차이가 종종 느껴진다. 가장 큰 단점은 펜촉이 흔들린다는 것이다! 그래서 펜은 열심히 움직이는데 글씨가 제자리에서 안 움직인다.
3. 베젤 크기 - 스마트폰 베젤에 익숙해져 있다가 와콤 원 보고 이게 웬 떡대냐 하고 깜짝 놀랐는데... Artist13.3은 한술 더 뜬다. 생각해보면 어느 정도 베젤 크기가 있어야 화면 외곽에 글씨를 쓸 때 편하긴 하다. 그래도 좀 심했다.
4. 지우개 - 지우개 버튼이 푸시 푸시 토글 방식이다... 이에 비해 와콤 원은 누르면 지우개 떼면 펜. 와콤쪽이 더 편하지.
모든 단점 중에 확실히 XP-PEN 못 쓰겠다고 생각한 부부은 역시 펜촉의 흔들림이다. 화질이고 뭐고는 다 참을 수 있어도 글씨가 제대로 안 써지니까 도저히 참을 수 없다...
와콤원에 대한 본인 리뷰는 여기..
파일을 정리하다 발견했다. 이게 몇년 전이냐. 코딩하다가 갑자기 딴 생각이 들어서 작사나 해본다고 할머니를 생각하며 만든 가사인데. 전국 노래자랑이라도 우리 동네 오면 불러볼까 하고 만들었다. 근데 ㅋㅋㅋ 사실 왔었는데 내가 몰랐지. 나한테 왜 얘기도 안 하고 왔을까.
둘째 며느리라고 되어있는데 사실은 둘째 부인이다...
################################################
# 우리 할머니 둘째 며느리로 시집와서
# 아흔이 넘도록 고생만 하셨소
# 일곱자식 도시락을 싸느라고 소풀을 뜯느라고
# 시아버지는 방에서 꼼짝도 안하고 반찬 투정만 한다고
# 몸이 열 개라도 모자란데 어린 아버지가 칭얼댈 때
# 우리 아버지를 그렇게 때렸다고 때리기만 해서 미안하다고
# 할머니는 걱정이 너무 많구랴
# 겨울에는 여름 걱정 여름에는 겨울 걱정
# 나가도 걱정 들어와도 걱정
# 그놈의 자식 걱정에 재미라도 들리셨소
# 기어코 마지막 하는 소리가 겨우 추워서 어떻햐
# 나 출근하는 길 걱정하는 소리였소
# 그러다 큰일난다 죄다 말려도
# 할머니 고향에 내 기어코 모시고 갔지요
# 옛날에는 여기가 전부 논밭이었다며
# 아직도 할아버지 친구 자식들 그대로 산다며
# 할머니는 어디 살았나요 물어보니
# 몰라~
# 조상 잘 모시면 자손들 잘 살게 도와준다는데
# 할머니가 나를 잘 살게 해준다고?
# 하이고 됐소 마 할매나 잘 사시오
닷넷 프레임워크에서는 프로젝트에 이미지를 포함시키면 자동으로 리소스에 추가가 됐다. 그런데 닷넷 5로 넘어오면서 이미지 리소스를 직접 추가해줘야 한다.
<ItemGroup>
<Resource Include="Images/hat.png" />
<Resource Include="Images/arrow.png" />
<Resource Include="Images/pen.png" />
<Resource Include="Images/eraser.png" />
<Resource Include="Images/clear.png" />
<Resource Include="Images/overlay.png" />
<Resource Include="Images/setting.png" />
<Resource Include="Images/exit.png" />
<Resource Include="Images/info.png" />
</ItemGroup>
솔루션 익스플로러에서 프로젝트를 더블클릭하면 xml 문서가 보인다.
여기에 위와 같이 추가하면 된다.
그래도 안 보이면 솔루션을 다시 빌드한다. 상단메뉴 [빌드] -> [솔루션 정리] 후 다시 실행.
그리고 코드 비하인드에서 동적으로 상대경로 이미지가 나타나지 않을때, https://ladofa.blogspot.com/2024/03/wpf-relative-image-path-problem.html 여기 참조.
오렐리앙 제롱 지음
박해선 옮김
rickiepark/handson-ml2: 핸즈온 머신러닝 2/E의 주피터 노트북 (github.com)
내가 강의할 때 쓰는 책이다. 먼저 강의 용도로 말하자면 120시간 강의를 해도 다 설명하지 못할 정도로 내용이 방대하기 때문에 시간 걱정할 필요가 없다는 게 장점이다. 책에 있는 내용 전부 다 코랩에서 실행 가능하고, 소스 코드를 전부 깃허브로 오픈했기 때문에 수강생들이 공부하기도 편하다.
딥러닝에 대한 학문 체계를 살펴보면 인공지능 > 패턴인식 > 머신러닝 > 신경망 > 딥러닝 순으로 되어 있다. 여기서 골치아픈 통계와 확률을 다루는 패턴인식은 건너뛰고 현실적으로 딥러닝에 쓰일만한 요소들만 모아서 머신러닝을 설명한다. 그리고 고전이라고 할 수 있는 SVM, 앙상블, 클러스터링, PCA 를 소개하고 딥러닝으로 넘어간다. 딥러닝 파트에서는 텐서플로우-케라스를 기반으로 하여 영상처리, 시계열처리, 인코더-GAN, 강화학습 까지 충분한 범위의 주제들을 고루 다루고 있다.
이 책은 풀스택 개발자에게 좋다. 여기서 풀스택이란 연구에서부터 응용개발까지 아우른다는 뜻이다. 단순 사용자가 아닌 연구자를 위해 머신러닝의 기본 개념에서부터 차근차근 설명하는 책이며 나름 골치아픈 수식과 그림이 등장한다. 소스코드도 단순 사용자를 위한 것이 아니기 때문에 API 사용법을 친절하게 보여주는 것이 아니라 원하는 연구 방향대로 커스터마이징을 할 수 있도록 상당한 수준의 로우 레벨까지 커버한다.
저자는 어떻게든 방대한 머신러닝과 딥러닝의 세계를 한 권의 책, 900여 페이지에 담아보려 했다. 다양한 내용을 담고 있다보니 개별 항목에서는 다소 불친절한 부부이 있다. 기본적인 수학적 사고와 바탕은 갖추어야 혼자서 공부가 수월할 것이다. 기초적인 선형대는 할 줄 알아야 하고, 넘파이는 좀 해야 한다. 판다스는 몰라도 큰 지장이 없다. 이런 류의 책은 처음부터 끝까지 다 이해하기는 좀 어렵다. 그러나 소스를 실행해보면서 천천히 발을 담궈보기에는 매우 좋다. 누군가는 이렇게 말했다, '어려운 내용은 없다, 어려운 설명이 있을 뿐이다'. 그러나 나는 이렇게 말하고 싶다, '나의 부족함을 가지고 저자에게 화풀이하지 말라'. 이해할 수 있는 만큼만 이해하고 나머지는 내버려둔다 해도 책은 책으로서의 가치를 다 한 것이다.
기초가 부족한 사람들은 깃허브에 올려진 추가 내용을 보면 좋다. 넘파이와 판다스를 집중 공부할 수 있는 예제가 실려있다. 심지어는 자동미분에 대한 내용도 보충설명이 되어 있다.
박해선 선생님이 책을 번역한 것도 모자라서 깃허브 소스코드도 번역해놨다. (2판 추가 부분은 번역이 안 되어 있음) 직접 촬영해주신 강의 동영상도 있다. 공부하기 너무 좋다.
고성에 막국수로 유명한 집 거기가 있긴 한데 웨이팅도 길고 해서 아무데나 간 곳이 천진봉평막국수.
가게는 겉으로 보면 김밥천국마냥 매우 평범하고 깔끔한 모양새. 어디 수려한 자연 속 가든이 아니라 그냥 길가에 있는 식당이기 때문에 분위기 있는 곳은 아니다.
자고로 막국수란 만능양념이라고 할 수 있는 초고추장을 베이스로 하여 짠맛, 단맛, 신맛, 매운맛이 모두 결합된 단짠매신의 음식이다. 거기다 고기육수까지 들어가기 때문에 무슨 놈의 맛이라도 어떻게든 맛이란 것이 나기 마련이며, 면의 식감만 나쁘지 않다면 어딜 가든 평타는 하는 음식이다. 그럼에도 너무 싱겁다든지, 너무 짜다든지 너무 달다든지 맵다든지 하여 균형을 잃고 입맛 버리는 막국수가 한 둘이 아니다. 여기 막국수는 매우 균형잡힌 과하지도 모자라지도 않은 배합에 달달한 육수 + 김을 추가하여 훌륭한 맛을 보여준다. 비빔막국수를 시켰는데 얼음육수를 같이 주기 때문에 원한다면 물냉처럼 먹을 수도 있고 양념맛을 싱겁게 해주는 효과도 있다. 반대로 더 강한 맛을 원하다면 상에 차려진 겨자, 매운양념, 설탕을 이용하여 얼마든지 좋아하는 맛으로 변경 가능. 즉, 훌륭한 베이스에 다채로운 커스터마이징이 가능하다 하겠다. 추가 양념을 두는 것에 모자라서 설탕까지 준비해둔다는 것은 전국 각지에서 몰려오는 강원도 관광객들의 다채로운 팔도입맛을 모두 커버하려는 사장님의 결연한 의지가 아닐까 싶다.
그리고 국수 양도 충분해서 배부르고 든든한 식사가 가능하다. 사이드를 시킬 경우 너무 억지로 다 먹지 말자.
만두는 그냥 평범하게 맛있고, 수육은 매우 부드럽다. 할머니 할아버지들이 좋아하는 부들부들한 고기. 고기향과 허브향이 잘 배합되어 이상적인 밸런스를 보여준다.
쌈채소로 어린 양배추가 나왔는데 이거는 계절마다 다를 수도 있겠다.
위치는 강원도 고성군 어딘가... 에 있겠지 뭐.
C언어에서는 bool 타입이 따로 존재하지 않는다. 0이면 false, 그렇지 않으면 true이다. 심지어는 float도 피연산자로 참여할 수 있다. 그래도 어쨌든 논리연산자의 결과값은 0 아니면 1이 되는 1byte 정수형을 리턴한다.
예를 들어
int a = 10;
float b = 3.14;
printf("%d, %d\n", a && b, sizeof(a && b));
위의 코드에서 출력은 1, 1 이다.
그런데 파이썬은 조금 더 변태같다.
a = 10
b = 20
print(a and b, a or b)
결과는 20, 10이다. 어째써? and와 or는 다음과 같이 구현되어 있다.
and의 경우 a가 참이면 b를 리턴한다. 결과적으로 a and b가 참인지 거짓인지는 b에 달린 상황이다. 만약 a가 거짓이면 그냥 a를 리턴한다. a가 거짓인 줄 알고 리턴하니까 a and b도 거짓이 된다. 이 때 b는 체크하지 않는다.
or의 경우 a 가 참이면 그냥 a를 리턴한다. a가 참이니까 a or b 도 참이다. 이 때 b는 체크하지 않는다. 만약 a가 거짓이면 b를 리턴한다. a or b가 참인지 거짓인지는 b에 달렸다.
한 번 더 정리하자면 a and b 에서 a 가 거짓이면 b를 체크하지 않고 a를 리턴한다. a or b에서 a 가 참이면 b를 체크하지 않고 a를 리턴한다. a and b에서 a가 참이면 b를 리턴하고, a or b에서는 a가 거짓이면 b를 리턴한다.
C언어의 논리연산자는 정수형 입력을 받아서 정수형 출력을 한다. 파이썬의 논리연산자는 입력 타입이 정해져 있지 않다. 그래서 입력 타입이 부울이 아닌 경우 엉뚱한 결과가 발생한다.
뭐 당연하겠지만 또 웃기는 것은 True의 타입은 <class 'bool'>인데 산술연산에 참여할 때는 정수 1처럼 여겨진다는 것이다.
print(True + True)
결과는 2이다.
또 한 가지 팁이라면 파이썬에서는 None을 거짓으로 취급한다. 반대로 리스트나 기타 오브젝트는 참으로 취급한다. 아래 예제에서
a = [1, 2, 3]
print(a or None)
print(None and True)
결과는 [1, 2, 3], 그리고 None이다.
그런데 비어있는 리스트, 문자열, 딕셔너리, 셋, 튜플 따위는 거짓으로 취급한다.
print( [] or dict() or set() or tuple() or '' or 10 )
결과는 10이다. 10 앞에 나열한 모든 것들은 전부 거짓으로 취급된다.
여기 또 다른 함정이 있다. 예를 들어 10은 bool로 형변환하면 True가 되긴 하지만 그렇다고 1이 True인 것은 아니다.
a = 10
print(a is True)
print(a == True)
결과는 둘 다 False이다. a는 정수 10일 뿐, bool도 아니고 True도 아니다.
if문을 쓰지 않고 a가 참인지 체크하려면 간단히 bool로 형변환해보면 된다.
print(bool(a))
결과는 당연히 True이다.
마지막으로 아래 식을 확인해보자.
print(type(a and True))
print(type(True and a))
결과는 <class 'bool'>, <class 'int'> 이다. and 연산의 리턴 타입을 보면서 파이썬의 함수는 리턴 타입이 정해져있지 않다는 사실이 새삼 현실로 다가온다.
파이썬의 이러한 특성을 이용하면 변태같은 코딩이 가능하다.
if a < b : func() #이 문장은
a < b and func() #요렇게 바꿀 수 있다.
if not (a < b) : func()
a < b or func()
조건문 대신 and와 or를 쓸 수 있다. 영 and와 or가 어색하다면 and 대신 then, or 대신 otherwise로 읽어보면 조금 더 자연스럽다. 어셈블리어를 해봤으면 매우 자연스러울 수 있다, 점프처럼 생각하면 되니까.
여기에 보태서 None이 거짓으로 인식되는 점을 이용해 None 체크를 할 수 있다.
if a is not None: b = a
else: b = somethingDefault #이 두 문장은
b = a or somethingDefault #요 한 문장으로 바꿀 수 있다.
a를 b에 대입하는데 만약 None이면 미리 정해준 기본값을 대입하도록 한 것이다. 같은 원리로 비어있는 리스트를 체크할 수도 있다.
myList = []
x = min(myList or [-1])
x = min(myList) #에러 발생
만약 myList == [] 즉 비어있는 리스트라면 에러가 발생한다. 이걸 try 로 잡아서 어쩌구 해도 되지만 어차피 비어있을 경우 x에 기본값 -1을 넣을 작정이라면 위와 같이 or를 이용할 수 있다.
당연히 논리연산자의 피연산자는 bool로 묵시적 형변환이 일어나는 줄 알았고, 당연히 출력은 무조건 bool인줄 알았는데 입력 타입을 그대로 살려서 출력한다니 좀 어이없긴 하다. 파이썬의 철학이 단 하나의 목적을 위한 단 하나의 아름다운 코드 아닌가? 이런 변태같은 부분은 파이썬의 기본 철학을 정면으로 부정하는 것이다. 통일성과 간편함을 동시에 추구하는 것이 그렇게 쉬운 일은 아닌 셈이다.
파이썬의 이런 점이 마음에 들지 않는다, 혹은 헷갈려서 공부 못하겠다 싶으면 정수나 기타 이상한 타입은 일절 논리 연산에 참여시키지 말아야 한다. 반드시 bool(a) 또는 a != 0 과 같은 코드를 써서 명시적으로 bool로 변환해주는 것이 좋다. C를 제외한 대부분의 언어, 그러니까 Java와 C#에서는 당연히 이렇게 한다. 논리연산에는 bool만 참여할 수 있기 때문에 반드시 명시적 형변환이 필요하다. 차라리 이게 나은 것 같은데.