Python RaspberryPi Sejin Oh
Raspberry Pi Python 참과 거짓 Python 자료형의 참과 거짓을 구분 짓는 기준은 다음과 같다. 2 참과 거짓 자료형참 or 거짓 “” 가 아닌 문자열 ( 예 : “python”) 참 “” 거짓 [] 가 아닌 리스트 ( 예 : [1, 2, 3] 참 [] 거짓 () 거짓 {} 거짓 0 이 아닌 숫자 ( 예 : 1) 참 0 거짓 None 거짓
Raspberry Pi Python 참과 거짓 사용 예 3 참과 거짓 >>> a = [1,2,3,4] >>> while a:... a.pop()
Raspberry Pi Python 변수 변수는 객체를 가리키는 것이다. 객체란 우리가 지금껏 보아왔던 자 료형을 포함한 파이썬에서 사용되는 그 모든 것을 말하는 말이다. 변수 없애기 4 변수 >>> a = 3 >>> b = 3 >>> a is b True >>> a = 3 >>> b = 3 >>> del(a) >>> del(b) a 와 b 가 3 이란 객체를 가리킨다 call by reference
Raspberry Pi Python 변수를 만드는 여러 가지 방법 여러 개의 변수에 같은 값을 대입할 수 있다. 5 변수 >>> a, b = 'python', 'life' >>> a = b = 'python' >>> a = 3 >>> b = 5 >>> a, b = b, a >>> a 5 >>> b 3
Raspberry Pi Python 리스트 복사 변수는 값을 가지는 것이 아니라 가르킨다. Call by value 는 [ : ] 또는 copy 모듈을 이용하면 된다. 6 변수 >>> a = [1,2,3] >>> b = a >>> a[1] = 4 >>> a [1, 4, 3] >>> b [1, 4, 3] >>> a = [1, 2, 3] >>> b = a[:] >>> a [1, 2, 3] >>> b [1, 2, 3] >>> a[1] = 4 >>> a [1, 4, 3] >>> b [1, 2, 3] call by reference call by value >>> from copy import copy >>> b = copy(a) >>> b is a False call by value
Raspberry Pi Python If 문 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰이는 것이 if 문이다. 파이썬은 다른 언어처럼 if 문의 그룹을 묶는 ‘{‘ 와 ‘}’ 를 쓰지 않는다. ‘{‘, 와 ’}’ 대신에 들여쓰기 (space 공백 ) 으로 처리한다. 7 제어문 – if 문 >>> money = 1 >>> if money:... print " 택시를 타고 가라 "... else:... print " 걸어가라 "... 택시를 타고 가라 if :... else:...
Raspberry Pi Python 들여쓰기 if 문을 만들 때는 다음 처럼 if : 다음의 문장부터 if 문에 속하 는 모든 문장들에 들여쓰기를 해 주어야 한다. 에러의 예 8 제어문 – if 문 if : 에러 발생
Raspberry Pi Python 비교 연산자 9 제어문 – if 문 >>> x = 3 >>> y = 2 >>> x > y True >>>
Raspberry Pi Python and, or, not 10 제어문 – if 문 >>> money = 2000 >>> watch = 1 >>> if money >= 3000 or watch:... print " 택시를 타고 가라 "... else:... print " 걸어가라 "... 택시를 타고 가라 >>>
Raspberry Pi Python x in s, x not in s x in 리스트, x not in 리스트 x in 튜플, x not in 튜플 x in 문자열, x not in 문자열 11 제어문 – if 문 >>> 1 in [1, 2, 3] True >>> 1 not in [1, 2, 3] False >>> 'a' in ('a', 'b', 'c') True >>> 'j' not in 'python' True >>> pocket = ['paper', 'handphone', 'money'] >>> if 'money' in pocket:... print " 택시를 타고 가라 "... else:... print " 걸어가라 "... 택시를 타고 가라 >>>
Raspberry Pi Python elif ( 다중 조건 판단 ) C, Java 등의 else if 와 같음 Python 은 elif (elseif 아님 ) 12 제어문 – if 문 >>> pocket = ['paper', 'handphone'] >>> watch = 1 >>> if 'money' in pocket:... print " 택시를 타고가라 "... elif watch:... print " 택시를 타고가라 "... else:... print " 걸어가라 "... 택시를 타고가라 If :... elif :... elif :... else:...
Raspberry Pi Python pass 의 사용 가끔 조건문을 판단하고 참 거짓에 따라 행동을 정의 할 때 아무런 일 도 하지 않게끔 설정 13 제어문 – if 문 >>> pocket = ['paper', 'money', 'handphone'] >>> if 'money' in pocket:... pass... else:... print " 시계를 끌른다 "...
Raspberry Pi Python While 문 반복해서 문장을 수행해야 할 경우 while 문을 사용한다. 14 제어문 – while 문 >>> treeHit = 0 >>> while treeHit < 10:... treeHit = treeHit print " 나무를 %d 번 찍었습니다." % treeHit... if treeHit == 10:... print " 나무 넘어갑니다."... 나무를 1 번 찍었습니다. 나무를 2 번 찍었습니다. 나무를 3 번 찍었습니다. 나무를 4 번 찍었습니다. 나무를 5 번 찍었습니다. 나무를 6 번 찍었습니다. 나무를 7 번 찍었습니다. 나무를 8 번 찍었습니다. 나무를 9 번 찍었습니다. 나무를 10 번 찍었습니다. 나무 넘어갑니다. while :...
Raspberry Pi Python 무한루프 (loop) Ctrl-c 로 while 문을 빠져나옴 Break 로 빠져 나올수 있음 “”” 는 개행하여 문자열 작성시 사용 15 제어문 – while 문 >>> prompt = """ Add Del List Quit Enter number: """ >>> >>> number = 0 >>> while number != 4:... print prompt... number = int(raw_input()) Add 2. Del 3. List 4. Quit Enter number:
Raspberry Pi Python 무한루프 (loop) Ctrl-c 로 while 문을 빠져나옴 Break 로 빠져 나올수 있음 16 제어문 – while 문 >>> coffee = 10 >>> money = 300 >>> while money:... print " 돈을 받았으니 커피를 줍니다."... coffee = coffee print " 남은 커피의 양은 %d 입니다." % coffee... if not coffee:... print " 커피가 다 떨어졌습니다. 판매를 중지합니다."... break...
Raspberry Pi Python While 문 처음으로 되돌아가기 (continue) while 문 안의 문장을 수행할 때 어떤 조건을 검사해서 다시 while 문의 맨 처음으로 돌아가게 하고 싶을 경우 17 제어문 – while 문 >>> a = 0 >>> while a < 10:... a = a+1... if a % 2 == 0: continue... print a
Raspberry Pi Python For 문의 기본 구조 리스트의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입해서,,,, 를 수행한다. 18 제어문 – for 문 for 변수 in 리스트 ( 또는 터플, 문자열 ):... >>> test_list = ['one', 'two', 'three'] >>> for i in test_list:... print i... one two three
Raspberry Pi Python For 문 예제 점수 리스트인 marks 에서 차례로 점수를 꺼내어 mark 라는 변수에 대 입하고 for 안의 문장들을 수행하게 된다. for 문이 한번씩 수행될 때마다 number 는 1 씩 증가하고 mark 가 60 이 상이면 합격 메시지를 출력하고 60 을 넘지 않으면 불합격 메시지를 출력한다. 19 제어문 – for 문 # marks1.py marks = [90, 25, 67, 45, 80] number = 0 for mark in marks: number = number +1 if mark >= 60: print "%d 번 학생은 합격입니다." % number else: print "%d 번 학생은 불합격입니다." % number
Raspberry Pi Python For 와 range 함수 for 문은 range 라는 숫자 리스트를 자동으로 만들어 주는 함수와 함께 사용되는 경우가 많다. 다음은 range 함수의 간단한 사용법이다. range(10) 은 0 부터 9 까지의 숫자 리스트를 만들어 준다. range 에 시작번호와 끝 번호 ( 끝번호 -1 까지 ) 를 지정할 수 있다. 20 제어문 – for 문 >>> a = range(10) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a = range(1, 11) >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Raspberry Pi Python For 와 range 를 이용한 1 부터 10 까지의 합 range(1, 11) 은 위에서 보았듯이 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 이라는 리 스트를 만들어 준다. i 변수에 리스트의 숫자들이 하나씩 차례로 대입되면서 sum = sum + i 라는 문장을 수행하게 되어 sum 은 최종적으로 55 가 되게 된다. 21 제어문 – for 문 >>> sum = 0 >>> for i in range(1, 11):... sum = sum + i... >>> print sum 55
Raspberry Pi Python 다양한 for 문의 사용 a 리스트의 요소 값이 튜플이기 때문에 각각의 요소들이 자동으로 (first, last) 라는 변수에 대입되게 된다. 22 제어문 – for 문 >>> a = [(1,2), (3,4), (5,6)] >>> for (first, last) in a:... print first + last
Raspberry Pi Python for 와 range 를 이용한 구구단 콤마 (,) 연산자 – 줄을 개행하지 않고 구분 ( 띄어쓰기 ) 할 때 사용 23 제어문 – for 문 >>> for i in range(2,10):... for j in range(1, 10):... print i*j,... print '\n'
Raspberry Pi Python 파이썬의 함수의 구조 24 함수
Raspberry Pi Python 함수 정의 예제 25 함수 >>> def sum_many(*args):... sum = 0... for i in args:... sum = sum + i... return sum... >>> sum_many(1, 2, 3) 6 >>> sum_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 55 def 함수이름 (* 입력변수 ):... 함수의 입력 값이 몇 개인지 모를 때 * 입력변수로 표현하여 사용
Raspberry Pi Python 입력과 출력 사용자 입력 어떤 변수에 사용자로부터 입력 받은 값을 대입하고 싶을 때 input 또는 raw_input 함수를 사용 문자열을 입력받을 때에는 ‘ 또는 “ 으로 둘러싸서 입력해야한다. 26 입력과 출력 >>> a = input() 'Life is too short, you need python' >>> a Life is too short, you need python >>> a = input() 3 >>> a 3 >>>
Raspberry Pi Python 입력과 출력 사용자 입력 raw_input 함수는 문자열 입력받을 때 ‘ 나 “ 를 필요하지 않는다. raw_input 과 input 의 차이점 input 은 문자열 입력시 ‘ 또는 “ 로 감싸주어야한다. raw_input 은 모든 값을 문자열형으로 취급한다. 정수를 입력해도 문자열 값으로 변환된다. 27 입력과 출력 >>> a = raw_input() Life is too short, you need python >>> a Life is too short, you need python >>>
Raspberry Pi Python 입력과 출력 프롬프트 추가하기 사용자로부터 입력을 받을 때 “ 숫자를 입력하세요.” 라던지 “ 이름을 입력 하세요 ” 라는 질문을 포함하고 싶을 것이다. input 이나 raw_input 이라는 함수에 입력으로 프롬프트를 포함시킬 수가 있다. 28 입력과 출력 >>> number = raw_input("input number: “) input number: >>> number = input(“input number: “) input number:
Raspberry Pi Python 파일 생성하기 file1.py 파일에 아래와 같이 python 코드 작성 쓰기 모드는 해당 파일이 존재하면 열고 존재하지 않으면 파일을 생성 Open 함수의 구성 추가 모드는 파일의 마지막에 새로운 내용을 추가 29 파일 읽고 쓰기 f = open(“filename.txt", 'w') f.close() 파일객체 = open( 파일이름, 파일열기모드 ) 파일열기모드설명 r 읽기 모드 w 쓰기 모드 a 추가 모드
Raspberry Pi Python 파일 쓰기 예제 – file.py 30 파일 읽고 쓰기 f = open(“newfile.txt", 'w') for i in range(1, 11): data = "%d line\n" % i f.write(data) f.close() $ cat newfile.txt 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line
Raspberry Pi Python 파일 읽기 파일 읽기 함수 readline() – 파일의 첫번째 라인만 읽어온다. readlines() – 파일의 모든 라인을 읽어 각각의 줄을 요소로 갖는 리스트로 반환 read() – 파일을 전부 읽은 문자열을 돌려준다. 31 파일 읽고 쓰기
Raspberry Pi Python 파일 읽기 예제 – readline.py 파일 읽기 예제 – readline2.py 32 파일 읽고 쓰기 f = open(“newfile.txt", 'r') line = f.readline() print line f.close() f = open("newfile.txt", 'r') while 1: line = f.readline() if not line: break print line f.close() $ python readline.py 1 line 첫 번째 라인만 읽음 $ cat newfile.txt 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line 루프를 돌면서 한 줄씩 읽음
Raspberry Pi Python 파일 읽기 예제 – readlines.py 파일 읽기 예제 – read.py 33 파일 읽고 쓰기 f = open(“newfile.txt", 'r') lines = f.readlines() for line in lines: print line f.close() f = open("newfile.txt", 'r') data = f.read() print data f.close() $ python readlines.py 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line readlines() $ python readlines.py 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line read()
Raspberry Pi Python 파일에 새로운 내용 추가하기 – add.py 파일을 추가 모드 (‘a’) 로 열어 사용 34 파일 읽고 쓰기 f = open(“newfile.txt",'a') for i in range(11, 20): data = "%d line\n" % i f.write(data) f.close() $ cat newfile.txt 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line 11 line 12 line 13 line 14 line 15 line 16 line 17 line 18 line 19 line
Raspberry Pi Python 클래스 (class) 객체 지향 언어에서는 프로그램의 기본 단위가 객체이다. 객체는 “ 속 성과 기능으로 구성되어 있다. 객체는 클래스로 생성되며 클래스도 “ 속성과 기능 ” 으로 구성되어 있 다. 속성과 기능은 변수나 함수들을 모아 놓은 집합체와 같다. 35 클래스 >>> class Service:... secret = " 영구는 배꼽이 두 개다 "... def sum(self, a, b):... result = a + b... print "%s + %s = %s 입니다." % (a, b, result)... >>> pey = Service() >>> pey.sum(1., 1) = 2 입니다. 속성 기능