02 자료형
1. 자료형과 문자열
프로그램은 기본적으로 자료를 처리하는 역할을 한다.
일상에서 만나는 모든 것들은 자료가 될 수 있고, 프로그램은 이러한 자료를 처리하기 위한 모든 행위라고 생각할 수 있다.
1) 자료형과 기본 자료형
① 자료형
파이썬 프로그램도 수많은 자료를 다룬다. 개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라 자료를 분류해놓았따. 이렇게 구분된 종류 즉, 자료의 형식을 자료형 data type 이라고 한다.
기본 자료형으로는 문자열 string, 숫자 number, 불 boolean 이 있다.
ex) "Hello", 1234, True/False
② 자료를 알아야 하는 이유
30~40조 개의 세포가 모여 사람(객체)이 되는 것처럼 자료를 자료형에 맞게 모으고, 처리하는 과정을 거쳐 더 큰 자료형을 만들어 나가다보면 거대한 프로그램이 만들어진다. 이처럼 가장 기본적인 단위인 자료의 의미를 아는 것과 쓰임새를 확실하게 아는 것은 프로그램을 이해하는 데 있어서 매우 중요하다고 할 수 있다.
③ 자료형 확인하기 type()
type()는 자료형을 확인하는 함수이다.
괄호 안에 자료를 넣으면 그 자료가 어떤 자료형을 가지고 있는지 확인할 수 있다.
print(type("Hi")
<class 'str'>
print(type(123))
<class 'int'>
2) 문자열 만들기 string
큰따옴표, 작은따옴표로 문자열을 만들 수 있다. 글자들이 나열된 것(= 문자의 나열)을 '문자열'이라고 부르며, 영어로는 string이라고 부른다. 따옴표로 둘러싸 입력한 모든 것을 문자열이라고 보아도 무방하다.
print("안녕")
안녕
3) 문자열 안에 따옴표 넣기
① 작은 따옴표 문장에 큰따옴표 사용 혹은 그 반대도 가능
print("'안녕'")
'안녕'
print('"안녕"')
"안녕"
② 이스케이프 문자
이스케이프 문자는 역슬래시 기호와 함께 조합해서 사용하는 특수한 문자를 의미한다.
즉, 문자열 내부에서 특수한 기능을 수행하는 문자열을 말한다.
\" 큰 따옴표
\' 작은 따옴표
print("/"Hi/"")
"Hi"
print('\'Hi\'')
'Hi'
4) 줄바꿈 없이 코드 입력을 원하면? \기호 사용
print("""\
abc
def
"""\)
5) 문자열 연산자
① 문자열 연결 연산자 +
"문자열" + "문자열"
문자열문자열
단, 문자열의 형식을 갖추어 연결시켜야만 에러가 발생하지 않는다.
"문자열" + 1 (x)
"문자열" + "1" (o)
② 문자열 반복 연산자 *
print("안녕"*3)
안녕안녕안녕
③ 문자 선택 연산자 (인덱싱) [ ]
문자열 내부의 문자 하나를 선택하는 연산자
대괄호 안에 선택할 문자의 위치를 지정한다. 이 숫자를 인덱스 index라 부른다.
프로그래밍 언어는 인덱스 유형을 두 가지로 분류하는데 0부터 숫자를 세는 제로 인덱스, 1부터 세는 원 인덱스로 구분한다. 파이썬은 제로 인덱스 유형을 사용한다.
print("안녕하세요"[0])
안
이처럼 [ ] 기호를 통해 문자열의 특정 위치에 있는 문자를 참조하는 것을 '인덱싱'이라고 한다.
④ 문자열 범위 선택 연산자 (슬라이싱) [ : ]
print("안녕하세요"[1:4])
녕하세
[시작번호:안 나오는 애 = 생략하는 번호]
[start:(x)]
즉, 끝값은 포함하지 않는다.
생략도 가능하다.
[1: ]
1번째 문자부터 끝까지 나온다.
[:4]
0번째부터 3번째까지 나온다.
[ : n]이라 하면, 처음부터 n-1번째까지 지정
이처럼 [:] 기호를 통해 문자열의 일부를 추출하는 것을 '슬라이싱'이라 한다.
6) 문자열 길이 구하기 len()
len() 함수를 사용해서 문자열에 들어있는 문자의 개수 (= 문자열의 길이)를 셀 수 있다.
print(len("천국"))
2
2. 숫자
숫자는 수를 나타내는 글자이다.
파이썬에서는 숫자를 소수점이 없는 숫자 '정수형'과 소수점이 있는 숫자 '실수형'으로 구분한다.
1) 숫자의 종류
int(integer): 정수
float(floating point): 부동 소수점 (실수)
10.03을 0.1003x10^2과 같이 소수점 위치를 바꿔도 결국 같은 숫자이므로, 소수점이 움직이는 숫자라는 의미로 실수를 '부동 소수점'이라고 표현하기도 한다.
2) 숫자 연산자
① 사칙연산자
+ - * /
② 정수 나누기 연산자
//
숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후, 정수 부분만 남긴다.
print("3/2= ", 3/2)
3/2= 1.5
print("3//2= ", 3//2)
3//2= 1
③ 나머지 연산자
%
A를 B로 나누었을 때 남은 나머지를 구하는 연산자
print("7%2"= ", 7%2)
7%2= 1
④ 연산자의 우선순위
왼쪽에서 오른쪽 순서로, 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 수행된다.
헷갈린다면 괄호를 사용해서 우선순위를 확고히 적어주면 좋다.
3. 변수와 입력
1) 변수 선언
pi = 3.14
pi
-> 3.14
변수 = 값
값을 변수에 할당하는 것
2) 복합 대입 연산자
+= 숫자 덧셈 후 대입
-= 숫자 뺄셈 후 대입
*= 숫자 곱셈 후 대입
/= 숫자 나눗셈 후 대입
%= 숫자의 나머지를 구한 후 대입
**= 숫자 제곱 후 대입
a = 100
a -= 20
a
-> 80
+) 문자열도 복합 대입 연산자 사용 가능
+= 문자열 연결 후 대입
*= 문자열 반복 후 대입
b = "Hi"
b += "!"
b
-> Hi!
3) 사용자 입력 input()
파이썬은 사용자로부터 데이터를 입력받을 때 input()함수를 사용한다.
input("대답해")
대답해 라는 문자열이 뜨고 프로그램이 종료되지 않은 상태에서 대기가 된다.
이렇게 프로그램이 실행 도중에 잠시 멈추는 것을 block이라고 한다.
네 (enter)
-> '네'
a = input("야>")
야>왜 (enter)
print(a)
-> 왜
4) 문자열을 숫자로 바꾸기
input() 함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용될 수 있다. 이 과정을 영어로는 cast라고 부른다.
int(), float() 함수를 통해 각각 정수형, 실수형 자료형으로 변환할 수 있다.
a1 = input("입력: ")
a2 = int(a1)
b = float("12.34")
print(type(b), b)
<class 'float'> 12.34
5) 숫자를 문자열로 바꾸기
str(다른 자료형)
a = str(10)
print(type(a), a)
-> <class 'str'> 10
4. 숫자와 문자열의 다양한 기능
1) 문자열의 format() 함수
format()은 문자열이 가지고 있는 함수이다.
중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다.
"{ } { }".format(1, 2)
s1 = "{}".format(1)
print(s1)
1
format 함수는 {} 기호를 format의 괄호 안에 있는 매개변수로 대체할 뿐이다. 따라서 {}기호와 {}기호 사이에 다양한 문자열을 넣을 수 있다.
a = "{}만 원".format(1000)
print(a)
-> 1000만 원
2) format 함수의 다양한 기능
① 정수를 특정 칸에 출력하기
"{:5d}".format(10) 5칸에 출력
10
② 빈칸을 0으로 채우기
"{:05d}".format(10)
00010
③ 기호 붙여 출력하기
"{:+d}".format(10)
+10
④ 부동소수점 출력
"{:f}".format(21.357)
21.357000
⑤ 소수점 아래 자릿수 지정
"{:5.2f}".format(21.357)
5칸 잡고 소수점 2자리까지 출력
21.35
⑥ 의미없는 소수점 제거
"{:g}".format(11.0)
11
3) 대소문자 바꾸기 upper()와 lower()
a = "hello"
a.upper()
-> HELLO
b = "KING"
b.lower
-> king
4) 문자열 양옆의 공백 제거 strip()
strip(): 문자열 양옆의 공백 제거
lstrip(): 문자열 왼쪽의 공백 제거
rstrip(): 문자열 오른쪽의 공백 제거
a = """
놉
아니오
"""
print(a)
->
놉
아니오
___________
print(a.strip())
->
놉
아니오
5) 문자열 구성 파악 isOO()
isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인
isidentifier(): 문자열이 식별자로 사용될 수 있는지 확인
isdecimal(): 문자열이 정수 형태인지 확인
isdigit(): 문자열이 숫자로 인식될 수 있는 것인지 확인
isspace(): 문자열이 공백으로만 구성되어 있는지 확인
islower(): 문자열이 소문자로만 구성되어 있는지 확인
isupper(): 문자열이 대문자로만 구성되어 있는지 확인
6) 문자열 찾기 find(), rfind()
find(): 왼쪽부터 찾아서 처음 등장하는 위치를 찾음
rfind(): 오른쪽부터 찾아서 처음 등장하는 위치를 찾음
7) 문자열과 in 연산자
문자열 내부에 어떤 문자열이 있는지 확인하려면 in 연산자를 사용한다.
출력은 True 또는 False로 나온다.
print("H" in "Hello")
True
8) 문자열 자르기 split()
문자열을 특정한 문자로 자를 때는 split() 함수를 사용한다.
split()함수는 문자열을 원하는대로 자를 수 있게 해주는데, 실행결과는 리스트 형태다.
a = "10 20 30".split(" ")
print(a)
['10', '20', '30']
'Programming Language > Python' 카테고리의 다른 글
Ⅴ Function (0) | 2024.04.11 |
---|---|
Ⅳ Loop (0) | 2024.04.11 |
Ⅲ Conditional Statement (0) | 2024.04.11 |
Ⅰ Python (0) | 2024.04.10 |