ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

     

Designed by Tistory.