봉지라면의 봉지 속 이야기

BongjiNoodle's Packet Inside Story

나의 진솔담백한 이야기

컴퓨터공학/데이터분석기초실습

데이터분석기초실습] 2. 파이썬 되짚기① (기본 문법, 변수, 자료형, 자료구조(리스트))

봉지라면 2022. 11. 3. 19:06
반응형

 

파이썬 되짚기 ①

  • Python 기본 문법
    PEPL, 들여쓰기, 세미콜론, 주석, import 문
  • 변수
    변수 선언, 변수의 예, 여러가지 변수 생성방법
  • 자료형
    Scalar: 기본 자료형, 문자열
  • 자료구조
    리스트

 

 

 

 

 

 


파이썬 기초문법

REPL(Read Evaluate Print Loop) 사용

  • 콘솔 화면에서 파이썬 구문을 입력하면 바로 결과를 반환하고, 다시 입력할 수 있음

들여쓰기

  • if, for, class, def 등의 코드블럭 작성
    ":" 표시 후 줄 바꿔서 들여쓰기
    같은 블록 내에서는 들여쓰기 칸 수가 같아야 함
    공백과 탭을 섞어 쓰면 안 됨

세미콜론

  • 한 줄에 여러 명령문을 쓰려면 세미콜론 사용

주석

  • 프로그램의 하는 일을 설명하는 설명 글 (코드에 대한 내용 해석 및 이해)
  • 한 줄 주석은 #으로 표기
  • 여러 문장을 주석으로 표시하려면 따옴표 3개를 연속으로 사용 (시작과 종료에 각각 표시)

import문

  • Python은 여러 함수 라이브러리를 제공함
  • import문을 통해서 필요한 라이브러리를 가져오고, 원하는 method를 실행시킬 수 있음
  • 라이브러리의 명칭이 길면 "import numpy as np"와 같이 축약할 수 있음

변수

변수(Variable)

  • 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간
  • 정수, 실수, 문자열 등의 자료값을 저장
  • 변수는 데이터를 담는 상자로 생각할 수 있음

변수 선언

a = 'python'

 

변수의 예

a = 'python'		#문자열 변수
b = 132			#정수형 변수
c = 1.2			#실수형 변수
d = ['a', 'b'] 		#문자열 리스트
e = {'name' : 'lee'}	#문자열 사전

 

  • 변수의 내용은 언제든 바꿀 수 있다.

 

 

여러가지 변수 생성 방법

a, b = 'var1', 'var2'

c = ('tuple1', 'tuple2')

d = ['list1', 'list2']

print(a)
print(b)
print(c)
print(d)

* 파이썬에서 문자열은 큰따옴표나 작은따옴표를 이용하여 만들 수 있음

  "Hello World!"도 문자열이고 'Hello World!'도 같은 문자열임

* 문법적인 의미를 가진 경우 ', 크게 의미를 가지지 않는 경우 " 사용.

 

데이터 변수 에러

  • 선언된 변수가 아닌 경우 에러를 출력
a = 10
c

 

데이터변수 형태 확인

  • 파이썬에서 변수의 자료형을 알려면 변수의 이름에 type()함수 적용
  • 파이썬은 변수에 자료형 지정없이 데이터 저장 가능(다른 언어는 자료형 지정 필요)
    파이썬은 동적형 결정(Dynamic Typing)사용, 다른 언어는 정적형 결정(Static Typing) 사용
    * 즉 동일한 변수에 정수 데이터를 저장하였다가, 실수로 변환 가능
a = 10		#a 변수에 10의 값을 할당
b = 3.14	#b 변수에 3.14의 값을 할당
c = True	#c 변수에 True라는 값을 할당

print("a의 값은?", a)
print("a의 데이터 변수 형태는?: ", type(a))
print("b의 값은?", b)
print("b의 데이터 변수 형태는?: ", type(b))
print("c의 값은?", c)
print("c의 데이터 변수 형태는?: ", type(c))

 

