본문 바로가기
Python

[Python] 파이썬 기초 - 자료형1 (숫자형, 문자열)

by 끊임없는정진 2022. 11. 15.

 

▶자료형

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것들을 뜻한다. 프로그램의 기본이자 핵심 단위가 자료형. 종류로는 숫자형, 문자열 자료형, 리스트 자료형, 튜플 자료형, 딕셔너리 자료형, 집합 자료형, 불 자료형, 변수 등이 있다. 

 

▶숫자형(Number)

정수형, 실수형, 8진수(Octal : 0o), 16진수(Hexadecimal : 0x) 등이 있다. 주요 연산자로는 사칙연산을 수행하는 +,-,*,/가 있으며, 이외의 연산자로는 x의 y제곱을 나타낼 때는 x**y, 나눗셈의 나머지를 반환하는 %, 나눗셈의 몫을 반환하는 // 등이 있다.

 

▶문자열(String)

[1] 문자열을 표현하는 방식 4가지

1
2
3
4
5
6
7
8
# 큰따옴표 사용
"I am using Color Scripter"
# 작은따옴표 사용
'I am using Color Scripter'
# 큰따옴표 3개 사용
"""I am using Color Scripter"""
# 작은따옴표 3개 사용
'''I am using Color Scripter'''
cs

 

[2] 문자열 안에 작은따옴표나 큰 따옴표 포함시키기

1
2
3
4
5
6
7
# 문자열에 작은따옴표 포함시키기
"I'm learning Python"
# 문자열에 큰 따옴표 포함시키기
'"I am learning Python" he said'
# 백슬래시(\) 사용
"\"I am learning Python\" he said"
'I\'m learning Python'
cs

 

[3] 여러 줄 문자열을 변수에 대입

1
2
3
4
5
6
7
# 개행기호(\n) 사용
"I am learning Python\nIt's interesting"
# 작은따옴표 또는 큰따옴표 3개 사용
'''I am learning Python
It is interesting'''
"""I am learning Python
It's interesting"""
cs

 

※ 이스케이프 코드 종류

코드 설명
\n 문자열 안에서 개행
\t 문자열 사이에 탭 간격을 줄 때
\\ 문자 \를 있는 그대로 사용할 때
\' 작은 따옴표를 그대로 사용할 때
\" 큰 따옴표를 그대로 사용할 때
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음줄로 이동)
\a 벨 소리(출력할 때 "삑" 소리가 난다.)
\b 백 스페이스
\000 NULL 문자

 

[4] 문자열 연산

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 문자열 더하기
first = "I am"
second = " learning Python."
# "I am learning Python." 출력
print(first + second)
 
# 문자열 곱하기
= "Python"
# "PythonPython" 출력
print(x * 2)
 
# 문자열 길이 구하기
= len(x)
# 문자열 길이 출력(6)
print(y)
cs

 

[5] 문자열 인덱싱과 슬라이싱 : 슬라이싱의 기본적인 형태는 a[시작(이상):끝(미만):간격] 과 같다.

ex) 12345678을 [0:7:2]로 슬라이싱하면, 1357을 출력함.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 문자열 인덱싱
= "Python"
# h출력(0,1,2,3 : 4번째 글자)
print(x[3])
# n출력(뒤에서부터 세기)
print(x[-1])
 
# 문자열 슬라이싱
= "Python"
# "Pyt"출력(끝번호는 포함하지 않음)
print(x[0:3])
# "thon"출력
print(x[2:])
# "Py"출력
print(x[:2])
# "Python"출력
print(x[:])
# "Py","thon" 문자열 나누기
= x[:2]
= x[2:]
cs

 

[6] 문자열 포매팅(Formatting)

1
2
3
4
5
6
7
8
9
10
# 숫자 바로 대입
number = 3
"I eat %d apples." % number
"I eat %d apples." % 3
# 문자열 바로 대입
"I eat %s apples." % "five"
# 숫자 문자열 동시에 대입
number1 = 3
number2 = five
"I eat %d apples. I ate %s apples." %(number1, number2)
cs

 

코드 설명
%s 문자열(String)
%c 문자 1개(Character)
%d 정수(integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

※ %s는 자동으로 %뒤의 수를 문자열로 바꾼다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>># 포맷 코드를 이용한 정렬
>>>"%10s" % "hi"
'          hi'
>>>"%-10sjane." % 'hi'
'hi          jane.'
>>># 소수점 표현(소수점 네 번째 자리까지, 그리고 좌측에 공백)
>>>"%10.4f" % 3.42134234
'          3.4213'
 
>>># format 함수를 사용한 포매팅
>>>"I have {0} dollars.".format(5)
'I have 5 dollars.'
>>>"I have {0} dollars.".format("five")
'I have five dollars.'
>>>"I had {0} dollars. then i had additional {1} dollars.".format(5"ten")
'I had 5 dollars. then i had additional ten dollars.'
>>>"I had {number1} dollars. then i had additional {number2} dollars.".format(number1=5, number2="ten")
'I had 5 dollars. then i had additional ten dollars.'
>>>"I had {0} dollars. then i had additional {number2} dollars.".format(10, number2=5)
'I had 10 dollars. then i had additional 5 dollars.'
cs

 

(+) f 문자열 포매팅 (Python 3.6부터)

1
2
3
4
5
6
7
8
9
10
11
12
13
# f문자열 포매팅 예시
>>> age = 30
>>> f'내 나이는 내년이면 {age+1}살이 된다.'
 
# 딕셔너리 활용
>>> d = {'name':'홍길동''age':30}
>>> f'내 이름은 {d["name"]}, {d["age"]}살이다.'
'내 이름은 홍길동, 30살이다.'
 
# 소수점 표현(총자리수 10, 소수점 4자리까지 표현)
>>> y = 3.42134234
>>> f'{y:10.4f}'
'    3.4213'
cs

 

[7] 문자열 관련 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 문자 개수 세기
>>> a = "robby"
>>> a.count('b')
2
 
# 위치 알려주기
>>> a = "I am learning Python"
>>> a.find('a')
2
>>> a.index('a')
2
 
# 문자열 삽입
>>>",".join(['a''b''c''d'])
'a,b,c,d'
 
# 소문자, 대문자 전환
>>> a = "hi"
>>> a.upper()
>>> a.lower()
 
# 왼쪽, 오른쪽, 양쪽 공백 지우기
>>> a.lstrip()
>>> a.rstrip()
>>> a.strip()
 
# 문자열 바꾸기
>>> a = "Python is interesting"
>>> a.replace("Python""PHP")
'PHP is interesting'
 
# 문자열 나누기(리스트로 출력)
>>> a = "Python is interesting"
>>> a.split()
["Python""is""interesting"]
cs

 

댓글