본문 바로가기
Edu/01. Language: Python

문자열 함수

by Lacuna028 2021. 9. 18.
* 학습 정리
- format()
- upper(), lower()
- strip(), lstrip(), rstrip()
- is**()
- find(), rfind()
- in 연산자
- split()

1. format()

- 숫자 데이터가 format()함수에 들어가면 문자열이 되는 함수

- {} 안을 주어진 매개변수로 대체

v1 = "{}".format(10)        # 10
v2 = "{}{}".format(10, 20)  # 10 20

v3 = "{}만원".format(10)  # 10만원
v4 = "{}{}{}".format(1, "문자열", True)  # 1 문자열 True

# 정수를 특정 칸에 출력하기
n1 = "{:d}".format(52)    # 52
n2 = "{:5d}".formate(52)  # 5칸 생성 후 뒤에서부터 52 채우기 #    52

# 빈칸을 0으로 출력하기
n3 = "{:05d}".format(52)  # 00052
n4 = "{:05d}".format(-52) # 생성되는 5칸 중 부호 1칸, 숫자 2칸, 나머지 0으로 채움 # -0052


# 기호와 함께 출력
n5 = "{:+d}".format(52)    # +52
n6 = "{:+d}".format(-52)   # -52
n7 = "{: d}".format(52)    #  52 # 기호부분 공백일 경우 양수는 공백으로 출력
n8 = "{: d}".formate(-52)  # -52

# 기호를 뒤로 밀기
n9 = "{:+5d}".format(52)    #   +52 # 5자리 생성후 뒤에서부터 자리채우기
n10 = "{:+5d}".format(-52)  #   -52
n11 = "{:=+5d}".format(52)  # +  52 # 5자리 생성 후 맨 앞에 기호 채우고 맨 뒤부터 숫자 채우기
n12 = "{:=+5d}".format(-52) # -  52 
n13 = "{:=+05d}".format(52) # +0052 # 5자리 생성 후 맨 앞에 기호 채우고 맨 뒤부터 숫자 채운 후 나머지는 0으로 채우기
n14 = "{:=+05d}".format(52) # -0052

# 실수 출력
f1 = "{:f}".format(3.141592)     # 3.141592
f2 = "{:3f}".format(3.141592)    # 3.141592
f3 = "{:15f}".format(3.141592)   #        3.141592
f4 = "{:+15f}".format(3.141592)  #       +3.141592
f5 = "{:+015f}".format(3.141592) # +0000003.141592

# 소숫점 아래 자릿수 지정 # 해당 자릿수에서 자동 반올림됨
f6 = "{:.3f}".format(3.141592)   # 3.142  # 소숫점 이하 세자리까지 (반올림 후) 출력
f7 = "{:5.2f}".format(3.141592)  #  3.14  # 소숫점과 소숫점 이하 숫자 포함 5자리 생성 후 소숫점자리 둘째 자리까지 (반올림 후) 출력

# 의미없는 소숫점 제거
f8 = "{:g}".format(52.0)  # 52

 

2. upper(), lower()

- upper() : 문자열의 알파벳을 모두 대문자로 변환

- lower(): 문자열의 알파벳을 모두 소문자로 변환

txt = "Hello World!"
print(txt.upper())  # HELLO WORLD!
print(txt.lower())  # hello world!
print(txt)          # Hello World! # 비파괴적 함수: 원본을 손상시키지 않는 함수

 

3. strip(), lstrip(), rstrip()

- strip(): 문자의 양 옆 공백 제거

- rstrip(): 문자열 오른쪽 옆 공백 제거

- lstrip(): 문자열 왼쪽 옆 공백 제거

# 1. 양 옆 공백 제거
input_txt1 = """\
  양 옆의 공백이 있는 텍스트  
00양 옆의 공백이 있는 텍스트00
"""

print(input_txt1.strip())

# 출력(양 옆 공백 제거)
'''
양 옆의 공백이 있는 텍스트  
00양 옆의 공백이 있는 텍스트00
'''

#----------------------------
# 2. 오른쪽 공백 제거
input_txt2 = """\
오른쪽 공백이 있는 텍스트  
00오른쪽 공백이 있는 텍스트00
"""

print(input_txt2.rstrip())

# 출력
'''
오른쪽 공백이 있는 텍스트  
00오른쪽 공백이 있는 텍스트00
'''

#----------------------------
# 3. 왼쪽 공백 제거
input_txt3 = """\
  왼쪽 공백이 있는 텍스트
00왼쪽 공백이 있는 텍스트00
"""

print(input_txt3.lstrip())

# 출력
'''
왼쪽 공백이 있는 텍스트
00왼쪽 공백이 있는 텍스트00       
'''

 

4. is**()

- 문자열 구성 파악하는 함수. 출력문은 True 또는 False로만 출력

  • isalnum(): 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인
  • isalpha(): 문자열이 알파벳으로만 구성되어 있는지 확인
  • isidentifier(): 문자열이 식별자로 사용할 수 있는건지 확인
  • isdeciaml(): 문자열이 정수 형태인지 확인
  • isdigit(): 문자열이 숫자로 인식될 수 있는 것인지 확인
  • isspace(): 문자열이 공백으로만 구성되어 있는지 확인
  • islower(): 문자열이 소문자로만 구성되어 있는지 확인
  • isupper(): 문자열이 대문자로만 구성되어 있는지 확인

 

5. find(), rfind()

- 문자열 내부에 특정 문자가 어디에 위치해있는지 확인할 때

- find(): 왼쪽에서부터 순서대로 특정 문자 찾음

- rfind(): 오른쪽에서부터 순서대로 특정 문자 찾음

chr_find = "안녕안녕하세욥!".find("안녕")
print(chr_find)

# 출력물
0  # 해당 문자열의 0번째에 "안녕"문자가 있다는 의미

chr_rfind = "안녕안녕하세욥!".rfind("안녕")
print(chr_rfind)
# 출력물
2  # 해당 문자열의 2번째에 "안녕"문자가 있다는 의미

 

6. in 연산자

- 문자열 내부에 특정 문자열이 있는지 없는지 확인 할 때

- 출력문은 True 또는 False로 출력

print("안녕" in "안녕하세욥")

# 출력물
True

#---------------------------
print("잘가" in "안녕하세욥")

# 출력물
False

 

7. split()

- 문자열을 특정 문자열로 자를 때

- 단 리스트 타입으로 반환해준다

# 공백을 기준으로 문자열을 자를 때
n = "10 20 30 40".split(" ")
print(n)

# 출력물 # 리스트로 반환
['10', '20', '30', '40']


#--------------------------------
# split 활용1
a, b = input().split()
print(a, b)

#--------------------------------
# split 활용2
a, b = map(int, input().split())
print(a, b)

 

 

 

 

 

 

 

 

'Edu > 01. Language: Python' 카테고리의 다른 글

Type Hints  (0) 2021.09.29
조건문  (0) 2021.09.18
코딩에서 중요한 4가지 개념  (0) 2021.09.13
딕셔너리의 의미  (0) 2021.09.13
논리합(or), 논리곱(and)  (0) 2021.08.25