파이썬은 모든 것이 객체이다. 이 객체가 어떤 데이터 값으로 이루어져 있고, 어떤 action(행동)을 할 수 있는지를 적어둔 것을 자료형이라고 한다.
변수의 네이밍 규칙은 기본적으로 자바스크립트와 유사하다. 그러나 차이점은 파이썬은 스네이크 케이스를 사용한다.
자바스크립트와 마찬가지로 동적으로 타입이 결정되기 때문에, 편리하게 변수의 타입을 오가면서 선언할 수 있다.
Immutable | Mutable | |
---|---|---|
타입 | int, float, bool, str, tuple | list, dict, set |
list, dict, set형을 제외한 모든 타입은 불변하다.
숫자형은 숫자를 0으로 나눌 수 없다.
자료형(type) | 수의 종류 | 예시 |
---|---|---|
int | 정수() | 0 1 -1 7 2147 |
float | 실수(real) | 0.0 1.0 -1.0 3.14 0.314e2 |
complex | 복소수(complex) | 1.0 + 2.0j |
문자열 리터럴을 만드는 방식은 자바스크립트와 크게 다르지 않다. 따옴표 혹은 쌍따옴표로 표기한다.
name = 'user'
hi = 'hello'
자바스크립트에서처럼 인덱스를 통해 각 인덱스에 접근할 수 있다.
위에서도 언급했 듯이 파이썬의 문자형은 불변이기 떄문에 일부만 변경할 수 없고, 새롭게 객체를 만들어야 한다.
자바스크립트의 템플릿 리터럴처럼 파이썬에서도 비슷한 기능을 사용할 수 있다.
print("We were on a {}!!!".format("BREAK"))
print("{} {} {}".format("Friends", "How I met your mother", "The Good Place"))
중괄호 안에 숫자(인덱스)를 넣거나 변수를 넣어 순서를 임의로 지정할 수 있다.
number = 99
print(f"Brookyln {number}")
위와 같은 방식으로 F-String(문자열 리터럴)을 사용할 수 있다.
파이썬에는 하나의 변수에 여러 개의 값을 저장할 수 있는 자료형이 있다.
이름 | type | 가변성 | 순서유지 | 중복허용 |
---|---|---|---|---|
리스트 | list | O (가변) | O | O |
튜플 | tuple | X (불변) | O | O |
집합 | set | O (가변) | X | X |
사전 | dict | O (가변) | 3.6+ | 키X값O |
hmiym =['barney', 'robin']
파이썬의 리스트는 자바스크립트의 배열과 유사하다. 인덱스를 사용하여 각 데이터에 접근할 수 있고, ID 변경 없이 리스트를 변경할 수 있다.
튜플은 리스트와 유사하지만, 불변하다는 차이점이 있다. 괄호를 사용하여 나타내고, 컴마만 있다면 괄호 생략(패킹)도 가능하다.
hmiym = ('barney', 'robin')
the_big_bang_theory = 'sheldon', 'penny'
자바스크립트의 디스럭쳐링처럼 요소들을 분리(언패킹)할 수 있다. 문자열 같은 요소도 언패킹이 가능하다.
ex: 문자열, 리스트, 튜플, range에서 언패킹이 가능하다.
hmiym = ('barney', 'robin')
a, b = himym
집합은 다른 시퀸스 자료형(리스트, 튜플 등)과는 달리, 순서를 유지해 주지 않고, 중복된 값을 넣을 수 없다.
friends = {'Monica', 'Ross', 'Phoebe', 'Joey'. 'Rachel', 'Chandler'}
그러나 빈 중괄호로 선언을 할 경우, 집합이 아니라 사전(dict)이 선언된다.
파이썬에서 다양한 방식으로 사전 타입형을 만들 수 있다.
중복된 키를 사용할 수는 있지만, 가장 마지막에 넣은 값만 남는다.
d1 = {"one": 1, "two": 2, "three": 3}
d2 = dict({"three": 3, "one": 1, "two": 2})
d3 = dict({"one": 1, "three": 3}, two=2)
d4 = dict(one=1, two=2, three=3)
사전 타입형의 값에 접근하기 위해서는 대괄호 표기법을 사용할 수 있다. 그러나 없는 값에 접근을 할 경우, 오류가 발생한다. 그런 경우 get
메서드를 사용할 수 있다.
사전형의 key값으로 숫자형도 사용할 수 있지만, float 형은 정밀도 문제로 제대로 불러오지 못할 수 있으므로 권장되지 않는다.
불리언 자료형은 True, False의 두 가지 값만 가진다. 비교 연산자(==, !=, <= 등)나 and(자바스크립트의 &&)나 or(자바스크립트의 ||)나 not(자바스크립트의 !)도 존재한다.
파이썬에는 식별 연산자도 존재한다.
a = 410
b = a
c = 410.0
a is b // True
a is c // False
이 연산자는 같은 객체인지(id가 같은가)를 비교한다.
조건문에는 자바스크립트처럼 if문이 있지만 자바스크립트와 유사하므로 따로 정리는 하지 않았다.
else if 대신 elif로 사용한다.
또한 자바스크립트의 switch문과 유사한 동작을 하는 match-case문이 있다.
파이썬에도 자바스크립트처럼 for문, while문이 있다.
그러나 파이썬에서는 위 반복문에 else를 추가할 수 있다. 이 키워드를 추가하면 루프가 제대로 실행이 완료되었을 때만 실행된다.
각 요소의 인덱스가 필요할 때는 열거(Enumerate)를 사용하면 인덱스와 값에 접근할 수 있다.
파이썬 3.8부터 추가된 연산자인 이 연산자는 변수에 값을 대입함과 동시에 표현식으로도 사용할 수 있다.
while True:
word = input()
if word == "hi":
break
print(word)
위와 같은 연산자를 아래처럼 간단하게 사용할 수 있다.
while (word := input())!= 'hi':
print(word)