업무 자동화를 위한 파이썬 기초 (국비지원 강의)

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)

실행 ▽

 

 

 


 

복사했습니다!