새소식

Python

[한 눈에 읽는 파이썬3 기초] 기본적인 자료형과 연산자

  • -
반응형

이번 강에서는 이전 강의에서 사용했던 숫자형 뿐만아니라 다양한 자료형과 기본 연산자에 대해 알아보는 시간이었습니다. 또한 복합, 비교, 비트 연산자를 배운 후 정리하는 글입니다.

 

 

 

1. 기본적인 자료형


 

 

1-1. 숫자형


- 숫자형 : 숫자 형태로 이루어진 자료형

숫자형 코드 예시
정수(int) 1, 2, 0, -10
실수(float) 3.15, -23.1
복소수(complex) j, 2j, 3+2j, 1+2j 
16진수 0xDA
2진수 0b110101

 

- 복소수형은 허수를 포함한 수를 의미, 실수부는 "변수.real", 허수부는 "변수.imag"로, 결레복소수는 "변수.conjugate()"로 변환함.

 

complex_num = 1+21j
print(complex_num.real)
print(complex_num.imag)
print(complex_num.conjugate())

실행결과

1.0
21.0
(1-21j)

 

- 16진수는 Hex의 x를 따와 0x1A 형태로, 2진수는 1과 0으로 표현함. 이 모든 수는 따로 형 변환 없이 연산 가능하며 10진수로 출력됨.

a = 10
b = -2.5
c = 1 + 2j
d = 0xDA # 218

print(a, type(a))
print(b, type(b))
print(c, c.real , c.imag, c.conjugate(), type(c))
print(d, type(d))

print(a + b, type(a + b))
print(c + d, type(c + d))

실행결과

10 <class 'int'>
-.25 <class 'float'>
(1+2j) 1.0 2.0 (1-2j) <class 'complex'>
218 <class 'int'>
7.5 <class 'float'>
(219+2j) <class 'complex'>

- 주의할 점 : 정수+실수 = 실수형, 정수+복소수 = 복소수형으로 변하는 것 주의.

 

 

 - 간단한 콘솔 입력과 숫자형 실습

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

a = int(input("정수형을 입력해주세요 : "))
b = float(input("실수형을 입력해주세요 : "))

print('a + b = ', a+b , 'a와 b를 더한 값의 자료형은', type(a+b), '입니다.')

실행결과

정수형을 입력해주세요 : 3
실수형을 입력해주세요 : 4.5
a + b =  7.5 a와 b를 더한 값의 자료형은 <class 'float'> 입니다.

 

 

 

 

 

 

 

1-2. 불(bool)형


- bool형 : 참(True)과 거짓(False)을 나타내는 자료형

 

- 초기화방식

변수 = True/False

# 주의할 점 : True나 False를 입력할 때 앞글자 반드시 대문자로 입력!

 

- 코드예제

a = True

if (a) : #만약 (a)가 참이라면 
    print("참")
else : #아니면
    print("거짓")

실행결과

 

 

- 자료형의 참/거짓

값에 대한 참/거짓 구분
"Goorm", "hello" 등 어떤 문자열 True
"" False
[1,2,3] True
[],(),{} False
1 True
0, None False

 

- 구분을 쉽게하자면 값이 들어가 있으면 True, 값이 들어가 있지 않으면 False! 단, 값이 들어가 있는 경우 중에서도 0, None일 경우에는 False!

 

- 예제 코드

a = 0
if (a) : #만약 (a)의 값이 존재한다면 
    print("참")
else : #아니면
    print("거짓")

b = "None"
if (b) : #만약 (b)의 값이 존재한다면
    print("참")
else : #아니면
    print("거짓")
    
c = None
if (c) : #만약 (c)의 값이 존재한다면
    print("참")
else : #아니면
    print("거짓")

실행결과

거짓
참
거짓

 

 

2. 기본적인 연산자


 

 

 

 

2-1. 수식연산자


- 수식연산자 : 두 개의 피연산자를 요구하는 이항연산자(binary operator)

종류 기능 사용 가능한 자료형
+ 두 값을 더함 정수, 실수, 복소수, 문자
- 왼쪽 값에서 오른쪽 값을 뺌 정수, 실수, 복소수
* 두 값을 곱함 정수, 실수, 복소수
/ 왼쪽 값을 오른쪽 값으로 나눔 정수, 실수, 복소수정수, 실수, 복소수
% 왼쪽 값을 오른쪽 값으로 나눈 나머지를 반환함 정수, 실수
** 왼쪽 값을 오른쪽 값만큼 제곱 정수, 실수, 복소수
// 왼쪽 값을 오른쪽 값으로 나눈 몫을 반환함 정수, 실수

 

- 예제 코드

