Sign In

[Python] 파이썬 기초 자료형

Y
Yerim
  1. Python

자료형

파이썬에는 정수형, 실수형, 복소수형, 문자열, 리스트 등 다양한 자료형이 존재
자료형에 따라 지원하는 연산자 및 메소드들이 다르다
사용자의 필요성에 따라 적절한 자료형을 선택하여 사용
자료형
형식
설명
int 형
n = 100
n += 200
음의 정수, 0, 양의 정수 값을 가지며
사칙 연산자를 비롯한 연산자를 사용할 수 있다
float 형
f = 12.3
f = f - 30.12
소숫점 아래 숫자를 가질 수 있으며, 정밀한 숫자 표현이 가능
정수형에서 사용하는 연산자를 많이 사용할 수 있다
complex 형
a = 3 + 2.0J
실수부와 허수부를 가지는 복소수를 표현할 수 있는 자료형
str형
s = “hello”
s = s * 3
s.upper()
문자열을 저장
문자열 반복 연산자를 지원
upper(), lower(), split() 등 메소드 지원
변수
변수_이름 = 변수에_저장할_값
a, b, c와 같이 값들을 저장하는 것을 변수라고 한다
변수를 만들 때는 = 기호를 사용
C나 Java는 변수를 만들 떄 자료형을 직접 지정하지만
파이썬은 변수에 저장된 값을 스스로 판단하여 자료형의 타입을 지정

동적 타이핑 vs 정적 타이핑

동적 타이핑
 a = [1, 2, 3, 4] # 리스트 객체 생성, 변수 a가 이 객체를 참조
 a = 'Hello'      # 변수 a가 문자열 객체를 참조
파이썬 변수의 형은 실행 시에 결정
변수는 객체에 대해서 바운드, 객체는 임의의 형이 될 수 있다
바인딩: 변수에 변수와 관련된 속성을 연관되는 것을 말함
한 자료형의 객체에 변수 이름 a가 할당되면, 나중이 이 이름 a는 다른 자료형 객체 참조에 사용될 수 있다
정적 타이핑
int n = 100;
C, C++, Java와 같은 프로그래밍 언어에서는 선언을 통해 참조하는 형이 고정
정적 타이핑 언어는 변수의 자료형이 컴파일할 떄 결정
변수는 사용기간 동안 한 가지 자료형만 참조 가능
→ 변수의 형을 실행할 때 변경할 수 없다

다양한 자료형

숫자형
문자열
리스트
튜플
딕셔너리
집합
항목
형식
설명
정수 int
n = 123
n = -178
n = 0
음의 정수, 0, 양의 정수 값을 가지며
사칙 연산자를 비롯한 연산자를 사용할 수 있다
실수 float
f = 1.2
f = 4.24E10
f = 4.24e-10
소숫점 아래 숫자를 가질 수 있으며, 정밀한 숫자 표현이 가능
정수형에서 사용하는 연산자를 많이 사용할 수 있다
8진수
o = 0o34
숫자를 8진수로 나타낼 수 있다
16진수
x = 0xABC
숫자를 16진수로 나타낼 수 있다
복소수 complex
c = 3+2.0i
실수부와 허수부를 가지는 복소수를 표현할 수 있는 자료형

연산자

