02_파이썬_변수와_자료형

안녕하세요 Mr_ChooC(codeing)AI 입니다~ 


변수와 자료형

변수

1.     변수란

2.     변수명 지정 방법

기본 자료형

1.     Int

2.     Float

3.     Bool

4.     Str

컬렉션

1.     리스트

2.     튜플

3.     세트

4.     딕셔너리

Mutableimmutable

1.     Mutable

2.     Immutable

실습 코드 github

https://github.com/Chooyoungjun/pythonstudy/tree/main/day02 


변수와 자료형

이제 python 관련 2번째 포스트입니다. 앞에서는 파이썬의 특징과 파이썬 설치 및 실행 방법에 대해서 알아 보았습니다. 지금부터는 변수와 자료형에 대해서 자세하게 알아 보겠습니다. 이렇게 파이썬에 대해서 차근 차근 알아가도록 하겠습니다.

변수

변수에 대해서 왜 알아야 할까요? 그것은 변수를 지정하게 되면 변수가 사용 되는 많은 문장들이나 문법들이 한번에 영향을 줄 수 있기 때문입니다. 변수를 활용하게 되면 수정이나 변경에 유리하게 됩니다. 이렇게 좀 더 코드를 효율적으로 짜기 위해서 변수는 꼭 배워야하는 중요한 내용입니다.

1.    변수(variable)

어떤 데이터를 저장하고자 할 때 사용하는 메모리 저장소

[구조]

변수명 =(등위 연산자) 100()

Ex)

 age = 10

위와 같이 변수를 선언 하면 숫자를 저장 할 수 있는 변수 공간이 생기고 그 공간에 10이라는 숫자를 저장 합니다. 이렇게 변수를 선언하고 저장 할 수 있습니다. 그런데 변수명을 아무렇게나 정해도 괜찮을까요? 변수명을 정하는 규칙이 있습니다.

[실습]


위의 그림과 같이 변수를 할당하고 변수를 불러서 console창에 출력 할 수 있습니다.

2.    변수명 지정 방법

변수명을 정할 때는 주의 사항과 개발자들과 암묵적인 약속이 있습니다.

a.     변수명은 영문, 한글, 숫자, 밑줄(_)로 구성 됩니다.

Ex) day01, name, 성함 등…..

b.    대부분의 특수문자(!,@....)를 사용할 수 없습니다.

Ex) @day01, !name, ^성함 (X) 이렇게 사용 할 수 없습니다.

c.     대문자와 소문자를 구분 합니다.

Namename은 같은 변수명이 아닙니다.

d.    변수명의 첫 글자는 숫자를 사용 할 수 없습니다.

Ex) 1day, 2name, 3성함 (X) 이렇게 사용 할 수 없습니다.

e.     키워드는 사용 할 수 없습니다.

Ex) new, list, dick 등 이런 키워드는 사용 할 수 없습니다.

f.      표기법은 carmel표기법, 혹은 팟홀 표기법 등 일정한 규칙을 가지고 표기를 합니다.

카멜 표기법: 낙타 등처럼 띄어쓰는 글자를 대문자로 쓰는 법

Ex) saveInfo, studentHobby, 등등 중간 글자를 대문자로 쓸 수 있음

팟홀 표기법: 띄어쓰는 부분을 _를 활용해서 변수명 표기

Ex) save_info, student_hobby, 등등 띄어쓰기를 언더바(_) 사용

파이썬 변수 선언의 특징(동적 타이핑)

java에서는 변수를 선언 할 때 변수가 어떤 타입의 변수를 가지는지에 대해서 꼭 명시를 해 주었습니다. int인지 float인지 String인지 등을 명시를 하고 변수명을 정했지만, 파이썬은 변수명과 값만 지정하면 알아서 타입을 정해 줍니다. 그래서 java보다는 변수를 선언하는 것이 편합니다. 이렇게 자동으로 값에 따라서 자료형을 선택해 주는 것을 동적 타이핑이라고 합니다. 그리고 바로 이것이 인터프리터 언어의 장점이라고 할 수 있습니다.

[실습]

위의 내용의 이해를 위해 동적 타이핑으로 데이터가 어떻게 되는지 확인해 보겠습니다.


위의 코드에서 말해 주듯이 name에서는 char, ageint, addressmulti Line.. 동적으로 할당해 주고 있습니다. 그래서 구지 앞에 타입을 적거나 하지 않아도 변수의 타입이 알맞게 변형되어 값이 잘 저장 되는 것을 알 수 있습니다. 갑자기 자료형이 나와서 당황 하셨죠? 바로 뒤에서 설명해 드리니 당황하지 마세요~

기본 자료형

