파이썬(Python)

[ Basic ] 파이썬 문자열(Python String Data Type) 조작하기

카루루1007 2022. 9. 5. 23:37
728x90
반응형
SMALL
◆ 대소문자 변경하기[ lower(), upper() ]

입력한 문자열을 대문자 또는 소문자로 변경하기 위해서는

lower() 함수와 upper() 함수를 사용합니다.

str1 = "Hello! World"
print(str1.lower())

위와 같이 작성 후 코드를 실행하면

[ hello! world ]와 같은 결과가 나타납니다.

보시는바와 같이 모두 소문자로 변경되었습니다.

str1 = "Hello! World"
print(str1.upper())

위와 같이 작성 후 코드를 실행하면

[ HELLO! WORLD ]와 같이 결과가 나타나며

모두 대문자로 변경이 됩니다.

 

◆ 문자열의 공백 제거하기[ rstrip(), lstrip(), strip() ]

 문자열에서 공백을 제거하기 위해서는

rstrip() , lstrip() , strip() 함수를 사용합니다.

rstrip()은 문자열의 오른쪽 공백을 제거하고,

lstrip()은 문자열의 왼쪽 공백을 제거합니다.

strip()은 문자열의 양쪽의 공백을 제거합니다.

단, 위 세함수 모두 문자열의 중간에 있는 공백은 제거하지 못합니다.

str1 = "     Hello! World        "
print(str1.strip())

위 코드를 실행하면 양쪽의 공백이 제거되고 다음과 같이 결과가 나타납니다.

[ Hello! World ]

 

◆ 사용자에게 값 입력 받기[ input() ]

사용자에게 값을 입력받고 처리하고 싶을 경우에는 

input() 함수를 사용합니다.

User_input = input("이름을 입력하세요 : ")
print(User_input)

위 코드를 실행하면

이름을 입력하세요 : 

라는 화면이 나타나고 값을 입력하기를 기다립니다.

값을 입력하고 Enter 키를 누르면 값이 출력됩니다.

이름을 입력하세요 : 가나다
가나다

문제는 이렇게 input() 함수를 이용해 입력받은 값은

항상 문자열의 형태라는 것입니다.

숫자를 입력해도 문자로 인식이 됩니다.

User_input = input("숫자를 입력하세요 : ")
result = User_input + User_input
result1 = User_input * 3
print(result)
print(result1)

위 코드 실행 후 입력값에 [ 4 ]를 입력하면

결과는 [ 44 ] 와 [ 444 ]가 출력됩니다.

result = User_input + User_input

위 코드는 문자열을 연결하라는 의미이므로 [ 44 ]가 출력되고

result1 = User_input * 3

위 코드는 문자열을 세번 반복하라는 의미이므로 [ 444 ]가 출력이 됩니다.

User_input = input("숫자를 입력하세요 : ")
result = User_input + 3
print(result)
위 코드를 실행하면 에러가 발생합니다.
 
예외가 발생했습니다. TypeError
can only concatenate str (not "int") to str
File "C:\Users\.........\Input_test.py", line 2, in <module> result = User_input + 3
 

문자열에 숫자를 더하는 것은 인정되지 않기 때문에 위와 같이 에러가 발생합니다.

만약 숫자 형태로 처리하고 싶다면 아래와 같이 가능합니다.

User_input = input("숫자를 입력하세요 : ")
result = int(User_input) + 3
print(result)
 

정수 형태로 바꾸려면 int() 함수를 이용해 형태를 바꾸어 사용하면 됩니다.

참고로 소숫점형태로 바꾸시려면 float() 함수를 사용하시면 됩니다.

 

◆ 숫자를 문자로 변환하기
과자수 = 7
print("나는 오늘 과자를 " + 과자수 + "개 먹었습니다.")
 
위 코드를 실행하면 오류가 발생합니다.
 
위에서 설명한 대로 문자와 숫자를 [ + ] 연산자를 사용해 더하려 했기 때문입니다.
 
이렬 경우 str()을 사용해 숫자를 문자 형태로 변환시켜야 합니다.
과자수 = 7
print("나는 오늘 과자를 " + str(과자수) +  "개 먹었습니다.")

위 코드를 실행하면 [ 나는 오늘 과자를 7개 먹었습니다. ]가 출력이 됩니다.

 

◆ 변수 값을 문자열과 결합하기[ f-string , format() ]
과자이름 = "구름과자"
오늘과자수 = 7
내일과자수 = 8
print("나는 오늘 " + 과자이름 + "를 " +str(오늘과자수) + "개 먹었고, 내일 " +str(내일과자수) + "개 먹을겁니다.")

지금까지의 내용으로는 위와 같이 코드를 작성해야 문자열과 숫자를 결합할 수 있었습니다.

이걸 조금 더 간단하게 사용하는 방법을 알아보겠습니다.

print("나는 오늘 {}를 {}개 먹었고, 내일 {}개 먹을겁니다.".format(과자이름, 오늘과자수, 내일과자수))

[ format() ]을 사용하면 위와 같이 조금 더 간단하게 작성이 가능합니다.

파이썬 3.6 이후 부터는 [ f-string ] 사용이 가능합니다.

사용방법은 아래와 같습니다.

print(f"나는 오늘 {과자이름}를 {오늘과자수}개 먹었고, 내일 {내일과자수}개 먹을겁니다.")

 

◆ 문자열 안에서 문자(열) 찾기

문자열 안의 하나하나의 문자는 위치값을 가지고 있습니다.(관련링크)

find() 함수를 사용하면 문자열안의 특정문자열이 어느 위치값부터 시작하는지

찾을 수 있습니다.

str1 = "Hello World Hi Python"
print(str1.find("World"))

위 코드를 실행하면 [ 6 ]이라는 결과값을 출력합니다.

각 문자의 위치값은 [ 0 ]부터 시작하므로, [ W ]의 위치값은 [ 6 ]이 됩니다.

해당 문자열을 찾을 수 없으면 [ -1 ]을 반환합니다.

str1 = "Hello World Hi Python"
print(str1.find("world"))

파이썬은 대소문자를 구분하므로 찾는 문자열인 [ world ]는 기존 문자열에서 찾을 수 없습니다.

그렇기에 [ -1 ]을 반환합니다.

 

◆ 문자열 바꾸기

기존의 문자열을 바꾸고 싶다면

replace() 함수를 사용하면 됩니다.

str1 = "Hello World Hi Python"
print(str1.replace("Hello", "HI"))
print(str1)

위 코드를 실행하면

[ HI World Hi Python ]

[ Hello World Hi Python ]

이렇게 출력이 됩니다.

str1.replace("Hello", "HI") 위 코드는 단순히 str1 변수에 입력된 문자열을

변경하여 출력하는 것이지

str1의 변수에 입력된 값을 변경하는 것은 아닙니다.

str1 변수에 입력된 값을 변경시키려면

str1 = str1.replace("Hello", "HI")이런식으로 변수를 다시 설정해야 합니다.

728x90
반응형
LIST