[Python]자료형(1) - 숫자/문자열
1. 숫자형
- 정수
a = 123
a = -123
a = 0
- 실수
a = 1.23
a = -3.45
a = 4.24E10 #4.24*10^10
a = 4.24e-10 #4.24*10^-10
- 8진수: 숫자가 0o 또는 0O으로 시작
a = 0o177
- 16진수: 0x으로 시작
a = 0x8ff
a = 0xABC
숫자형자료형을 활용하기 위한 연산자
- 사칙연산(+, -, *, /)
- 제곱(**): x의 y제곱 = x**y
- 나눗셈 후 나머지 반환: %, 몫 반환: /(몫에 해당하는 정수만 반환: //)
2. 문자열
: 문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.
"큰따옴표", '작은따옴표', """큰따옴표 3개연속""", '''작은따옴표 3개연속'''을 사용해 문자열을 만든다.
※ 큰따옴표, 작은따옴표 구분이 없음
- 문자열 안에 따옴표 포함시키는 경우
① 문자열 안에서 따옴표 사용할 때 큰따옴표와 작은따옴표를 교차시켜 사용해줘야 한다.
작은따옴표는 큰따옴표로 둘러싸야 한다. "Python's favorite food is perl"
큰따옴표는 작은따옴표로 둘러싸야 한다. '"Python is very easy." he says.'
② 백슬래시를 사용해 문자열에 포함시키기.
백슬래시 뒤의 따옴표는 문자열을 둘러싸는 기호의 의미가 아니라 문자 그 자체를 뜻한다.
'Python\'s favorite food is perl'
"\"Python is very easy.\" he says.'
- 여러 줄인 문자열을 변수에 대입할 경우
① 줄을 바꾸는 이스케이프 코드 "\n" 삽입
multiline = "Life is too short\n You need python"
② 연속된따옴표 사용
multiline = """ Life is too short
You need python"""
코드 | 설명 |
\n | 줄바꿈 |
\t | 탭 간격 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표 '를 그대로 표현할 때 사용 |
\" | 큰따옴표 "를 그대로 표현할 때 사용 |
\r | 캐리지 리턴. (줄바꿈 문자. 현재 커서를 가장 앞으로 이동) |
\f | 폼피드. (줄바꿈 문자. 현재 커서를 다음 줄로 이동) |
\a | 벨소리. (출력시 '삑' 소리가 난다) |
\b | 백스페이스 |
\000 | 널문자 |
- 문자열 연산하기
① 더하기(연결. Concatenation)
head = "Python"
tail = " is fun!"
print(head + tail)
#'Python is fun!' 출력
② 곱하기(반복)
a = "Python"
print(a * 2) # a문자열을 2번 반복한다.
#PythonPython 출력
③ 길이 구하기: len함수 사용
a = "Life is too short"
len(a)
#17 출력
- 문자열 인덱싱/슬라이싱
① 문자열 인덱싱
: 문자열 안의 특정 값을 뽑아내는 역할을 한다. print(a[0]+a[1]+a[2]+a[3]) : a[0]~[3]까지 출력
[0]: 문자열의 첫번째 값 ([-0]과 동일)
[n-1]: 문자열의 n번째 값
[-1]: 문자열의 맨 뒤에서 첫번째 값
[-n]: 문자열의 맨 뒤에서 n번째 값
② 문자열 슬라이싱
: 문자열의 n번째 자리부터 m번째 자리까지 뽑아내는 역할을 한다. print(a[b:c]): a문자열의 b부터 c-1까지 출력
a[시작번호 : 끝번호]
끝번호 생략 = 시작번호부터 문자열의 끝까지 출력. (a[3:]은 a[4]~끝까지 출력)
시작번호 생략 = 문자열의 처음부터 끝번호까지 출력. (a[:3]은 a[0]~a[2] 출력.) (a[:]는 전체 출력)
※ 문자열 요소값은 변경할 수 없기 때문에 슬라이싱 기법을 이용해 문자열을 변경할 수 있다.
- 문자열 포매팅
: 문자열 안의 특정 값을 바꿔야하는 경우 사용
① 문자열 포매팅
str = “나는 %살이다!” %10
str1= “나는 %s이 흥미롭다” %”python”
kg = 1006.5
str2 = “몸무게는 %f kg이다” %kg
grade = ‘A’
str3 = “나는 %c학점이다” %grade
#전체 길이가 10개인 문자열에
#양수일 경우 오른쪽에 “hi”대입
str4 = “%10s” %”hi”
#전체 길이가 10개인 문자열에
#음수일 경우 왼쪽에 정렬
str5 = “%-10s” %”hi”
#소수점 셋째자리까지 반올림되어서 출력
str6 = “%0.3f” %3.4125
#길이가 10인 문자열에 소수점 셋째자리까지 반올림해 출력
str7 = “%10.3f” %3.4125
#길이가 5인 문자열에 소수점 둘째자리 반올림해 출력
str8 = “%5.2f” %32.2452
※ 포매팅연산자(%d)와 %를 같이 사용할 때는 %%를 사용한다.
(문자열 안에 포매팅연산자가 없으면 홀로 사용되어도 된다.
② format함수를 이용한 포매팅
: {0}, {1}... 과 같은 인덱스 항목에 format함수의 입력값이 순서에 맞게 대입된다.
{name}형태를 사용하는 경우 format함수에 반드시 name=value와 같은 형태로 입력값을
str9 = “나는 {0}살이다”.format(10)
score = 95
str10 = “나는 {0}학점에 {1}점이다 {2}점!”.format(‘A’, score, 95)
str11 = "인덱스 사용{0}, 이름 사용{day}".format('O', day='O')
#0번째 변수에 10개의 공간이 주어지고 왼쪽부터 출력
print(“{0:<10}”.format(“hello”))
#10칸의 공간에서 왼쪽 정렬, 추가 10칸에 오른쪽 정렬
print(“{0:<10}{1:>10}”.format(“hello”, “hi”))
#10칸의 공간에서 ^(가운데정렬) 후 빈공간을 =으로 채우기
print("{0:=^10}.format('hi')
#소수점 표현하기
y = 3.42134234
print("{0:10.4f}".format(y)
#' 3.4213' 출력
- 문자열 관련 함수
: 문자열 자료형이 자체적으로 가지고있는 함수를 문자열 내장함수라고 한다. 내장함수사용 => 문자열변수.함수이름
① count : 문자개수 세기
② find : 위치 알려주기
③ index : 위치 알려주기
④ join : 문자열 삽입
⑤ title : 맨 앞글자만 대문자
⑥ upper : 소문자 → 대문자
⑦ lower : 대문자 → 소문자
⑧ strip : 양쪽공백 지우기
- lstrip: 왼쪽공백 지우기
- rstrip: 오른쪽 공백 지우기
⑨ replace : 문자열 바꾸기 replace(“기존 값”, “바꿀 값”)
⑩ split : 문자열을 나눠 리스트형태로 출력
기본값은 공백 기준. 구분할 문자를 괄호 안에 적어주면 해당 문자가 기준이 됨 split(“,”)
s1 =" py th on "
print(s1.count("p")) #1 #문자p의 개수 출력
print(s1.find("t")) #5
print(s1.index("h")) #6
print("_".join(s1)) # _ _p_y_ _t_h_ _o_n_ _ #문자열 abc 사이에 문자열(,) 삽입
print(s1.title()) # Py th on
print(s1.upper()) # PY TH ON
print(s1.lower()) # py th on
print(s1.strip()) #python
print(s1.lstrip()) #py th on
print(s1.rstrip()) # py th on
print(s1.replace("on", "off")) # py th off
print(s1.split()) #['py', 'th', 'on']
#공백을 기준으로 문자열을 나눠 리스트형태로 출력
#구분할 문자를 괄호 안에 적어주면 해당 문자가 기준이 됨 split(“,”)