클래스 클래스 기본 형태 class 클래스이름[(상속 클래스명)]: <클래스 변수 1> <클래스 변수 2> ... def 클래스함수1(self[, 인수1, 인수2,,,]): <수행할 문장 1> <수행할 문장 2> ... def 클래스함수2(self[, 인수1, 인수2,,,]): <수행할 문장1> <수행할 문장2> ... ... self라는 것이 매우 특이합니다. self.name = name 이런식으로 쓸 수가 있는데 name이 클래스 변수로 선언이 되어있지 않아도 사용할
함수 함수 >>> def sum(*args): … sum = 0 … for i in args: … sum = sum + i … return sum …위와 같은 형태로 sum이라는 함수를 만들었습니다. def 함수명(인수): 이렇게 선언하고 그 아래에 정의를 해주면 되는 듯 합니다. *args 는 가변인수를 뜻합니다. 인자를 초기화 할 수 도 있습니다. >>> def call(name, age=20): … print name … print
for문 for문 range()라는 함수와 자주 쓰이는것 같습니다. java에서 for(int i = 0 ; i < 10 ; i++) 이것을 Python에서는 for i in range(10): 이렇게 씁니다. range(5,10) 이렇게도 쓸 수가 있는데 5 이상 10 미만을 뜻합니다. 즉 [5, 6, 7, 8, 9] 이런 배열을 만들어 주는듯 합니다. >>> a = [‘spring’, ‘hibernate’, ‘python’
if문 if문 들여쓰기에 주의해야 합니다. 들여쓰기로 블럭을 인식하기 때문에 들여쓰기가 안맞으면 에러가 나는군요. 특이한건 else if를 줄여서 elif 로 사용합니다. 그리고 &&, ||, ! 대신에 and, or, not 이라는 키워드를 사용합니다. 배열, 터플, 문자열 안에 특정 요소가 들어있는지 확인하기 위해 in과 not in을 사용할 수 있습니다. continue와 똑같이 동작하는 pass라는 키워드가 있습니다. >>> a = [1, 2,
List copy 리스트 복사 >>> a = 3 >>> b = 3 >>> a = 1 >>> a 1 >>> b 33이라는 객체를 a, b 두 개의 변수가 가리키고 있다가 a가 다른 객체 1을 가리키게 됩니다. 그러나 배열은 이런 방법과는 다르게 동작합니다. 1. 일단 배열은 []를 사용할 때 마다 매번 객체를 생성합니다. >>> a = [1, 2, 3] >>> b = [1, 2, 3] >>> a is
변수 변수 전부 객체인가 봅니다. 놀라운 건.. 전부 Java에서 “문자열” 이런 식으로 문자열을 지정할 때 와 똑같이 동작한다는 겁니다. String name = “keesun”; name2 = “keesun”; 이렇게 했을 때 name과 name2가 같은 객체를 가리키듯이 python에서도 그렇네요. 단 문자열만 그런게 아니라 전부 다 그런가 봅니다. >>> a = “abc” >>> b = “abc” >>> a is b True >>> a = 3
참 거짓 True, False boolean 타입이 없나 봅니다. 초간단하게 정리하면 뭐가 들어있으면 True 아무것도 없으면 False 입니다. true나 false는 예약어가 아니기 때문에 변수명으로 사용할 수도 있네요. ” ” – 거짓 ‘ ‘ – 거짓 () – 거짓 [] – 거짓 {} – 거짓 숫자 0 – 거짓 배열이나 문자열에 뭐라도 들어있거나 0이 아닌 숫자는 모두 참입니다. >>> if ”: … print “t” … else: … print “f” … print “a” … print “l” … print
Dictionary Dictionary(Map) Map 처럼 key, value 쌍으로 이루어진 것을 딕셔너리라고 부르는군요. 만드는 방법 : 변수명 = {Key1:Value1, Key2:Value2, Key3:Value3,,,,} key로 value가져오기 : 변수명[‘key’] key, value 추가하기 : 변수명[‘추가 할 key’] = 추가할 value key, value 삭제하기 : del 변수명[‘제거 할 쌍의 key’] >>> dic = {‘name’:’keesun’, ‘age’:26, ’email’:’keesun@email.com’} >>> dic
터플 Tuple 오호.. 첨보는 겁니다. 리스트와 비슷하지만 리스트는 mutable 하고 터플은 immutable 하답니다. 따라서 이전에 리스트를 다루듯이 배열에 값을 넣고 빼고 변경을 해야 한다면 리스트를 사용하고 값이 바뀌면 안되는 경우라면 터플을 사용하면 되겠네요. 터플을 만들 때 주의 할 것은 터플에 한 개의 요소만 들어갈 때는 뒤에 ,를 붙여줘야 한답니다. 어라 그런데 되네요?
list List [ ] 이거 사이에 요소들을 넣어 주면 됩니다. 신기한건 + 랑 * 연산이 먹힌다는 거지요. >>> a = [ ‘a’, ‘b’, ‘c’] >>> a [‘a’, ‘b’, ‘c’] >>> a * 2 [‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’] >>> a + a [‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’] >>> a [‘a’, ‘b’, ‘c’]리스트에 있는 요소의 수정과 삭제도 직관적으로 할 수 있습니다. >>> a [‘a’
문자열 문자열 문자열 만드는 방법이 여러가지네요. Java에서는 ” ” 이거를 사용했는데 ‘ ‘ 이것도 되고 “”” “”” 이렇게 세개씩 써서 만들 수도 있습니다. >>> a = “”” … spring hibernate … python … ruby … php … perl … “”” >>> a ‘ nspring hibernatenpythonnrubynphpnperln’ >>> print a spring hibernate python ruby php perl 문자열에 * 하면 문자열을 복사해서 붙여 줍니다. >>> a = “spring” >>> a * 2 ‘springspring’문자열 포맷 코드를 사용해서 출력가능 전부
숫자형 숫자형 변수에 타입을 적어 주지 않기 때문에 들어있는 값을 가지고 판단을 하는 건인지… 모르겠지만 일단 Java랑 거의 비슷하길래 다른 것만 찾아봤습니다. 자바에서 ^ 이게 제곱 연산을 하는 녀석인데 Python에서는 ** 이렇게 곱하기 두 개를 사용합니다. >>> a = 2 >>> b = 3 >>> a ** b 8그리고 복소수를 지원합니다. j나 J 라는 문자를 사용하면 복소수가 됩니다. 복소수에는 real이나
indexing 문자열 다루기 참조 : http://tdd.or.kr/pf/book/main 대엽님 블로그에서 보고 찾아가 봤는데 정말 금방 배울 수 있겠더군요. 기본 문법을 언능 보고 심심할 때 마다 예제 따라 해보면 뭔가 만들 수 있을지도… 참. 갑자기 Python을 공부하는 이유는 오픈마루 스튜디오 [http://blog.openmaru.com/]에 올라왔던 글 중에서 Spoken log [http:
설치 Python 설치 http://www.python.org/download/ 위에서 window용 2.5를 받았습니다. http://sourceforge.net/project/showfiles.php?group_id=78018 여기서는 IDE를 받았습니다. 설치하면 위에서 파이썬 설치한 폴더에 추가로 IDE가 생기는 것 같습니다. 코딩할 수 있는 환경은 세 곳이 생겼습니다. IDLE는 아래처럼 생겼고 파일로 편집할 수도 있고 대화형 인터프리터를 사용할 수도