썬
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
|
규칙을 어기고 변수선언을 하는 경우
- 변수는 숫자로 시작하는 이름으로 선언할 수 없다.
- 변수명이 무엇이든 ‘시작’ 하는 문자가 ‘숫자’이면 무조건 에러가 발생한다.
대입연산자 =
-
변수를 ‘선언’ 할때 사용되는 연산자
-
대입 : 오른쪽의 수식이나 값을 evaluation(계산) 한 뒤, 왼쪽에 명시된 변수에 값을 대입하는 것을 의미
-
대입이 되면 변수는 해당 값을 가지게 된다.
-
데이터에 대한 일종의 ‘별명’ , ‘별칭’ 이라고 이해하면 쉽다.
Case 1. 알파벳 (가능)
1
2
| a = 1 # a라는 변수에 1이라는 값을 대입한다.
print(a) # a라는 변수의 값을 print해라!
|
1
1
1
Case 2. 알파벳 + 숫자 (가능)
1
Case 3. 알파벳 + 언더바(_) (가능)
1
Case 4. 언더바(_) + 알파벳 (가능)
1
Case 5. 숫자 + 알파벳 (불가능)
Case 6. 특수문자 (불가능)
Case 7. 언더바를 제외한 특수문자 (불가능)
Case 8. 변수의 이름 사이의 공백 (불가능)
주로 변수는 소문자 알파벳으로 생성하고, 필요시 언더바나 숫자를 붙히는 방식이 일반적
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() 구문 사이에 값을 직접 집어 넣으면, 바로 값이 출력된다.
-
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. 두가지를 동시에 하는 경우
Hello 10 200 99
print함수 설정 (sep & end)
1
| print(a, b, 10, 100, sep='*', end='!!')
|
Hello*99*10*100!!
데이터 타입 (기초)
기본 데이터 타입
-
int(정수)
-
float(실수)
-
str(문자열)
-
bool(참/거짓)
관련 함수
type : 해당 변수 , 값의 type 을 확인하는 함수
int(정수)
int
float(실수)
float
str & object (문자)
1
2
| string = 'Hello'
stirng_2 = "Hello"
|
str
str
Bool(참/거짓)
False
bool
None
-
아무런 값을 가지지 않을때 사용
-
Python에서는 None 값, 다른 언어에서는 보통 Null, nil등과 같은 의미
-
Null : 사전적 의미 -> Nullify (무효화하다) 를 의미
NoneType
None
데이터 타입 (집합)
집합 형태의 데이터 타입
-
list (순서 O, 집합)
-
tuple (순서 O, 읽기 전용 집합)
-
set (순서 X, 중복X 집합)
-
dict (key, value로 이루어진 사전형 집합)
list (순서가 있는 집합)
[]
list
1
| mylist = [1, 3, 2, 4, 5]
|
[1, 3, 2, 4, 5]
list에 값을 추가하기
-
append라는 함수를 사용
-
list명.append(추가할 값 입력)
[]
1
| mylist.append(1) # mylist 라는 list에 1이라는 값을 추가
|
[1]
1
2
| mylist.append(2)
mylist.append(3)
|
[1, 2, 3]
list에 값을 제거하기
-
remove 라는 함수 사용
-
list명.remove(지울 값)
[1, 2, 3]
[2, 3]
여러 값들이 포함되어 있을 때 제거 순서
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, 2, 3, 1, 2, 3]
[2, 3, 1, 2, 3]
입력 순서 상관없이 1과 일치하는 값 모두가 삭제된다.
[2, 3, 2, 3]
mylist.remove(1) 명령어로 리스트내의 모든 1이 삭제되어 더이상 삭제할 1이 없기 때문에 에러 발생
list 인덱싱(indexing) -> 색인
python 의인덱스는 0번 부터 시작
1
| mylist[0] #0번째 인덱스를 출력하라
|
1
4
-가 붙으면 인덱스 번호가 ‘뒤쪽’부터 실행된다.
list 인덱스로 접근하여 값 바꾸기
[1, 2, 3, 4]
1
1
| mylist[0] = 100 #0번째 인덱스의 값(원래는 1) 을 100으로 바꿔라
|
[100, 2, 3, 4]
list의 전체 길이 (사이즈) 알아내기
-
len() 함수를 사용한다.
-
len(알아내고 싶은 변수명)
4
tuple (순서가 있는 집합, 읽기 전용)
-
tuple은 () 로 표현한다.
-
읽기 전용 은 ‘수정’ 이 불가함을 의미한다.
-
수정은 데이터의 추가, 변경, 삭제 등을 의미한다.
1
| mytuple = (1, 2, 3, 4, 5)
|
tuple에 값 추가하기 (불가능)
tuple 값 제거하기 (불가능)
인덱스로 접근하여 값 바꾸기 (불가능)
길이 파악하기 (가능)
5
(1, 2, 3, 4, 5)
set (순서 X, 중복 X)
set()
set
set에 값 추가하기
1
2
3
| myset.add(1)
myset.add(2)
myset.add(3)
|
{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, 2, 3}
{1, 2, 3, 4}
dict (사전형 집합, key와 value 쌍)
{}
dict
값을 추가하기
1
2
3
4
| mydict['apple'] = 123
# key 는 'apple'
# value 는 123
|
123
2
mydict의 키(key)는 문자형 / 숫자형이 혼용 가능하다.
{0: 2, 'apple': 123}
float(실수)도 키로써 입력이 가능합니다.
{0: 2, 3.14: 1, 'apple': 123}
값을 바꾸기
1
| mydict['apple'] = 'byebye'
|
{0: 2, 3.14: 1, 'apple': 'byebye'}
길이 파악하기
3
댓글남기기