본문 바로가기
AI Developer/Python

[파이썬] 파이썬 프로그래밍의 기초, 자료형 (1)

by 성 언 2022. 1. 28.

이번 포스팅에서는 파이썬 언어의 자료형에 대해 학습합니다.

 

"자료형을 알고 있다면 그 언어의 절반을 터득한 것"

 

 

● 자료형이 필요한 이유

1 + 1 = 2

→ 1을 숫자형으로 생각하여 계산한다.

'1' + '1' = '11'

→ '1'을 문자형으로 생각하여 계산한다.

 

컴퓨터에게 프로그램 형식에 맞게 타입을 정해줘야 한다.  자료형이란 값의 타입이다.

 

001-1 에서는 자료에 대한 타입을 나타내는 자료형을 배운다.

 

목차

  • 숫자형
  • 숫자형 사칙연산
  • 문자열 자료형
  • 문자열 연산
  • 문자열 포매팅
  • 문자열 관련 함수들 

 

I) 숫자형

1. 정수형

정수를 뜻하는 자료형 (양의 정수, 음의 정수, 숫자 0)

a= 1 

print(a)  		
1 

print(type(a))	// int가 출력 (정수형)
int

 

 

2. 실수형

소수점이 포함된 숫자

a= 3.14 

print(a)  		
3.14

print(type(a))	// float가 출력 (실수형)
float

 

 

3. 컴퓨터식 지수 표현 방식

컴퓨터식 지수 표현 방식으로 e와 E 둘 중 어느 것을 사용해도 무방하다. 

a = 4.24e10

priint(a)
4.24 x 10^10


b = 4.24e-10

priint(b)
4.24 x 10^-10

 

4. 8진수, 16진수

8진수를 만들기 위해서는 숫자가 0o 또는 0O 로 시작하면 된다.

a = 0o11
9 		 //(10진수)

16진수를 만들기 위해서는 숫자가 0x로 시작하면 된다.

a = 0x11
17			//(10진수)

 

II) 숫자형 사칙 연산

1. +, -, *, / 

계산기와 마찬가지로 연산자를 사용해 사칙연산을 수행한다.

a = 3
b = 4
a + b
7
a - b
-1
a * b
12
a / b
0.75

2. a의 b제곱을 나타내는 ** 연산자

a = 2
b = 4
a ** b
16

3. a를 b로 나눈 몫을 나타내는 // 연산자

a = 11
b = 4

a // b
2

 

4. a를 b로 나눈 나머지를 나타내는 % 연산자

a = 11
b = 4

a % b
3

 

III) 문자열 자료형

문자열이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.

 

1. 문자열 만들기

