목록파이썬 (8)
에르노트
알면 알수록, 그리고 쓰면 쓸수록 파이썬은 참 잘 만들어진 언어라는 생각이 든다. 코틀린이나 모던 자바스크립트 같은 최신 언어들도 다뤄봤지만 역시 파이썬이 가장 직관적이고 편한 것 같다. 아무튼 파이썬에는 다소 독특한 리스트 초기화 방법이 있다. 바로 리스트 컴프리헨션(List Comprehension)이다. 파이썬에서는 대괄호([]) 안에 조건문과 반복문을 사용해서 표현된 식으로 리스트를 초기화 할 수 있고, 이를 리스트 컴프리헨션이라 한다. 그럼 왜 이걸 리스트 컴프리헨션이라고 부를까? 영단어 'Comprehension'에는 '이해, 포용, 포괄'이라는 뜻이 있다. 즉, 대괄호 안에 어떤 수식을 적더라도 리스트로 감싸안아 준다는 뜻으로 이해하면 편하다. 따라서 리스트 컴프리헨션의 결과(반환값은)는 항..
파이썬 논리 연산자를 사용해보면 파이썬의 철학을 느낄 수 있다. 난해한 것보단느 복잡한 것이, 복잡한 것보다는 단순한 것이 더 낫다. 그리고 사소한 부분일지라도 가독성은 정말로 중요하다. 그런 취지에서인지 파이썬은 &&, ||, ! 등의 기호를 완전히 배제하고 영단어 그대로를 연산자로 사용하고 있다. AND 연산자 print(True and True) #True print(True and False) #Fasle print(False and False) #Fasle and 연산자는 피연산자 모두가 True 일때만 True를 반환한다. 다시 말해 피연산자 하나라도 False이면 False를 반환한다. OR 연산자 print(True or True) #True print(True or False) #True..
파이썬 코드에서 사용되는 연산자는 매우 다양하다. 그러면 이러한 연산자들을 중첩해서 쓸 일도 많이 생기기 마련이고, 어떤 것들을 먼저 계산할지에 대한 사전 논의가 필요할 것이다. 그래서 Python에서는 연산자의 우선순위가 정해져있다. 여기(파이썬 공식사이트)로 들어가면 Operator precedence라고 명시된 연산자 우선순위를 확인할 수 있다. 표를 유심히 관찰해보면 다음과 같은 결론을 이끌어낼 수 있다. +,- 보다 *, / 연산자가 더 아래칸에 위치한 것으로 보아 우선순위가 높다. 일반적으로 수학에서 곱셈을 먼저 계산하고 덧셈을 생각하는 것과 같은 원리가 그대로 적용되는 것이다. 하지만 같은 +,- 연산자라도, +x, -x 등의 단항으로 쓰일 때는 *보다도 우선순위가 높다. 이러한 규칙들은 비..
숫자 형식에 int, float 등이 있었다면 시퀀스 형식에는 str과 더불어 list가 있다. 시퀀스 형식을 다룰 때는 [ ] 연산자를 사용한다. 우선 기존에 익숙한 str 형식으로 시험을 해보자면, msg = 'hello' 라는 할당문을 적은 후, msg[3]을 치면 'l'이라는 결과를 볼 수 있다. 이 'l'의 의미는 바로 'hello'라는 문자열에서 3번째 문자에 해당하는 것을 출력한 것이다. >>> msg = 'hello' >>> msg[3] 'l' 정리하면, [ ] 연산자는 시퀀스의 내용물 중 하나를 꺼내기 위해서 사용하는 것이다. 여기서 [ ]안에 들어있던 3을 index 값이라고 한다. 시퀀스 형식에서 정확히 한 칸만을 골라서 쓰고 싶을 때, 그 칸에 해당하는 index값을 말하자면 위의 ..
코드를 작성할 때 고려해야할, 실행의 3요소는 바로 순차, 분기, 그리고 반복이다. 실행을 구성하는 가장 중요한 한가지 요소를 고르라고 한다면 아마 '순차' 일 것이다. 왜냐하면 파이썬에서 기본적으로 모든 문장들은 '순차대로, 즉 적어놓은 순서대로' 실행되기 때문이다. 할당문을 먼저 적고 print문을 적는다면 먼저 변수에 값을 담아둔 다음 출력을 실행한다는 것이다. 순차 개념이 깨진다면, 코드의 유기성이 무너지는 것이고, 이렇게되면 프로그램이 정상적으로 작동하지 않을 가능성이 매우 높아진다. 다만 우리가 코드를 적을 때도 무의식적으로라도 순차적으로 적기 때문에 따로 굳이 신경쓰거나 주의해야할 요소는 아니다. 그런 의미에서 '분기'와 '반복'이 나름의 의미를 갖는다. 우선 분기는 어떤 문장들을 실행할 수..
raw_input을 통해 얻을 수 있는 값은 '날것 그대로의 입력'이기 때문에, 기본적으로는 str형식이라 할 수 있는 메시지의 형태이다. 때로는 메시지가 아닌 숫자의 형태로 데이터를 처리해야 할수도 있다. 그 때는 str형식을 토대로 int 혹은 float 등의 숫자 형식을 만들 수 있어야 한다. 이럴 때는 새 값을 만들고자하는 형식 이름 바로 옆에 ( )를 붙임으로써 마치 함수를 호출하듯이 형식의 변환이 가능하다. 이를테면, 나이차를 계산해주는 함수를 구성한다면, 숫자 형식끼리만 - 연산자로 계산이 가능하므로, raw_input()으로 입력받은 str 형식의 데이터를 int 형식으로 바꿔줘야 한다는 것이다. def age_differs(): my_age = 20 age = raw_input("나이를 ..
비단 파이썬이 아니더라도, 컴퓨터 프로그램은 기본적으로 Data와 Code로 이루어진다. 데이터는 일반적으로 사용자들이 떠올릴 수 있는 그것들.. 숫자라던지 ID라던지 PW라던지 특정 사진이라던지.. 그러한 형태로 표현된다. 코드는 실행되는 것이다. 화면에 내가 원하는 것을 출력하기 위한 print문 혹은 그 어떤 함수들, 다시 말해 문장이 곧 코드에 해당한다. 파이썬의 Data 요소에서 가장 전형적인 것은 변수(Variable)이다. Code의 기본 단위가 문장이라면, Data의 기본 단위는 변수인 것이다. 수학에서 쓰이는 함수 개념이 프로그래밍에서도 쓰이듯이, 변수라는 개념도 사실상 동일하다. 좀 더 실제적으로 변수는 값을 하나 담을 수 있는 친구이다. 프로그램의 데이터 영역을 확인하고 싶으면, 코드..
파이썬 공식사이트에서 통합 개발 환경을 제공하는데, 이름이 IDLE(Python GUI)이다. 보통 'Integrated Development Environment -> IDE'라 부르는데 파이썬은 특이하게도 DeveLopment에서 L까지 강조해서 IDLE을 표방하고 있다. 파이썬 공식 사이트 파이썬 사이트의 전체 모습이다. 별건 없고 그냥 파이썬의 역사, 소식, 커뮤니티 등의 기능과 무엇보다도 IDLE 다운로드를 제공한다. 요즘 통용되는 버전은 크게 파이썬2와 파이썬3인데 큰 차이는 없다. 하지만 앞으로 계속해서 파이썬을 사용하여 프로젝트를 진행할거라면 아무래도 최신 버전인 파이썬3를 이용하는 것이 좋을 것 같다. 가장 기본 명령인 print의 취급이나 정수의 나눗셈 등 특정 부분에서는 큰 차이가 있..