Python의 기본개념, 변수선언 및 할당, Data type별 사용예시를 소개합니다.




개요


  • 아래와 같은 내용들을 정리합니다.

    • 파이썬을 활용함에 있어 가장 기본이 되는 개념을 정리

    • 변수를 선언하고 값을 할당하는 방법 정리

    • 데이터 타입별 사용 예시 정리

1. Variable declaration (변수선언) & value assignment (변수 값 할당)

  • 변수는 데이터를 담는 그릇 이다.

  • 변수에는 숫자, 문장, file 등을 담을 수 있다.

  • 변수, 함수, 클래스, 모듈 등의 이름을 ‘식별자’ 라고 한다.


variable naming (변수 이름 규칙)

  • 숫자로 시작하는 이름을 제외하고 영문 대소문자, _, 숫자로 구성가능

  • 아래의 예제는 모두 valid한 변수 이름

  • 일반적으로 해당 변수를 표현하고자 하는 정확하고 간결한 이름을 사용하는 것이 원칙

  • 왜 이러한 원칙들을 정하는 걸까?

    • 코드를 읽은 것을 더 쉽게 할 수 있음

    • e.g) a = 1000의 경우보다 student_num = 1000로 명시한 것이 변수에 대한 이해가 더 직관적임

    • 단순하게 입력한 변수가 많을 수록 추후에 분석과정에서 헷갈리는 경우가 많음

    • e.g) df, df1, df2 … 와 같이 해두는 경우 어떤 데이터가 어떤 변수에 담겨있는지 다시 위쪽에서 탐색하는 경우가 발생

변수이름 실습

규칙에 따른 valid한 변수선언

1
2
3
4
5
6
7
abcABC = 100
_abc124 = 200
ABC124 = 200
a456BC = 100

a = 200
number_of_students = 200

규칙을 어기고 변수선언을 하는 경우

  • 변수는 숫자로 시작하는 이름으로 선언할 수 없다.
1
4 = 9 
  • 변수명이 무엇이든 ‘시작’ 하는 문자가 ‘숫자’이면 무조건 에러가 발생한다.
1
4a = 9

대입연산자 =

  • 변수를 ‘선언’ 할때 사용되는 연산자

  • 대입 : 오른쪽의 수식이나 값을 evaluation(계산) 한 뒤, 왼쪽에 명시된 변수에 값을 대입하는 것을 의미

  • 대입이 되면 변수는 해당 값을 가지게 된다.

  • 데이터에 대한 일종의 ‘별명’ , ‘별칭’ 이라고 이해하면 쉽다.

Case 1. 알파벳 (가능)

  • 대소문자 모두 가능

  • 한글도 가능

1
2
a = 1 # a라는 변수에 1이라는 값을 대입한다.
print(a) # a라는 변수의 값을 print해라!
1
1
2
3
A = 1

print(A)
1
1
2
3
변수 = 1

print(변수)
1

Case 2. 알파벳 + 숫자 (가능)

1
2
3
a1 = 1

print(a1)
1

Case 3. 알파벳 + 언더바(_) (가능)

1
2
3
a_ = 1

print(a_)
1

Case 4. 언더바(_) + 알파벳 (가능)

1
2
3
_a = 1

print(_a)
1

Case 5. 숫자 + 알파벳 (불가능)

1
1a = 1

Case 6. 특수문자 (불가능)

1
* = 7

Case 7. 언더바를 제외한 특수문자 (불가능)

1
a$ = 6

Case 8. 변수의 이름 사이의 공백 (불가능)

1
a b = 6

주로 변수는 소문자 알파벳으로 생성하고, 필요시 언더바숫자를 붙히는 방식이 일반적

1
test = 10
1
test01 = 20
1
test_01 = 30

comment(주석)

  • 코드에서 #으로 시작하는 뒷 부분은 파이썬에서 실행되지 않음

  • why? python이 소스코드를 실행하면서 #를 만나면 무시하기 때문

  • 개발자(사람)가 보기 위한 용도로 사용

1
2
a = 10 # int 
b = 11.4 # float 
1
2
3
4
5
# you can declara the value by using '=' 
# on the left side of  '=' means 'value name' and the right side means 'value'

a = 10
b = 11.4
  • 함수란 특정 기능을 반복적으로 호출하여 사용가능한 코드블럭을 의미한다.

  • print() 구문 사이에 값을 직접 집어 넣으면, 바로 값이 출력된다.

  • print() 구문 사이에 변수 이름을 집어 넣으면, 그 값이 출력이 된다.

  • , 로 여러 변수를 나열하면 한줄에 출력할 수 있다.

  • 기본적으로는 한칸 띄어쓰기 후 출력하는 것이 보통이다.

Case 1. 바로 값을 집어넣는 경우

1
2
print(123)
print('Hello')
123
Hello

Case 2. 선언한 변수를 집어넣는 경우

1
2
3
4
5
a = 'Hello'
b = 99


print(a, b)
Hello 99

Case 3. 두가지를 동시에 하는 경우

1
print(a, 10, 200, b)
Hello 10 200 99

print함수 설정 (sep & end)

  • sep : 구분자, 각 출력할 변수 사이에서 구별하는 역할

  • end : 마지막에 출력할 문자열

1
print(a, b, 10, 100, sep='*', end='!!')
Hello*99*10*100!!

데이터 타입 (기초)

기본 데이터 타입

  1. int(정수)

  2. float(실수)

  3. str(문자열)

  4. bool(참/거짓)


관련 함수

type : 해당 변수 , 값의 type 을 확인하는 함수

int(정수)

1
2
a = 1
type(a)
int

float(실수)

1
2
a = 3.14
type(a)
float

str & object (문자)