지금까지는 변수를 생성하고 사용하는 법에 대해서 배웠습니다. 지금부터는 변수 명의 변경이 아닌 변수 자료형 종류(int, float, bool, string, …)에 대해서 알아보고 특징을 알아가도록 하겠습니다.

1.    정수(Int)

정수형 자료형 입니다. 그래서 소수점을 버림하여 보여 줍니다. 그리고 다양한 int에 대해서 실습을 통해서 확인해 보도록 하겠습니다.

[실습]


위의 코드에서 말해 주듯이 소수점 이하는 버림, True1 Flase0 그리고 char100int100으로 변환 시켜줍니다. 이렇게 다향한 type이 있는 것을 아시면 되겠습니다.

2.    Float(실수)

Float은 실수 자료형 입니다. 그래서 int와 다르게 소수점이하도 표시 할 수 있는 것을 알 수 있습니다. 소수점 표시 이외에도 다양한 하게 있는데 간단하게 표로 정리해 보도록 하겠습니다.


위의 표 외에도 어떻게 쓰이는지 실습을 통해서 알아보도록 하겠습니다.


위의 snapshot과 같이 정수형을 실수로 변환 시켜 주고 truefalse1 0으로 변환 시켜 주고 문자열을 변환시켜주는 것을 확인 할 수 있습니다.

3.    Bool(논리)

Bool은 논리 자료형 입니다. 그래서 False True를 가질 수 있습니다.


다양한 경우의 논리 자료형에 대해서 실습을 통해서 더 알아 보도록 하겠습니다.


위의 주석을 참고하여 다양한 경우에 대해서 이해 하시면 될 것 같습니다.

4.    Str(문자열!!)

문자열은 참 중요한 변수 타입 입니다. 그리고 여기에서 파이썬 언어의 가장 큰 특징이 보이는 곳이라고 할 수 있습니다.


위의 표와 같이 의 구분을 하지 않는 것을 알 수 있습니다. Multiple line도 입력이 가능하다는 것을 알 수 있습니다.

 

A.     문자열 변환

다양한 타입의 값을 문자열로 강제 변환 시킬 수도 있습니다. 실습을 통해서 알아보도록 하겠습니다.

[실습]


위의 실습 결과와 같이 다양한 타입의 값을 문자열로 변환 시킬 수 있는 것을 알 수 있습니다.

B.     Indexing

파이썬 문자열의 특징 string으로 저장을 하면 indexing을 편하게 할 수 있도록 설정해 두었습니다. 단순하게 문자열 변수 다음에 [숫자]를 입력 하면 숫자 index에 있는 문자열을 반환 하는 것을 알 수 있습니다. 컴퓨터는 보통 0부터 시작 하기 때문에 0이 첫 번째 문자 인 것을 숙지하시고 생각 하셔야 합니다.

[실습]


위의 그림에서 보이는 index가 어떤 규칙이 있는지 꼭 확인 하셔야 합니다. 앞에서 시작 할 때는 0부터 시작 뒤에서 시작 할 때는 -1 부터 시작 이런 차이점을 꼭 확인해 주세요!


C.     Slicing

2번째 파이썬 문자열 특징 slicing입니다. 이것 역시 굉장히 쉽게 사용 할 수 있도록 되어 있습니다.

문자열 슬라이싱은 인덱스를 활용하여 하나이상의 문자를 불러 올 때 사용합니다.

[문법]

S[start:stop:step]

Start: 시작 index를 지정 합니다. 없다면 처음부터 시작

Stop: 종료 index를 지정 합니다. 없다면 끝까지 추출

Step: index의 증감 값입니다. 생략하면 1씩 변화 합니다.

[실습]


위의 실습과 같이 문자 slicing이 잘 되는 것을 확인 할 수 있습니다.

컬렉션

지금까지는 하나의 값들만 저장하는 자료형을 살펴 보았습니다. 지금부터는 여러 개를 동시에 묶어서 관리 할 수 있는 컬렉션(리스트, 튜플, 세트, 딕셔너리)에 대해서 알아보도록 하겠습니다.


1.    리스트

여러 값을 저장 할 수 있는 수단 중 하나 입니다. 저장하고자 하는 값의 타입이 다르더라도 저장이 가능 합니다.

[구조]

li = [1, 2, ….]

lir = list(반복가능객체)

[실습]


위의 코드와 같이 list가 잘 생성되고 있는 것을 알 수 있습니다.

[리스트 index관련 실습]


위의 실습 코드와 같이 인덱스를 통해서 list안에 있는 값을 불러 올 수 있습니다. 규칙은 문자열 인덱스와 같은 것을 알 수 있습니다.

[리스트 추가 삭제 관련 실습]


