euny!
errorlog
euny!
전체 방문자
오늘
어제
  • 분류 전체보기 (22)
    • Python (13)
    • 데이터분석 (3)
    • WIL (4)
    • SQL (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 웹크롤링
  • SQL
  • 크롤링
  • BeautifulSoup
  • ㅗ
  • 웹스크래핑

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
euny!

errorlog

[Python] 기초 문법 - 변수 선언, 데이터 타입
Python

[Python] 기초 문법 - 변수 선언, 데이터 타입

2023. 1. 2. 15:41

변수 선언?

- RAM에 저장공간을 만들어 데이터를 저장하는 문법

 

식별자 ( 변수 )

- 저장공간을 구별해주는 문자열

규칙

1. 문법 : 틀리면 에러가 발생되어 다음 코드가 실행되지 않는다.

               대소문자, 숫자, _사용 가능하다.

               대소문자를 구분한다.

               가장 앞에 숫자가 올 수 없다. - 1_data1(X)

               명령어(예약어)를 사용하면 안된다. - def, if, for (X)

2. 컨벤션: 틀려도 코드가 실행이 된다. 단지 보기에 안좋아 지켜주는 규칙이라고 생각하면 된다. ( PEP8)

                 변수 : data_one (snake case 표기법을 따른다)

                 상수 : 대문자로 작성한다. DATA_ONE

 

# 식별자 1개, 데이터 1개
data1 = 1

# 식별자 n개, 데이터 n개
data2 , data3 = 2, 3

# 식별자 n개, 데이터 1개
data4 = data5 = 4

 

데이터 타입

- RAM을 효율적으로 사용하는 문법

1. 기본 데이터 타입

    - int, float, bool, str

 

int : 정수형 데이터

float : 소수형 데이터

bool : True, False 로 구분되는 데이터

str: 문자형 데이터 

 

파이썬은 인터프리터 언어이기 때문에 변수 선언 시 데이터 타입을 지정하지 않아도 자동으로 데이터 타입을 지정한다.

이것을 동적타이핑이라고 한다.

 

type() : 식별자의 데이터 타입을 출력한다

data1, data2, data3, data4 = 1, -5.2, True, 'python'

type(data1), type(data2), type(data3), type(data4)
>> (int, float, bool, str)

2. 컬렉션 데이터 타입 : 식별자 1개, 데이터 n개

   - list, tupe, dict, set

 

list : [] : 순서가 있고, 수정이 가능하다

data1 = [1, 2, 3, 'A', 'B']

 

tuple : () : 순서가 있고, 수정이 불가능하다

data2 = (2, 3, 4, 'A', 'B')

list가 아닌 tuple을 사용하는 이유?

1. tuple은 데이터 수정이 불가하다 .

하지만 위의 이유만으로는 부족하다 왜냐하면 list를 사용하여 데이터를 수정 안해도 되는거 아닌가?

2. 같은 데이터를 가지고 있을 때 tuple 이 list보다 저장공간을 적게 사용한다

import sys

d1 = [1, 2, 3]
d2 = (1, 2, 3)

# 저장공간을 알아 보기 위함
sys.getsizeof(d1), sys.getsizeof(d2)
>> (80, 64)

tuple 데이터 타입은 여러개의 식별자로 받을 수 있다.

data = 1, 2 # 괄호 생략 가능
d1, d2 = data
print(d1, d2)
>> 1 2

dict : {} : 순서가 없고, 수정이 가능하다. 순서값으로 인덱스 대신 키값을 사용한다.

data3 = { 1 : 'one' , 2 : 'two'}

set : set() : 집합 데이터를 표현한다. 중복 데이터를 허용하지 않는다

data4 = set([1, 2, 3, 2])
>> (1, 2, 3)

# 교집합 , 합집합, 차집합
d1 = set([1, 2, 3])
d2 = set([2, 3, 4])

print(d1 & d2, d1 | d2, d1 - d2)
>> {2, 3} {1, 2, 3, 4} {1}

데이터 선택

data[] : [idx], [key], [start:end], [start:end:stride]

* start에 데이터가 없으면 가장 앞을 의미하고, end에 데이터가 없으면 가장 뒤를 의미한다

* 음수 사용가능

data1[3], data1[2:4], data1[:2], data1[3:], data1[:], data1[::2]
>> ('A', [3, 'A'], [1, 2], ['A', 'B'], [1, 2, 3, 'A', 'B'], [1, 3, 'B'])
data1[-2], data1[-2:], data1[::-1]
>> ('A', ['A', 'B'], ['B', 'A', 3, 2, 1])

 

데이터 수정

데이터 선택 = 수정할 데이터

* tuple 은 불가!

print(data1)
data1[3] = 'C'
print(data1)

>> [1, 2, 3, 'A', 'B']
[1, 2, 3, 'C', 'B']

데이터 삭제

del 데이터선택

del data3[2]
>> {'one': 10}
del data1[2:4]
>> [1, 2, 'B']

변수 선언시 주의 할것!

* 얕은 복사, 깊은 복사

data1 = [1, 2, 3]
data2 = data1 # 얕은복사 : 주소값 복사
data3 = data1.copy() # 깊은복사 : 데이터 복사
data1[1] = 4

그림으로 이해하면 아래와 같다.

data1 = [1, 2, 3]
data2 = data1 - 얕은복사 : 주소값 복사
data3 = data1.copy() - 깊은복사 : 데이터 복사
data1[1] = 4

 

변수의 데이터를 문자열에 삽입하는 방법

1. +를 이용하여 이어붙이기 ( data의 타입이 str일때만 가능하다)

data1, data2 = '5', '2'
string = '나는 ' + data1 + '개중에' + data2 + '개를 먹었다'

2. format 이용하기

data1, data2 = 5, 2
string = '나는 {}개중에 {}개를 먹었다'

3. f 이용하기

string = f'나는 {data1}개중에 {data2}개를 먹었다'

'Python' 카테고리의 다른 글

[Python] 기초 문법 - 함수  (0) 2023.01.04
[Python] 기초 문법 - 연산자, 조건문, 반복문  (0) 2023.01.03
[Python] 다양한 모듈 사용해보기2 : json, googletrans, smtplib (day 3)  (0) 2022.12.23
[Python] 다양한 모듈 사용해보기1 : requests, BeautifulSoup, datetime (day 3)  (0) 2022.12.23
[Python] 조건문, 반복문 : if, while, for (day 1-2)  (0) 2022.12.23
    'Python' 카테고리의 다른 글
    • [Python] 기초 문법 - 함수
    • [Python] 기초 문법 - 연산자, 조건문, 반복문
    • [Python] 다양한 모듈 사용해보기2 : json, googletrans, smtplib (day 3)
    • [Python] 다양한 모듈 사용해보기1 : requests, BeautifulSoup, datetime (day 3)
    euny!
    euny!

    티스토리툴바