i) 큰따옴표(")로 양쪽 둘러싸기

a = "Hello World"

ii) 작은따옴표(')로 양쪽 둘러싸기

a = 'Hello World'

iii) 큰따옴표 3개를 연속(""") 사용하여 둘러싸기

a = """Hello World"""

iv) 작은따옴표 3개를 연속(''') 사용하여 둘러싸기

a = '''Hello World'''

 

2. 문자열 안에 큰따옴표나 작은따옴표를 포함시키고 싶을 때

i) 문자열에 큰따옴표(") 포함시키기

"I love Python" he says.

위와 같이 큰따옴표(")가 포함된 문자열을 작은따옴표(')로 둘러싸면 된다.

string = '"I love Python" he says.'

--> 작은따옴표 안에 사용된 큰따옴표는 문자열을 만드는 기호로 인식되지 않는다.

 

ii) 문자열에 작은따옴표(') 포함시키기

SeongEon's favorite language is Python.

위와 같이 작은따옴표(')가 포함된 문자열을 큰따옴표(")로 둘러싸면 된다.

string = "SeongEon's favorite language is Python."

 

--> 큰따옴표 안에 사용된 작은따옴표는 문자열을 만드는 기호로 인식되지 않는다.

 

iii) 백슬래시(\)를 사용해 큰따옴표(") 와 작은따옴표(')를 문자열에 포함시키기

string1 = ' Python\' is Easy '
string2 = " Python\" is Easy "

 

IV) 문자열 연산하기

1. 문자열 더해서 연결하기

a = " I Love"
b = " Python"
a + b
" I Love Python"

변수 a 와 b가 +에 의해 연결되었다.

 

2. 문자열 곱하기

a = 'Python'
a * 2
'pythonpython'

변수 a 가 * 2 에 의해 2번 반복 되었다.

 

3. 문자열 길이 구하기

a = "I Stil Love You"
len(a)
15

len 함수를 통해 문자열의 길이를 구할 수 있다.

 

4. 문자열 인덱싱과 슬라이싱

인덱싱(indexing)은 무엇인가 "가리킨다"는 의미이고, 슬라이싱(slicing)은 무엇인가 "잘라낸다"는 의미이다.

 

i) 인덱싱하기

a = 'I Stil Love You'

a 에 저장한 문자열의 각 문자보다 번호를 매겨보면 0~14 이다. (파이썬에서는 0부터 숫자를 센다.)

a[0]:'I', a[1]:' ', a[2]:'S', a[3]:'t', a[4]:'i', ...

따라서 파이썬은 위와 같이 문자열의 각 문자를 바라보고 있다.

a[-1]: 'U'
a[-2]: 'O'
a[-0]: 'I'

문자열 인덱싱에 마이너스 기호(-)를 붙이면 뒤에서 부터 센다.

이때, a[0] 은 a[-0] 과 같다.

 

ii) 슬라이싱하기

문자 슬라이싱에서는 단순히 한 문자만 뽑아내는 것이 아닌 'Love' 'You' 와 같은 단어를 뽑아낸다.

a = 'I Stil Love You'
a[8:12]
'Love'

a[8:12] 는 8부터 12까지의 문자를 뽑아낸다는 뜻이다.

슬라이싱 기법에서 a[시작 번호:끝 번호] 를 지정할 때 끝 번호에 해당하는 것은 포함하지 않는다. a[8:11]이 아님을 주의하자!

--> 끝 번호보다 하나 작은 수 까지를 포함함 ( cf) a[8:-5] = 'Love')

 

: 를 활용하여 시작 번호나 끝 번호를 생략할 수 있다.

( cf) a [:], a[1:], a[:10] )

 

● 슬라이싱으로 날짜 정보 나누기

a = "20220131Rainy"
year = a[:4]
day = a[4:8]
weather = a[8:]
year
'2022'
day
'0131'
weather
'Rainy'

위와 같이 활용할 수 있다.

 

V) 문자열 포매팅

문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다. 문자열에서 특정한 값을 바꿔야 할 경우에 문자열 포매팅 기법을 사용한다.

1. 문자 바로 대입

>>> name1 = Kevin
>>> "I Love %d" % name1
I Love Kevin

>>> name1 = Chris
>>> "I Love %d" % name1
I Love Chris

2. 숫자 바로 대입

>>> number = 7
>>> "My favorite Number is %d" % number
"My favorite Number is 7"

>>> number = 3
>>> "My favorite Number is %d" % number
"My favorite Number is 3"

3. 2개 이상의 값 넣기

>>> name = SE
>>> number = 3
>>> "I like %s . and, His favorite Number is %d" % (name, number)
"I like SE . and, His favorite Number is 3"

% 다음 괄호 안에 콤마(,)로 구분하여 각각의 값을 넣어 주면 된다.

●  문자열 포맷코드

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

숫자형과 문자열 외에도 다양한 자료형을 대입할 수 있다. 

 

VI) 문자열 관련 함수들

문자 개수 세기(count), 위치 알려주기(find, index), 문자열 삽입(join), 소문자를 대문자로 바꾸기(upper), 대문자를 소문자로 바꾸기(lower), 오른쪽 공백 지우기(rstrip), 왼쪽 공백 지우기(lstrip), 양쪽 공백 지우기(strip), 문자열 바꾸기(replace), 문자열 나누기(split)

 

>>> a = "hobby"
>>> a.count('b')
2

>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1

>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found    // 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킴

>>> ",".join('abcd')
'a,b,c,d'

>>> a = "hi"
>>> a.upper()
'HI'

>>> a = "HI"
>>> a.lower()
'hi'

>>> a = " hi "
>>> a.lstrip()
'hi '

>>> a= " hi "
>>> a.rstrip()
' hi'

>>> a = " hi "
>>> a.strip()
'hi'

>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'

>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']

 

 

댓글