본문 바로가기
Base/Python

1. 자료형(문자열, 숫자)

by 귀멸 2023. 2. 5.

혼공파 6 ~ 11강

 

1. 자료형과 자료형 확인

자료형에는 기본 자료형과 복합 자료형이 있다.

자료형을 확인하기 위해서는 type() 함수를 사용한다.

숫자 자료형은 정수와 소수점이 있는 숫자로 타입을 나눈다.

 

#기본 자료형

# type(자료) # 함수

 

1) 문자열 ≫ str(String)
print(type("안녕하세요"))
print(type("Hello World"))

2) 숫자 

### 정수 ≫ int(integer)
print(type(10))
print(type(20))

### 실수 = 부동소수점 (소수점이 있는 숫자) ≫ float(Floating Point)
print(type(52.273))

3) 불 ≫ bool(Boolean)
print(type(True)) # 참
print(type(False)) # 거짓

# 복합 자료형
## 기본 자료형이 복합적으로 섞여 있는 자료형

 


2. 문자열 만들기

문자열을 만들 때 큰따옴표(" ")와 작은따옴표(' ')를 구분하지 않는다.

문자열 안의 문자열을 표현하려면 다른 종류의 따옴표를 사용하거나 이스케이프문자를 사용한다.

이스케이프 문자의 활용 예

""" """로 여러 줄의 문자열을 한번에 표현할 수 있다.

 

# 문자열 만들기 기본
"안녕하세요"
'안녕하세요'

# 문자열 안의 문자열
""안녕하세요"라고 말했습니다"

## (1) 다른 따옴표 사용하기
'"안녕하세요"라고 말했습니다'
"'안녕하세요'라고 생각했습니다"

##(2) 이스케이프 문자 사용하기
# \"
"\"안녕하세요\"라고 말했습니다"

### \n 줄바꿈
print("안녕\n하세요")

### \t 탭문자
print("이름\t나이\t색상")
print("구름\t7\t갈색")
print("별이\t2\t흰색")
print("연근\t3\t흰색")

### \\ 역슬래시 자체
print("\\ \\ \\ \\")

# 여러줄 문자열 (""" """)
print("""\
동해물과 백두산이
마르고 닳도록
하느님이 보우하사
우리나라 만세
무궁화 삼천리 화려강산
대한사람 대한으로
길이 보전하세\
""")
## 역슬래쉬를 넣어서 코드상은 줄 바꿈 한 상태지만 실제 표현에서는 줄 바꿈 하지 않게 표현된다
print\
(1,2,3)

 


3. 문자열 연산자

문자열을 연결하거나 반복하는 연산자

문자열 인덱싱 및 슬라이싱하기

문자열의 위치는 0부터 시작한다

문자열 전체 순서를 뒤집는 방법 문자열[::-1]

 

# 문자열 연결 연산자
문자열 + 문자열

# 문자열 반복 연산자
숫자 * 문자열
문자열 * 숫자

# 문자 선택 연산자
문자열에서 특정한 위치의 문자를 선택해 추출
특정한 위치는 "0번째부터 센다"

"안녕하세요"
0번째 : 안
1번째 : 녕
2번째 : 하
3번째 : 세
4번째 : 요

-1번째 : 요
-2번째 : 세
-3번째 : 하
-4번째 : 녕
-5번째 : 안

문자열[숫자]

문자열[숫자A:숫자B]
숫자 A번째부터 숫자B번째 선택
이때, 숫자B 번째는 포함하지 않는다
(숫자B - 1)번째까지 선택
"안녕하세요"[0:3] = "안녕하"
"안녕하세요"[:3] = "안녕하"
"안녕하세요"[3:] = "세요"

문자열[숫자:숫자:숫자]
#문자열[숫자:숫자:스탭]
"0123456789"[::2]

# 용어 정리
인덱스 : 위치를 나타내는 숫자
문자열[인덱스]
》 인덱싱!
문자열[인덱스:인덱스]
문자열[인덱스:인덱스:스탭]
》 슬라이싱!

"0123456789"[::-1]
》 문자열 전체를 뒤집는 결과 : "9876543210"


4. 문자열 마무리

IndexError: String index out of range 

슬라이싱 때는 IndexError가 발생하지 않는다.

 

 

인덱싱

print("안녕하세요"[100])

 

슬라이싱

print("안녕하세요"[1:100]) → "녕하세요"

 

# 문자열의 길이

len("안녕하세요") → 5

 

# 인덱스 : 순서를 나타내는 숫자는 0부터

# 개수 등 : 1부터 센다


5. 숫자

## 정수 (int)
소수점이 없는 숫자
10
273
52

## 부동소수점 (float)
소수점이 있는 숫자
10.1
52.273
52.0

# 숫자 연산자
정수와 정수의 연산에서 

덧셈 : +
뺄셈 : -
곱셈 : *
나눗셈 : /   결과가 무조건 부동소수점으로 나온다
정수 나눗셈 : // 결과가 정수만 나온다 (소수점 이하는 날린다)
               몫을 구할 때 사용할 수 있다
나머지 : %
제곱 : **

부동소수점과 부동소수점 연산 시 결과는 부동소수점

부동소수점 + 정수 , 정수 + 부동소수점 결과는 부동소수점

문자열과 숫자의 연산 불가능 TypeError 발생
!예외 문자열 반복연산자 * 제외

# 연산자의 우선 순위
* / >>> + - 

# () 괄호 연산자
() : 계산이 먼저 일어나게 하는 기능

# 제곱근(루트)
4 ** (1/2) 
8 ** (1/3)
16 ** (1/4) 

부동소수점 연산은 정확도가 떨어진다
0.1 + 0.2 = 0.300000000000000004
따라서
0.1 + 0.2 == 0.3 >>> False가 되는 상황

댓글