
업무 자동화를 위한 파이썬 기초 (국비지원 강의)
Chapter 3. 복수의 데이터 다루기 : 문자열 인덱싱, 슬라이싱, 포매팅
#문자열 인덱싱
- 양수는 항상 0부터 시작, 음수로 출력할 때는 제일 뒷 번호부터 시작
- 공백도 인덱스로 포함
- 인덱싱할 때는 문자열의 인덱스를 넘어가면 안 됨 (숫자를 넣어보고 하면 쉬움)
#index
#01234
#-5-4-3-2-1
print("index"[1])
print("index"[2])
print("index"[3])
print("index"[4])
print("index"[-5])
print("index"[-4])
print("index"[-3])
print("index"[-2])
print("index"[-1])
*없는 인덱스 번호를 입력할 시에는 오류가 뜬다.
'없는 인덱스 번호로 넘어갔다'
#문자열 슬라이싱
- 문자열에서 범위를 지정해서 잘라주기 때문에 잘라주는 범위 안에 있는 문자들을 추출해준다.
- 문자열 전체를 출력하고 싶을때는 마지막 인덱스에서 +1을 해서 지정해줘야 전체가 출력된다.
print("0123456789"[0:10]) 이렇게 설정해야 0123456789가 모두 출력이 된다.
- [0:] 마지막 인데스를 명시해주지 않으면 지정한 부분부터 끝까지 출력이 된다.
- [:10] 반대로 시작 점 인덱스를 명시해주지 않으면 제일 앞부터 지정한 부분까지 출력이 된다.
- [:] 인덱스를 명시해주지않으면 제일 앞부터 제일 끝까지 출력이 된다.
- 마지막 문자열 인덱스 번호가 13인데 보다 더 큰 숫자를 [:20] 입력하게 되어도 전체 문자가 출력이 된다.
·Step 사용
print(0:10:2) 몇번씩 끊어서 추출할 건지 설정
#문자열 포매팅 : 문자의 출력 형식을 지정해주는 것.
포매팅 방법으로는 3가지가 있다.
· Percent Sign(%)
· format 함수
· f-string
· Percent Sign(%)
- %데이터 타입
예) 문자형 : %s, 정수형 %d, 실수형 %f%%
실수형은 소수점 자리가 많이 뜰 수 있기 때문에 %.1f%%와 같이 지정해줄 수 있다.
weather = "맑음"
temperature = 20
chance_shower = 33.5
print("오늘의 날씨는 %d 기온은 %d도 비가 내릴 확률은 %.1f%%입니다."%(weather, temperature, chance_shower)
· format 함수
- 자료형을 정확하게 명시해주지 않아도 의도한 대로 출력이 가능하다.
- 가져오는 서식의 순서도 바꿔줄 수 있다. {} 괄호 안에 순서 입력.
- 중괄호의 숫자가 요소보다 많으면 에러 / 반대로 중괄호가 요소보다 적으면 에러 X.
- 문자는 왼쪽 정렬, 숫자는 오른쪽 정렬해서 공백을 삽입할 수 있다.
weather = "맑음"
temperature = 20
chance_shower = 33.5
print("오늘의 날씨는 {} 기온은 {}도 비가 내릴 확률은 {}입니다.".format(weather, temperature, chance_shower)
print("오늘의 날씨는 {0} 기온은 {2}도 비가 내릴 확률은 {1}입니다.".format(weather, temperature, chance_shower)
print("{:10}. {:10}"/format(weather, temperature))
*
s 문자형
d 정수형(10진수)
f 실수형
o 8진수
x 16진수
*
위치 지정하기
< 왼쪽에 공백
^ 양쪽 가운데에 공백
< 오른쪽에 공백
left = "left"
right = "right"
middle = "middle"
# <>^
print("({2:>10s}), ({1:^10s}), ({0:<10s})".format(left, middle, right))
▽ 터미널
*
<>^ 앞부분에 문자를 지정해주면 공백 대신 지정한 문자로 출력이 된다.
left = "left"
right = "right"
middle = "middle"
# <>^
print("({2:!>10s}), ({1:@^10s}), ({0:#<10s})".format(left, middle, right))
▽ 터미널
*
자릿수 뒤에 .을 찍고 출력할 문자열만큼만 지정해줄 수 있다.
지정해준 만큼 문자열에서 문자가 잘려서 출력이 되고, 남은 공백은 지정한 특수문자로 채워진다.
(특수문자를 지워주면 공백으로 채워져서 출력)
left = "left"
right = "right"
middle = "middle"
# <>^
print("({2:!>10.4s}), ({1:@^10.3s}), ({0:#<10.2s})".format(left, middle, right))
▽ 터미널
· f-string
- 파이썬 3.6 이상 버전부터 지원
- 가장 쉽고 빠른 방법
- format함수에서는 할 수 없었던 수식의 결과도 포매팅할 수 있음.
# f-string
weather = "맑음"
temperatuer = 20
print(f"오늘의 날씨는 {weather}이며, 기온은 {temperatuer}도 입니다.")
print(f"2곱하기 30의 결과값 = {2*30}")
f는 대문자, 소문자 다 가능하지만 소문자를 권장한다.
▽ 터미널
Chapter 3. 복수의 데이터 다루기 : 문자열 메서드
# 내장함수 : print()
- 괄호 안에 인자를 넣어서 사용
# 메서드 : .upper()
- .(참조연산자)를 이용해서 특정한 데이터를 참조해서 사용
· len(렌) : 요소의 개수가 몇 개인지 세어주는 내장함수
text = "www.GOOGLE.com"
print(len(text))
실행 ▷ 14
· .capitalize(캐피탈라이즈) : 문자열에서 가장 첫 번째 글자를 대문자로 변경해주는 메서드
text = "www.GOOGLE.com"
print(len(text))
txt_text = text.capitalize()
print(txt_capitalize)
실행 ▷ Www.google.com
· .upper(어퍼) :문자열 전체를 대문자로 변경해주는 메서드
· .lower(로워) : 문자열 전체를 소문자로 변경해주는 메서드
text = "www.GOOGLE.com"
txt_upper = text.upper()
txt_lower = text.lower()
print(txt_upper)
print(txt_lower)
실행 ▽
· .count(카운트) : 찾고자 하는 문자, 문자열을 괄호 안에 적어주면 몇 개인지 세어주는 메서드
text = "www.GOOGLE.com"
g_cnt = text.count('G')
print(g_cnt)
실행 ▷ 2
· .find(파인드) : 요소의 위치를 알려줌 (0~)
text = "www.GOOGLE.com"
g_find = text.find('G')
print(g_find)
실행 ▷ 4
문자 입력 후 컴마를 통해 찾고자 하는 문자의 시작점을 지정해줄 수 있다.
예) 5를 입력 시 5번째부터 찾기 시작하여 알려줌
text = "www.GOOGLE.com"
g_find = text.find('G', 5)
print(g_find)
실행 ▷ 7
· .index(인덱스) : find와의 기능이 비슷하나 차이점으로는
find는 찾고자 하는 문자가 없을 시에는 -1이라는 값을 내주고 index는 에러가 뜸.
text = "www.GOOGLE.com"
g_find = text.find('X')
g_idx = text.index('X')
print(g_find)
print(g_idx)
· .rfind(리파인드) : 앞에 리버스의 약자 'r'을 써주면 오른쪽에서 왼쪽 순서로 찾아줌 (원래는 왼쪽에서 오른쪽)
text = "www.GOOGLE.com"
g_find = text.rfind('G')
g_idx = text.rindex('G')
print(g_find)
print(g_idx)
실행 ▷
7
7
· .replace(리플레이스) : 문자열을 치환해주는 메서드
괄호 안에 첫 번째에 바뀔 문자열을 적고 ,컴마 후 변경될 문자열을 입력한다.
text = "www.GOOGLE.com"
text_naver = text.replace("GOOGLE", "NAVER")
print(text_naver)
실행 ▷ www.NAVER.com
· .split(스플릿) : 텍스트 나누기 기능의 메서드 (문자열을 분리해준다)
괄호 안에 구분할 문자를 입력하면 그 문자열을 기준으로 문자를 나눠준다.
text = "www.GOOGLE.com"
print(text.split('.'))
실행 ▽
· .strip(스트립) : 문자열 양 옆에 공백을 없애주는 메서드
문자열 왼쪽 혹은 오른쪽 공백을 지정해서 지울 수도 있음
.rstrip or .lstrip
하지만, 문자 사이사이에 있는 공백은 지울 수 없다.
text = " www.GOOGLE.com "
stp = text.strip()
print(str)
실행 ▽
'Backend > Python' 카테고리의 다른 글
[Python] 파이썬 기초 - Chapter 2. 데이터 다루기 (0) | 2022.05.11 |
---|---|
[Python] 파이썬 기초 - Chapter 1. 과정개요 (0) | 2022.05.10 |