1
2
string = 'Hello'
stirng_2 = "Hello"
1
type(string)
str
1
type(stirng_2)
str

Bool(참/거짓)

1
2
a = False
print(a)
False
1
type(a)
bool

None

  • 아무런 값을 가지지 않을때 사용

  • Python에서는 None 값, 다른 언어에서는 보통 Null, nil등과 같은 의미

  • Null : 사전적 의미 -> Nullify (무효화하다) 를 의미

1
a = None
1
type(a)
NoneType
1
print(a)
None

데이터 타입 (집합)

집합 형태의 데이터 타입

  1. list (순서 O, 집합)

  2. tuple (순서 O, 읽기 전용 집합)

  3. set (순서 X, 중복X 집합)

  4. dict (key, value로 이루어진 사전형 집합)

list (순서가 있는 집합)

  • [] 형태로 표현
1
mylist = []
1
mylist
[]
1
type(mylist)
list
1
mylist = [1, 3, 2, 4, 5]
1
mylist
[1, 3, 2, 4, 5]

list에 값을 추가하기

  • append라는 함수를 사용

  • list명.append(추가할 값 입력)

1
mylist = []
1
mylist
[]
1
mylist.append(1) # mylist 라는 list에 1이라는 값을 추가
1
mylist
[1]
1
2
mylist.append(2)
mylist.append(3)
1
mylist
[1, 2, 3]

list에 값을 제거하기

  • remove 라는 함수 사용

  • list명.remove(지울 값)

1
mylist
[1, 2, 3]
1
mylist.remove(1)
1
mylist
[2, 3]
1
mylist.remove(1)

여러 값들이 포함되어 있을 때 제거 순서

1
2
3
4
5
6
7
mylist = []
mylist.append(1)
mylist.append(2)
mylist.append(3)
mylist.append(1)
mylist.append(2)
mylist.append(3)
1
mylist
[1, 2, 3, 1, 2, 3]
1
mylist.remove(1)
1
mylist
[2, 3, 1, 2, 3]
1
mylist.remove(1)

입력 순서 상관없이 1과 일치하는 값 모두가 삭제된다.

1
mylist
[2, 3, 2, 3]
1
mylist.remove(1)

mylist.remove(1) 명령어로 리스트내의 모든 1이 삭제되어 더이상 삭제할 1이 없기 때문에 에러 발생

list 인덱싱(indexing) -> 색인

1
mylist = [1, 2, 3, 4]

python 의인덱스는 0번 부터 시작

1
mylist[0] #0번째 인덱스를 출력하라
1
1
mylist[3]
4
1
mylist[4]
  • 현재 0 ~ 4까지 즉, 0번째부터 ~ 3번재까지의 index 값들이 있다.

  • 4번째 인덱스는 없는 값이 기에 에러가 난다.

1
mylist[-5]

-가 붙으면 인덱스 번호가 ‘뒤쪽’부터 실행된다.

  • -5이면 맨뒤에서 앞쪽으로 5번째 인덱스번호를 의미

  • 존재하지 않는 인덱스 값이기 때문에 출력되지 않는다.

list 인덱스로 접근하여 값 바꾸기

1
mylist
[1, 2, 3, 4]
1
mylist[0]
1
1
mylist[0] = 100 #0번째 인덱스의 값(원래는 1) 을 100으로 바꿔라
1
mylist
[100, 2, 3, 4]

list의 전체 길이 (사이즈) 알아내기

  • len() 함수를 사용한다.

  • len(알아내고 싶은 변수명)

1
len(mylist)
4

tuple (순서가 있는 집합, 읽기 전용)

  • tuple은 () 로 표현한다.

  • 읽기 전용‘수정’ 이 불가함을 의미한다.

  • 수정은 데이터의 추가, 변경, 삭제 등을 의미한다.

1
mytuple = (1, 2, 3, 4, 5)

tuple에 값 추가하기 (불가능)

1
mytuple.append(1)

tuple 값 제거하기 (불가능)

1
mytuple.remove(1)

인덱스로 접근하여 값 바꾸기 (불가능)

1
mytuple[0] = 1

길이 파악하기 (가능)

1
len(mytuple)
5
1
mytuple
(1, 2, 3, 4, 5)

set (순서 X, 중복 X)

  • set은 {} 으로 표현된다.
1
myset = set()
1
myset
set()
1
type(myset)
set

set에 값 추가하기

1
2
3
myset.add(1)
myset.add(2)
myset.add(3)
1
myset
{1, 2, 3}
1
2
3
4
5
6
myset.add(1)
myset.add(2)
myset.add(3)
myset.add(1)
myset.add(2)
myset.add(3)
1
myset
{1, 2, 3}
1
myset.add(4)
1
myset
{1, 2, 3, 4}

dict (사전형 집합, key와 value 쌍)

  • {}로 표현한다.

  • key와 value라는 값을 가진다.

  • 하나의 key는 그에 상응하는 value가 필요하다.

1
mydict = dict()
1
mydict
{}
1
type(mydict)
dict

값을 추가하기

1
mydict = dict()
1
2
3
4
mydict['apple'] = 123

# key 는 'apple'
# value 는 123 
1
mydict['apple']
123
1
mydict[0] = 2
1
mydict[0]
2

mydict의 키(key)는 문자형 / 숫자형이 혼용 가능하다.

1
mydict
{0: 2, 'apple': 123}

float(실수)도 키로써 입력이 가능합니다.

1
mydict[3.14] = 1
1
mydict
{0: 2, 3.14: 1, 'apple': 123}

값을 바꾸기

1
mydict['apple'] = 'byebye'
1
mydict
{0: 2, 3.14: 1, 'apple': 'byebye'}

길이 파악하기

1
len(mydict)
3

댓글남기기