변수의 이름 설정

  • 대소문자를 구분
  • 변수의 이름은 영문자와 숫자, 밑줄(_)로 구성
  • 변수 이름 중간에 공백이 허용되지 않음
  • 숫자로 시작할 수 없음
  • 특수기호(?, #, @, -, +, ... 등)는 허용되지 않음
  • 파이썬 에약어(Reserced Keywords)는 사용 불가

 

파이썬 예약어(Reserved Keywords)

  • 파이썬 언어에 정의된 예약어들은 변수 이름으로 사용될 수 없음
  • Keyword를 import하면 파이썬의 예약어들을 확인할 수 있음
import keyword
print(keyword.kwlist)

 


자료형

자료형

  • 변수가 저장할 데이터의 종류를 지정하는 것
  • 파이썬에서 사용할 수 있는 기본 자료형은 4가지
  1. 정수(integer)
  2. 실수(float) *Python에는 double 자료형 없음
  3. 문자열(string)
  4. 부울형(boolean)

 

부울자료형(논리형)

부울자료형(논리형)은 다른 자료형과 달리 True 또는 False 값만 사용 가능

a = True
type(a)

b = False
type(b)

 

  • 논리에서 True는 1을 의미하고 False는 0을 의미함
  • 0이 아니면 무조건 1로 처리

비교연산자

  • 어떠한 기능을 수행하는 기호로써, 두 변수의 값을 비교 시 사용
Index 비교 연산자 설명
1 X==Y X와 Y의 값이 같은 경우
2 X!=Y X와 Y가 값이 같지 않은 경우
3 X>=Y X가 Y의 값보다 크거나 같은 경우
4 X<=Y X가 Y의 값보다 작거나 같은 경우
5 X>Y X가 Y의 값보다 큰 경우
6 X<Y X가 Y의 값보다 작은 경우

 

비교 연산자를 이용해 부울자료형(논리형) 데이터를 표현

print(10 == 10)
print(10 != 10)
print(10 >= 10)
print(10 <= 10)
print(10 >  10)
print(10 <  10)

 

문자열(String)

문자열은 글자를 표현하는 자료형

문자열객체는 따옴표 (' ' or " ")를 통해 표현 가능

  • 반드시 동일한 따옴표의 형태로 표현되어야 함

 

문자열에서는 왜 ' '와 " "를 동시에 사용할까?

message = '철수가 "안녕"이라고 말했습니다.'
message		#'철수가 "안녕"이라고 말했습니다.'
print(message)	#철수가 "안녕"이라고 말했습니다.

' '을 사용할 때에는 escape 문자인 \'을 사용 (\n= 줄바꿈, \t= 탭 문자)

 

문자열 함수

  • Split: 문자열의 공백을 기준으로 문자열을 나누어주는 함수
  • Find: 문자열을 검색 후 해당하는 문자열이 있으면 문자열의 가장 앞자리 위치의 값을 나타내는 함수
  • Replace: 문자열에서 특정 문자를 변환할 때 사용하는 함수
  • Strip: 문자열에서 특정 문자 또는 문자열을 제거할 때 사용하는 함수
  • Len: 문자열의 길이를 반환하는 함수
  • Join: 문장열을 결합(join)하여 한 문자열로 만들 때 사용하는 함수
    '구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 구분자를 넣어서 하나의 문자열로 결합
  • Partition: 주어진 문자열을 구분자를 기준으로 변수에 각각 할당하는 함수
  • Format
  • Capitalize: 두문자를 대문자로 변경
  • Strip: 공백 제거

자료구조

자료구조(Data Structure)

자료를 효율적으로 저장하는 여러가지 구조를 의미함

  • 가변속성(가변객체: Mutable): 속성의 내용을 변경할 수 있는 객체
  • 불변속성(불변객체: Immutable): 속성의 내용을 변경할 수 없는 객체

 

가변속성(Mutable) 예제: List, Set, Dict 등

불변속성(Immutable) 예제: Int, Float, String, Tuple 등

 

리스트(List)

리스트는 순서가 있는 값들의 집합 (대괄호[]로 작성, 내부 원소는 ,로 구분)

 

리스트를 사용하는 경우는 서로 관련된 데이터를 차례로 접근해 처리하고 싶은 경우에 사용

단 index 범위를 벗어나면 에러 발생

 

리스트는 데이터들에게 하나하나 이름을 붙이지 않고 전체 집단에 하나의 이름을 부여한 다음, 숫자로 된 번호를 통해 각각의 데이터에 접근하는 방법

 

파이썬에서는 다양한 종류의 데이터를 하나의 리스트 안에 저장 가능

# 리스트의 형태
data=[10, 20, 30, 40, 50, 60]	#data를 list 형태로 생성
print(data)			#data의 값을 출력
print(type(data))		#data에 저장된 형태를 나타냄

 

리스트 인덱싱(List Indexing)

인덱싱이란 리스트에서 하나의 요소를 인덱스 연산자를 통해 접근하는 것을 의미

 

인덱스는 정수이며 항상 0에서부터 시작

 

인덱스는 0에서부터 시작하므로 전체 길이의 -1개 만큼의 개수를 가짐

data = ["사과", "배", "포도", "딸기", "토마토", "메론"]
print(data)	#['사과', '배', '포도', 딸기', '토마토', '메론']
print(data[0])	#사과

 

리스트 슬라이싱(List Slicing) *중요

슬라이싱: 리스트 안에서 범위를 지정해 원하는 요소들을 선택하는 연산

 

data라는 변수에 저장되었을 경우 data[start:end:step]까지의 값을 표현

 

start, end 값이 생략되어 표현 가능

  • [::2]의 의미: 처음부터 끝까지의 모든 원소들에 대해서 하나 걸러 하나씩 가져옴
  • [::3]의 의미: 처음부터 끝까지의 모든 원소들에 대해서 두 개 걸러 하나씩 가져옴
  • [::-1]의 의미: 역순으로 변환

 


리스트 기초연산

여러 개의 리스트를 하나의 리스트로 병합

리스트는 서로 다른 두 개 이상의 리스트 데이터를 병합 가능

data1 = [10, 20, 30, 40, 50]
data2 = [5, 10, 15, 20, 25]

data1 + data2
#[10, 20, 30, 40, 50, 5, 10, 15, 20, 25] 출력

 

리스트 병합은 대응되는 원소끼리 더해지는 것이 아님(단순 리스트 합체)

 

대응되는 원소끼리 더하려면 Numpy를 이용

 

데이터 삽입 및 삭제

리스트에 데이터를 추가하는 방법은 append 함수, insert 함수, extend 함수 사용

  • append: 데이터를 마지막에 추가
  • insert: 데이터를 지정한 위치에 추가
  • extend: 데이터(리스트)를 마지막에 추가

리스트에 데이터를 삭제하는 방법은 Remove 함수, Pop 함수, Del 함수 사용

  • Remove: 선언한 데이터 삭제
  • Pop: 마지막 데이터 삭제
  • Del: 해당 인덱스 데이터 삭제

 

[추가]append 함수

lists=[1, 100, 'python']
print(lists)

lists.append('py')
print(lists)

'''
출력 결과
[1, 100, 'python']
[1, 100, 'python', 'py']
'''

 

[추가]insert 함수

list=[1, 100, 'python']
print(list)

list.insert(1, 'py')
print(list)

'''
출력 결과
[1, 100, 'python']
[1, 'py, 100, 'python']
'''

 

[추가]extend 함수

list=[1, 2, 3]
print(list)

list.extend([4, 5, 6])
print(list)

'''
출력 결과
[1, 2, 3]
[1, 2, 3, 4, 5, 6]
'''

 


[삭제]Remove 함수

list=[1, 2, 3]
print(list)

list.remove(2)
print(list)

'''
출력 결과
[1, 2, 3]
[1, 3]
'''
#번외.	특정 원소가 여러번 들어있을 경우

#	특정 원소 모두 삭제 방법
list1=[1,2,3,1,2,3]
print(list)

while 3 in a:
	list1.remove(2)
print(list1)

'''
출력 결과
[1,2,3,1,2,3]
[1,3,1,3]
'''

#	그냥 remove를 사용할 경우
list2=[1,2,3,1,2,3]
print(list2)

list2.remove(2)
print(list2)

'''
출력 결과
[1,2,3,1,2,3]
[1,3,1,2,3]
'''

 

[삭제]Pop 함수

list=[1,2,3,4,5]
print(list)

list.pop
print(list)

'''
출력 결과
[1,2,3,4,5]
[1,2,3,4]
'''
list=[1,2,3,4,5]
print(list)

list.pop(3)
print(list)

'''
출력 결과
[1,2,3,4,5]
[1,2,3,5]
'''

 

[삭제]Del 함수

list=[1,2,3,4,5]
print(list)

del list(3)
print(list)

'''
출력 결과
[1,2,3,4,5]
[1,2,3,5]
'''

 


리스트 내부 값 검색

  • Min: 데이터 중 최솟값 검색
  • Max: 데이터 중 최댓값 검색
  • Count: 찾고자 하는 원소의 개수 검색
  • In: 리스트 안에 선언한 데이터 검색

 

Min 함수

list=[1,2,3,4,5]
print(list)

print(min(list))

'''
출력 결과
[1,2,3,4,5]
1
'''

 

Max 함수

list=[1,2,3,4,5]
print(list)

print(max(list))

'''
출력 결과
[1,2,3,4,5]
5
'''

 

Count 함수

 list=[1,2,3,4,5,1,3,5]
 print(list)
 
 print(list.count(3))
 '''
 출력 결과
 [1,2,3,4,5,1,3,5]
 2
 '''

 

In 구문

list=[1,2,3,4,5]
print(list)

print(3 in list)
print(7 in list)
'''
출력 결과
[1,2,3,4,5]
True
False
'''

 


리스트 데이터 정렬, 역순 처리

  • Sort: 데이터 순서 정렬

Sort 함수 (오름차순)

list=[5,2,3,4,1]
print(list)

list.sort()
print(list)

'''
출력 결과
[5,2,3,4,1]
[1,2,3,4,5]
'''

 

Sort 함수 (내림차순)

list=[5,2,3,4,1]
print(list)

list.sort(reverse=True)
print(list)

'''
출력 결과
[5,2,3,4,1]
[5,4,3,2,1]
'''

 

Sort 함수 (Key값 순)

good='나는 파이썬을 잘하고 싶다'
print(good)

list=good.split()
print(list)

list.sort(key=len)
print(list)

'''
출력 결과

나는 파이썬을 잘하고 싶다
['나는', '파이썬을', '잘하고', '싶다']
['나는', '싶다', '잘하고', '파이썬을']
'''

본 데이터분석기초실습은 [지능형 데이터 공학 및 응용 연구실 - 경상국립대학교 컴퓨터과학부]에서 수업한 자료를 토대로 정리하여 작성하였습니다.



반응형