num1 = 17.5
num2 = 10
cpx1 = 3 + 3j
cpx2 = 1 - 2j
str1 = "Hello"
str2 = "goorm"

print(num1 + num2)
print(str1 + str2)
print(num1 - num2)
print(num1 * num2)
print(num2 ** num1)
print(num1 / num2)
print(num1 // num2)
print(num1 % num2)
print(cpx1 / cpx2)

실행결과

27.5
Hellogoorm
7.5
175.0
3.1622776601683795e+17
1.75
1.0
7.5
(-0.6+1.8j)

 

- 파이썬에서 문자열+숫자 불가능 but 연산대상인 변수가 모두 숫자라면 자료형에 관계없이 연산 가능!

반면에, 다른 언어에서는 변수 모두 숫자라도 자료형이 다르면 연산이 불가능함.

 

2-2. 할당연산자와 복합대입연산자


- 할당연산자 : 변수에 값을 대입할 때 사용 ex) =

 

- 복합대입연산자 : 할당연산자 =과 수식연산자와 함께 사용하는 연산자

 

종류 기능 설명
+= 값을 더한 후 대입 문자열도 사용 가능
-= 값을 뺀 후 대입  
*= 값을 곱한 후 대입  
/= 값을 나눈 후 대입  
%= 값을 나눈 후 나머지를 대입  

 

- 예제 코드

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

a = 10
b = 3
c = 1.5

print(a+b)
print(a-b)
print(a//b)
print(a%b)

b*=2
print(b)

a*=c
print(a)

실행결과

13
7
3
1
6
15.0

 

 

 

2-3. 논리연산자


- 논리연산자 : 두 bool형 변수의 논리 연산을 위해 사용

종류 기능 설명
and 두 값이 모두 True일 때만 True 반환 True and True = True
True and False = False
or 두 값 중 하나라도 True이면 True 반환 True or True = True
True or False = True
not False이면 True, True이면 False 반환 not True = False
not False = True

 

- 예제 코드

a = True
b = False

print("true and false :", a and b)
print("true and true :", a and a)
print("true or false :", a or b)
print("false or false :", b or b)
print("not true :", not a)

실행결과

true and false : Fale
true and true : True
true or false : True
false or false : False
not true : False

 

 

 

2-4. 관계연산자


- 관계연산자 : 두 값의 대소 혹은 동등의 관계를 따지는 연산자

종류 기능
== 두 값이 같은지 비교
!= 두 값이 다른지 비교
<, <= 오른쪽 값이 왼쪽 값보다 더 큰지 비교. "="가 추가되면 오른쪽 값이 왼쪽 값과 비교하여 더 크거나 같은지 비교
>, >= 왼쪽 값이 오른쪽 값보다 더 큰지 비교. "="가 추가되면 왼쪽 값이 오른쪽 값과 비교하여 더 크거나 같은지 비교

 

- 예제 코드

print("100 == 100 :", 100 == 100)
print("100 == 200 :", 100 == 200)
print("100 != 100 :", 100 != 100)
print("100 != 200 :", 100 != 200)
print("0 < 9 :", 0 < 9)
print("0 > 9 :", 0 > 9)
print("0 >= 9 :", 0 >= 9)
print("0 <= 0 :", 0 <= 0)

실행결과

100 == 100 : True
100 == 200 : False
100 != 100 : False
100 != 200 : True
0 < 9 : True
0 > 9 : False
0 >= 9 : Fale
0 <= 0 : True

- 출력 결과는 True 혹은 False => 조건문에서 조건식으로 매우 자주 사용!

 

 

2-5. [심화]비트연산자


- 비트연산자(bitwise operators) : 비트 단위로 연산을 수행

 

 

종류 기능 설명
& 두 값을 비트 단위로 AND 연산함 1 & 1 = 1
1 & 0 = 0
0 & 0 = 0
22 & 19 = 18
| 두 값을 비트 단위로 OR 연산함 1 | 1 = 1
1 | 0 = 1
0 | 0 = 0
22 | 19 = 23
^ 두 값을 비트 단위로 XOR 연산함 1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 0 = 0
22 ^ 19 = 5
~ 비트를 보수연산함 ~0 = -1
~170 = -171

 

 

- 비트 연산자는 각 값을 2진수로 변경한 뒤 연산 => 22는 10110(2)로 19는 10011(2)로 변경 후 각 2진수의 각 자리마다 & 연산을 진행함.

 

 

- 비트연산자와 할당연산자 같이 사용

종류 기능
&= 값에 AND비트 연산 후 대입
|= 값에 OR비트 연산 후 대입
^= 값에 XOR비트 연산 후 대입

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.