파이썬에서 문자열을 입력받기 위해선 input() 함수를 사용하면 된다. str = input() print(str) # 입력받은 문자열을 출력한다. 만약 입력받는 값을 문자열이 아닌 정수로 표현하고 싶다면 int()로 묶어준다. n1 = int(input()) n2 = int(input()) print(n1 + n2)
간단한 텍스트 파일은 단지 라인으로 구성되어 있습니다. 클라이언트가 서버에게 데이터를 요청하면 서버로부터 데이터를 받는 상황을 생각해봅시다. 서버에서 클라이언트로 데이터를 건네줘야하는데 이때 단지 라인으로 구성되어 있는 텍스트파일을 떡 하고 줘버리면 클라이언트 입장에서 이게 무슨 데이터인지 참 난감한 상황에 빠질겁니다. 클라이언트에서 알아보기 쉽도록 텍스트를 '구조화'할 필요가 있습니다. 대표적인 '구조화' 형식은 다음과 같습니다. CSV XML JSON YAML CSV 파일 다루기 .csv 파일은 스프레드시트-데이터베이스 간의 데이터 교환 형식입니다. 개인이 CSV Parser를 만들 수도 있겠지만, 그것보단 표준 csv 모듈을 사용해서 파싱하는게 더 좋은 판단입니다. import csv data = ..
파이썬의 '파일 입출력'은 표준 C 입출력 라이브러리를 모델로 만들어졌습니다. 먼저 파일을 오픈하는 인터페이스입니다. fileobj = open(filename, mode) 2번째 인자인 'mode'에 올 수 있는 값은 다음과 같습니다. r: 파일 읽기 w: 파일 쓰기(파일이 존재하지 않으면 생성, 존재하면 덮어씀) x: 파일 쓰기(파일이 존재하지 않을 경우에만 수행함) a: 파일 추가하기(파일이 존재하면 파일의 끝에서부터 쓴다.) 쓰기 파일 쓰기를 위한 인터페이스는 다음과 같습니다. fout = open('myfile', 'wt') fout.write(data) 읽기 파일 읽기를 위한 인터페이스는 다음과 같습니다. fin = open('myfile', 'rt') obj = fin.read() # 매개변..
생성자 파이썬의 생성자는 단지 멤버 초기화의 목적으로 쓰입니다. 그렇기에 생성자명은 __init__으로 고정되어있습니다. class Person(): def __init__(self): pass 클래스에서 __init__() 메서드의 첫 번째 파라미터는 무조건 self여야 합니다. 'self'는 C++, Java에서의 'this'와 같습니다. 상속 위의 예제에서 '어라?'하는 부분이 있으신가요? 클래스명 뒤에 () 괄호가 있는데요, 이는 상속을 위한 파이썬의 문법입니다. class Person(): def __init__(self, name): self.name = name class Professor(Person): def __init__(self, name): self.name = "Professor..
파이썬은 함수 안에 새로운 함수를 정의할 수 있습니다. 이를 내부 함수라 합니다. def outer(a, b): def inner(c, d): return c + d return inner(a, b) 이때, 내부 함수로 인해서 생기는 중요한 이슈가 있습니다. '내부 함수'는 자신의 스코프를 벗어나서 '외부 함수'의 변수에 접근할 수 있다. '내부 함수'는 '외부 함수'의 반환 값으로 사용될 수 있다. 위의 이슈를 담고 있는 예제를 살펴보겠습니다. def print_msg(msg): def inner(): print(msg); return inner print_msg() 함수가 종료되면 매개변수로 넘어온 msg는 사라져야되는데 '내부 함수'에서 해당 변수를 참조하고 있습니다. 거기다 print_msg() ..
Comprehension이란? 컴프리헨션(Comprehension)은 원하는 데이터를 파이썬에서 제공하는 자료구조(list, dictionary, set)에 담아 표현하려할 때 사용할 수 있는 문법으로 종류는 4가지입니다. list 컴프리헨션 dictionary 컴프리헨션 set 컴프리헨션 generator 컴프리헨션 list 컴프리헨션 [1, 6) 순차열이 담긴 list 컨테이너를 생성하기 위해선 어떻게 해야 할까요? >>> number_list = [] >>> number_list.append(1) >>> number_list.append(2) >>> number_list.append(3) >>> number_list.append(4) >>> number_list.append(5) >>> number..
대부분의 프로그래밍 과정은 데이터를 잘게 나누고, 이들을 붙여서 특정한 형태로 만듭니다. 그렇기 때문에 데이터를 어떤 형태로 담아서 처리할지, 즉 어떤 자료구조를 사용해 데이터를 처리할지는 중요한 문제입니다. 그렇기에 대부분의 프로그래밍 언어는 많이 사용되는 자료구조를 기본적으로 지원해 줍니다. 예를 들어, C++는 STL을 통해 컨테이너 형태로 vector, deque, list, map, set 자료구조를 지원합니다. C++에서는 STL을 배워야 사용할 수 있던걸 파이썬에서는 허무할 정도로 쉽게 사용이 가능합니다. 혹시 Java에서 모든 변수는 포인터 변수 혹은 참조자라는걸 알고 계신가요? Java에서 모든 것은 객체로 표현되고 변수는 해당 객체를 참조합니다. 파이썬도 마찬가지입니다. 지금부터 살펴볼..