위의 실습 코드대로 값을 입력 할 수도 있고 뺄 수도 있습니다. 참고 하시면 되겠습니다.

2.    튜플

튜플은 리스트와 유사하지만 가장 큰 차이점은 수정 할 수 없다라는 특징이 있습니다. 나머지는 리스트와 차이는 없습니다.

[문법]

T=(1, 2, …)

T= tuple(반복가능 객체)

[실습]


3.    세트

세트는 수학의 집합 개념을 구현한 자료형 입니다. 다른 자료형과 다른 점은 세트에 저장된 값들은 순서가 없기 때문에 인덱싱과 슬라이싱을 사용 할 수 없습니다. 대신 중복된 값의 저장이 불가능 하다는 특징을 활용해 중복수 제거용으로 사용하거나, 차집합, 합집합, 교집합과 같이 수학 집합의 개념이 필요할 때 사용 해 줍니다.

A.     세트의 생성 방법

세트 변수명+등위 연산자+{1,2,3….}

Ex) s = {1, 2, 3…}

세트 변수명+등위 연산자+ set(반복가능객체)

Ex) s=set(range(4))

B.     세트의 특징

중복되는 값을 저장 할 수 없습니다.

저장되는 순서가 없습니다.

C.     세트의 요소의 추가와 삭제

세트는 추가와 삭제 2가지 밖에 없고 앞에서 배웠던 자료형 처럼 index가 필요가 없습니다. 추가하는 메서드는 add이고 삭제 하는 메서드는 removediscard 입니다.

[실습]


위의 실습대로 set를 생성해서 중복되는 값이 저장 되지 않는지, dictionary 타입으로 만들어 질 수도 있으니 조심해야 하는 부분 확인과 set에 값을 더하고 빼는 메서드에 대해서 알아 보았습니다.

4.    딕셔너리(dict)

말그대로 사전을 의미합니다. 사전은 keyword를 기반으로 의미를 찾을 수 있는 책입니다. 이와 마찬가지로 딕셔너리도 키(key)값을 입력하면 안에 있는 value를 반환하는 자료형 입니다.

[구조]

dict={1:1, 2,2 …}

dict[1]==1

[추가]

dic[새로운 키]= 새로운 값

[수정]

dic.update(1=수정값1)

[삭제]

dic.pop(1)

1이 삭제가 됩니다.

위의 내용을 기반으로 실습을 진행해서 dictionary에 대해서 이해해 보도록 하겠습니다.


위에서 나온 모든 실습들을 마무리 하였습니다.

Mutableimmutable

지금까지 다양한 자료형에 대해서 배웠습니다. 이러한 자료형들이 어떠한 기준으로 나누어져 있는지 확인해 보도록 하겠습니다.


위의 표와 같이 나눌 수가 있습니다. 가만히 보면 앞에서 설명했을 때 수정이 가능한 메서드가 있는 것이 mutable쪽에 있는 것을 확인 할 수 있습니다. 그래서 수정 가능한 자료형과 수정 불가능한 자료형이 어떤 차이점을 가지고 있는지 한번 확인하고 가보겠습니다. 자료형이 저장되는 주소를 확인할 수 있는, 즉 메모리에 어디에 위치했는지를 알려주는 id메서드를 활용하여 확인해 보겠습니다.

1.    Mutable

Mutable한 자료형은 할당 받은 메모리에 저장되어 있는 값을 다른 값으로 변경할 수가 있습니다.

[실습]


위의 실습에서 메모리의 저장 위치가 변하지 않는 것을 알 수가 있습니다. 이러한 뜻은 메모리의 저장 위치가 변하지 않은 상태에서 값을 변경했다라는 의미입니다. 그래서 같은 주소를 가지고 값을 변경할 수 있다 라는 의미를 가지고 있습니다.

2.    Immutable

Immutable한 자료형은 할당 받은 메모리에 저장되어 있는 값을 다른 값으로 변경할 수가 없습니다.

[실습]


위의 실습에서 메모리의 저장 위치가 변하는 것을 알 수 있습니다. 이러한 뜻은 메모리의 저장 위치가 변해야지만 값을 변경 할 수 있다라는의미 입니다. 그래서 같은 주소를 가지고 값을 변경을 할 수가 없습니다. 이렇게 mutableimmutableRam단위에서 어떻게 다른지 확인해 보았습니다.

지금까지 변수와 자료형에 대해서 자세하게 다루어 봤습니다. 앞으로는 어떠한 자료형이 오든 잘 활용하였으면 좋겠습니다. 다음 포스트에서는 기본 입출력에 대해서 자세하게 다루도록 하겠습니다. 긴 글을 읽어 주셔서 감사합니다.

 

Comments