산술 연산자
연산자
설명
예시
+
덧셈
3 + 2 -> 5
-
뺄셈
3 - 2 -> 1
*
곱셈
3 * 2 -> 6
/
나눗셈 (결과는 실수)
3 / 2 -> 1.5
//
몫 (정수 나눗셈)
3 // 2 -> 1
%
나머지
3 % 2 -> 1
**
거듭제곱
3 ** 2 -> 9
비교연산자
연산자
설명
예시
==
같다
3 == 3 -> True
!=
같지 않다
3 != 2 -> True
>
크다
3 > 2 -> True
<
작다
3 < 2 -> False
>=
크거나 같다
3 >= 2 -> True
<=
작거나 같다
3 <= 2 -> False
논리 연산자
연산자
설명
예시
and
논리적 AND (둘 다 참일 때 참)
True and False -> False
or
논리적 OR (둘 중 하나만 참이면 참)
True or False -> True
not
논리적 NOT (참이면 거짓, 거짓이면 참)
not True -> False
대입연산자
연산자
설명
예시
=
대입
x = 5
+=
더한 후 대입
x += 3 (x = x + 3)
-=
뺀 후 대입
x -= 3 (x = x - 3)
*=
곱한 후 대입
x *= 3 (x = x * 3)
/=
나눈 후 대입
x /= 3 (x = x / 3)
//=
몫을 구한 후 대입
x //= 3 (x = x // 3)
%=
나머지를 구한 후 대입
x %= 3 (x = x % 3)
**=
거듭제곱 후 대입
x **= 3 (x = x ** 3)
멤버십 연산자
연산자
설명
예시
in
포함되어 있는지 확인
'a' in 'apple' -> True
not in
포함되지 않은지 확인
'b' not in 'apple' -> True
식별 연산자
연산자
설명
예시
is
동일한 객체인지 확인
x is y
is not
동일하지 않은 객체인지 확인
x is not y
비트 연산자
연산자
설명
예시
&
비트 AND
5 & 3 -> 1
`
`
비트 OR
^
비트 XOR
5 ^ 3 -> 6
~
비트 NOT
~5 -> -6
<<
비트 왼쪽 시프트
5 << 1 -> 10
>>
비트 오른쪽 시프트
5 >> 1 -> 2
조건부 표현식
연산자
설명
예시
x if condition else y
조건이 참이면 x, 거짓이면 y 반환
3 if 5 > 2 else 4 -> 3
함수 호출 연산자
연산자
설명
예시
()
함수 호출
print("Hello, world!")
왈러스 연산자
Python 3.8에서 도입
할당 표현식을 사용하게 해주는 연산자
“이름을 표현식의 결과에 연결”하거나 “값을 이름에 할당하면서 그 값을 평가”
표현식을 계산하면서 동시에 그 결과를 변수에 할당할 수 있음
# 기본적인 왈러스 연산자의 사용
x = (n := 10) * 2 # 10을 n에 할당, 그 값을 반환
print(x) # 출력: 20
print(n) # 출력: 10
# 왈라스 연산자가 없을 때의 코드
import random

while True:
    x = random.randint(0, 10)
    if x == 7:
        break
    print(x)

# 왈라스 연산자를 사용한 코드
import random

while(x := random.randint(0, 10)) != 7:
    print(x)
def sigma(n):
    count = 0
    result = 0
    while(count := count+ 1) < n + 1:
        result += count
    return result

if(sum := sigma(100)) ** 5050:
    print('5050이 출력되었습니다.')
else:
    print('1부터 정수형태로 입력이 가능합니다.')
print(sum * 1000)
왈러스 연산자 주의사항
할당 연산자와 비슷하지만, 활용 범위와 용도가 다르므로 사용에 주의해야한다
코드의 가독성을 위해 복잡한 표현식 내에서 알러스 연산자의 남용을 피해야한다
복잡한 한 줄 코드 보다는 여러 줄에 걸친 명확한 코드가 유지보수와 이해에 더 좋을 수 있다
연산자를 통해 코드의 효율성과 가독성을 높일 수 있다. 그러나 남용하면 코드의 가독성을 오히려 떨어뜨릴 수 있으므로 적절한 균형이 중

C vs Python

a = 100
b = a
print(id(a)) # 객체 a의 id 반환
print(id(b)) # 객체 b의 id는 a와 같다 (같은 객체를 참조)
파이썬에서 모든 객체는 고유한 id를 가진다
= 연산자를 사용하면 객체에 대한 참조를 만들거나 변경시킨다
파이썬은 객체 중심 프로그래밍 언어 → 객체와 객체를 참조하는 변수, 참조 변경이 중요
객체를 여러 변수가 동시에 참조할 수 있다
C
int a;   // 정수형 변수 선언
a = 100; // 정수값 할당
a = 200; // 정수값 재할당
int a, b; // 정수형 변수 선언
a = 100;  // 정수 값 할당
b = a;    // a의 값을 b에 할당
Python
a = 100 # 객체 생성
# 객체에 대한 참조 변수 a
a = 200 # 객체 재할당
a = 100 # 100 객체 생성과 참조
b = a   # 100 객체의 참조
Yerim-DevNote
Subscribe to 'Yerim-DevNote'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'Yerim-DevNote'!
Subscribe
👍