-
Ch03. 라즈베리 파이를 위한 파이썬 기초Raspberry Pi ( python ) 2023. 2. 23. 16:31
01 _ 파이썬
: 빅 데이터 등의 통계, 함수와 관련된 코드를 만들기 좋은 프로그램이다.
java나 javascript 와는 중괄호 개념이 다르고, 들여쓰기 규칙을 사용한다. Tab 키 사용을 지양하도록 하자.
예시) if 문을 사용한다면.
def factorial(x): if x = 0: 참에 대한 결과1 참에 대한 결과2 else: 거짓에 대한 결과1 거짓에 대한 결과2
주석
# 한 줄 주석 ''' 여러 줄 주석 ''' """ 여러 줄 주석 """ print('주석 예제입니다.');
02 _ 파이썬 자료형
1. 숫자형
: 정수 및 실수를 표현하는 타입. 타입을 키워드로 구분하지 않는다
a = 123 print(type(a)) #type 함수는 변수의 타입을 리턴 a = 100 * 100 print(a) a , b = 9 , 2 print(a * b)
- 변수에 값을 저장하면 저장된 값에 따라 변수의 타입이 변한다.
type( ) : 변수의 타입을 불러온다.
2. 문자형
: 문자열을 표현하는 타입, 쌍 따옴표( " " ) 와 홑 따옴표( ' ' )가 있다.
a = "파이썬 만세" # 쌍 따옴표로 문자열 값을 선언 print(a) print(type(a)) # type 함수는 변수의 타입을 리턴 b = 'python go' # 홑 따옴표로 문자열 값을 선언 print(b)
3. 리스트
: 여러 개의 값들을 하나의 변수로 묶어서 사용하는 타입. 요소에 값들은 변경할 수 있다.
리스트 = [ 값, 값, ... ] -> 리스트 자료형
예제) 리스트를 사용하지 않고 숫자형 변수 4개를 선언하여 입력 받은 값들의 합을 출력
a, b, c, d = 0, 0, 0, 0 hap = 0 a = int(input("1번째 숫자 : ")) b = int(input("2번째 숫자 : ")) c = int(input("3번째 숫자 : ")) d = int(input("4번째 숫자 : ")) hap = a + b + c + d print("합계 => %d" % hap)
input(" ") : 입력받을 값에 대한 설명을 출력하고, 입력된 값을 가져온다.
예제) 리스트 변수를 선언하여 같은 기능을 만들어 보자.
aa = [0, 0, 0, 0] hap = 0 aa[0] = int(intput("1번째 숫자 : ")) # intput의 역할 aa[1] = int(intput("2번째 숫자 : ")) # 1번째 숫자 : 를 출력 한 뒤 입력한 문자를 int에 저장한다 aa[2] = int(intput("3번째 숫자 : ")) aa[3] = int(intput("4번째 숫자 : ")) hap = aa[0] + aa[1] + aa[2] + aa[3] print("합계2 => %d" % hap)
print( " 문자열 %d " % 값 ) : 문자열 내부에 있는 %d 로 문자열 밖에 있는 % 이후에 값을 차례대로 넣는다.
예제) 리스트 변수를 선언하고 고정된 요소의 개수가 아닌 유동적인 요소가 만들어지는 예제입니다.
aa =[] # 요소가 0개인 리스트 변수를 선언 aa.append(0) # 값이 0인 요소 하나를 추가 aa.append(0) aa.append(0) aa.append(0) print(len(aa)) # 리스트 변수의 크기를 출력 print(aa) # 요소의 값들을 출력 bb = [] for i in range(0, 100): # 반복문 for문을 선언 bb.append(i) # i값을 리스트에 요소로 추가 print(bb)
len(리스트) : 리스트의 길이(크기) 를 불러온다.
예제) 리스트에서 요소 값을 가져오기 위한 다양한 위치 값(index 값) 을 적용한 예제입니다.
aa = [10, 20, 30, 40] #리스트 변수를 선언 print("aa[-1]은 %d, aa[-2]는 %d" % (aa[-1], aa[-2])) # %뒤에있는 aa[-1]은 첫 번째 %d aa[-2] 두 번째 %d에 대입 print(aa[0:2]) #aa 리스트의 첫 번째부터 두 번째 요소 값을 출력 print(aa[2:4]) #aa 리스트의 세 번째부터 네 번째 요소 값을 출력 print(aa[0:]) #aa 리스트의 첫 번째부터 끝까지 요소 값을 출력
리스트[a : b] : 리스트의 a를 시작점으로, b번째 값 까지 불러온다. 리스트[a : ] 일 경우 a부터 끝까지
인덱스에 음수 값이 있을 경우 ( 리스트[-num] ) 뒤에서부터 순서를 센다.
예제) 리스트에서 다양하게 사용 할 수 있는 함수를 적용한 예제
aa = [30, 10, 20] print("현재의 리스트 : %s" % aa) # aa 리스트 전체 출력은 문자열로 인식하므로 %s는 aa 리스트를 대입 # 현재의 리스트 : [30, 10, 20] aa.append(40) # 요소를 하나 추가 # append 후의 리스트 : [30, 10, 20, 40] aa.pop() # aa리스트의 제일 마지막 요소를 뺀다 # pop 후의 리스트 : [30, 10, 20] aa.sort() # 리스트 요소 값들을 오름차순으로 정렬 # sort 후의 리스트 : [10, 20, 30] aa.reverse() #리스트 요소 값들을 역순으로 정렬 # revers 후의 리스트 : [30, 20, 10] aa.insert(2, 222) # aa리스트의 3번째 위치에 222값을 추가 # insert 후의 리스트 : [30, 20, 222, 10] print("20 값의 위치 : %d" % aa.index(20)) # 20이라는 요소 값이 있는 위치 출력 (1) aa.remove(222) # 222 요소 값을 리스트에서 삭제 # remove 후의 리스트 : [30, 20, 10] aa.extend([77,88,77]) # 다른 리스트를 확장 # extend 후의 리스트 : [30, 20, 10, 77, 88, 77] print("77값의 개수 : %d" % aa.count(77)) # aa 리스트에 77 요소 값이 몇 개 있는지 출력
리스트.append( 값 ) : 리스트의 뒤쪽에 값을 넣은 인덱스를 추가해라
.pop( ) : 리스트 제일 마지막의 인덱스를 제거해라
.sort( ) : 리스트 요소 값들을 오름차순으로 정렬
.reverse( ) : 리스트 요소 값들을 역순으로 정렬
.insert( 인덱스 , 값 ) : 리스트의 인덱스 위치에 값을 넣음
.remove( 값 ) : 해당 값을 가진 요소들을 삭제
.extend( [ 값 , 값, ... ] ) : 리스트의 뒷 부분에 해당 요소를 추가
.count( 값 ) : 리스트의 해당 값의 요소가 몇개 있는지 찾음
예제) 다차원 리스트 ( 2차원 )
aa = [[1,2,3,4], [5,6,7,8], [9,10,11,12]] print(aa[0][0]) # aa 리스트의 첫 번째 리스트의 첫 번째 요소 출력 print(aa[0]) # aa 리스트 첫 번째 리스트 전체 출력 print(aa[1][2]) # aa 리스트의 두 번째 리스트의 세 번째 요소 출력
4. 튜플
: 리스트와 거의 유사한 기능을 가지고 있지만 요소 값을 변경 할 수 없다. ( 읽기 전용 )
튜플명 = ( ) -> 튜플 자료형
예제) 문자열과 튜플 타입 관계를 보여주는 예제
str = "파이썬 문자열" # 문자열 변수를 선언 print(str[0]) # 첫 번째 자리의 문자 출력 print(str[-1]) # 뒤에서 첫 번째 자리의 문자 출력 #str[-1] = '렬' # 뒤에서 첫 번째 자리의 문자값 수정(오류) card = 'red', 4, 'python', True # card 튜플 선언 print(card) # card 튜플 전체 출력 print(card[1]) # card 튜플 두 번째 요소 출력 #card[0] = 'blue' # card 튜플 첫 번째 요소 값 수정(오류)
- 문자열은 내부적으로 튜플 타입의 변수로 선언된다. 그렇기 때문에 값을 수정하려고 하면 오류가 발생한다.
str : 파 이 썬 문 자 열
str[0] str[1] str[2] str[3] str[4] str[5] str[6]
str[3]에는 띄어쓰기가 저장된다.
card = 'red', 4, 'python', True 형태로 튜플 선언 시,card = ( 'red', 4, 'python', True ) 괄호가 친 것과 같은 결과가 된다. 괄호는 생략해도 무방함.예제) 문자열과 튜플에 관계를 설명하기 위한 예제
one = '하나' # 문자열 선언 print(type(one)) #one 변수의 타입 출력 one = "원" # 문자열 값 전체를변경 print(one) # 수정된 문자열 출력 two = '둘' # 문자열 선언 print(type(two)) # two 변수의 타입 출력 #two[0] = '투' # two 변수의 첫 번째 요소 값 변경 (오류) print(two[0]) # two 변수의 첫 번째 요소 값 출력
one 처럼 문자열 전체를 바꾸는 것은 가능,
two[0] 처럼 문자열 내부 요소 하나만 바꾸는 것은 불가능하다.
예제) 튜플 변수로 선언된 각각의 요소 값들을 하나의 변수로 리턴 받는 예제
card = 'red', 4, 'python', True # card 변수에 튜플 타입의 다양한 요소로 선언 a, b, c, d = card # card의 4개의 요소 값들을 a~d 변수에 할당 print(a) print(b) print(c) d = False # d 변수의 값을 수정 -> d 변수는 튜플이 아니고 boolean 타입이라 수정 가능 print(d)
card = 'red', 4, 'python', True
a, b, c, d = card 처럼 튜플에 저장된 요소들을 각각의 변수를 나열해서 하나씩 저장할 수 있다.튜플 요소 값은 수정할 수 없지만 d 변수에 저장된 후에는 boolean 타입이므로 d 변수 값은 수정할 수 있다.
5. 딕셔너리
: key 값과 value 값이 한 쌍으로 저장되는 타입입니다. 그리고 value 값은 튜플과 다르게 변경이 가능하다.
자료형은 프로그램 별로 다음과 같이 나뉜다.
java : hashmap(해쉬맵)
javascript, jquery : json(제이슨)
python : dictionary
예제) 딕셔너리 선언과 기본 기능 활용
딕셔너리 예제 1 'Raspberry Pi ( python )' 카테고리의 다른 글
CH.02 라즈베리 파이를 위한 리눅스 기초 배우기 (0) 2023.02.28 Ch01. 라즈베리파이 시작하기 (0) 2023.02.27 Ch03. 파이썬 기초 (함수, 클래스, 모듈) (0) 2023.02.24 Ch03. 파이썬 기초 (제어문) (0) 2023.02.24 라즈베리파이 : 파이썬 연습문제 (02/23) (0) 2023.02.23