[Python] 문자열 바꾸기 (점프투파이썬 종합문제 1번)

미남로그·2021년 11월 1일
0

저는 해당 책으로 파이썬 기초를 꾸준히 공부 중이며, 마지막 연습문제 파트를 풀면서 부족한 부분 개념을 정리하면서 해당 책으로의 공부를 마무리에 도전합니다!😣


문자열 바꾸기

해야하는 작업: a:b:c:d 👉 a#b#c#d
조건: split, join 함수 사용

a = 'a:b:c:d'
b = a.split(':')
print('#'.join(b))

해당 방식으로 문자열을 변경할 수 있습니다.

split

split의 경우 변수 여러 개를 어떤 문자열을 기준으로 나눠줄 수 있는 함수입니다. split의 사용을 살펴볼까요?

  • 변수1, 변수2 = input().split()
  • 변수1, 변수2 = input().split('기준문자열')
  • 변수1, 변수2 = input('문자열').split()
  • 변수1, 변수2 = input('문자열').split('기준문자열')

위의 경우를 직접 코드로 쳐서 확인해보겠습니다.

# 1
a, b = input().split()
print('1:', a)
print('1:', b)

# 2
a, b = input().split('#')
print('1:', a)
print('1:', b)

# 3
a, b = input('값을 입력하시오: ').split()
print('1:', a)
print('1:', b)

# 4
a, b = input('값을 입력하시오: ').split(',')
print('1:', a)
print('1:', b)

1

Happy birthday # 첫 번째 입력값
1: Happy
1: birthday

2

Happy#birthday # 두 번째 입력값
1: Happy
1: birthday

3

값을 입력하시오: Happy birthday # 세 번째 입력값
1: Happy
1: birthday

4

값을 입력하시오: Happy birthday, suyeon # 네 번째 입력값
1: Happy birthday
1:  suyeon

위의 예제를 통해 split이 이해가 되었으면 좋겠습니다.

split은 문자열을 나눠주는 함수입니다. 결국 이 말은 input 값으로 숫자를 입력해도 이것은 사실 정수, 실수 같은 숫자형이 아니라 문자열 그 자체입니다.

그렇기 때문에 만약 입력 받은 값을 정수형, 실수형으로 바꿔주고 싶다면 int(input()), float(input()) 해당 방식으로 입력값의 변형을 줄 수 있고, map을 사용하여 변환할 수 있습니다. 이 부분은 뒤에 문제가 또 있기 때문에 나중에 다뤄보겠습니다!



replace

문자열을 조작하는데 사용되는 메서드로 replace가 있습니다!

얘는

replace('바꿀문자열', '새문자열')

이렇게 사용이 됩니다.

문자열 안의 문자열을 다른 문자열로 바꿉니다. 문자열 자체는 변경하지 않으며 바뀐 결과를 반환합니다.

print('Hello, world!'.replace('world', 'Python'))

결과값으로

Hello, Python!

이 나옵니다.

world를 Python으로 변경된 결과입니다.

아까 설명했듯이 문자열 자체는 변경하지 않고 바뀐 결과를 반환하는 특성이 있다고 했습니다.

반환 결과를 저장하고 싶다면

s = 'Hello, world!'
s = s.replace('world!', 'Python')
print(s)
# 'Hello, Python'

위의 방식을 사용하면 됩니다!



join

문제에 하나 더 나온 것이 join 함수인데요. join은 구분자 문자열과 문자열 리스트의 요소를 연결하여 문자열로 만드는 함수입니다.

'[연결해줄 문자]'.join(리스트)

print(' '.join(['apple', 'pear', 'grape', 'pineapple', 'orange']))
apple pear grape pineapple orange

리스트 안의 문자열을 공백을 두고 하나의 문자열로 합쳐주었습니다.

아까 문제를 다시 살펴보겠습니다.

a = 'a:b:c:d'
b = a.split(':')
print('#'.join(b))

해당 코드의 경우 a.split(':')이 ':'를 기준으로 a에 담긴 문자열을 list로 변환해서 저장해주고 👉 ['a', 'b', 'c', 'd'], 이를 join이 '#'로 다시 리스트로 반환해주는 역할을 합니다. 👉 '#'.join(b)

이 문제에서 확인하고자 했던 것은

  • split: 문자열을 기준으로 분리하여 리스트로 저장
  • join: 리스트를 일정 기준으로 다시 문자열로 저장

하는 기능을 아는지 물어본 것 같습니다!

profile
미남이 귀엽죠

0개의 댓글