저는 해당 책으로 파이썬 기초를 꾸준히 공부 중이며, 마지막 연습문제 파트를 풀면서 부족한 부분 개념을 정리하면서 해당 책으로의 공부를 마무리에 도전합니다!😣
해야하는 작업:
a:b:c:d
👉a#b#c#d
조건:split
,join
함수 사용
a = 'a:b:c:d'
b = a.split(':')
print('#'.join(b))
해당 방식으로 문자열을 변경할 수 있습니다.
split의 경우 변수 여러 개를 어떤 문자열을 기준으로 나눠줄 수 있는 함수입니다. 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)
Happy birthday # 첫 번째 입력값
1: Happy
1: birthday
Happy#birthday # 두 번째 입력값
1: Happy
1: birthday
값을 입력하시오: Happy birthday # 세 번째 입력값
1: Happy
1: birthday
값을 입력하시오: Happy birthday, suyeon # 네 번째 입력값
1: Happy birthday
1: suyeon
위의 예제를 통해 split이 이해가 되었으면 좋겠습니다.
split은 문자열을 나눠주는 함수입니다. 결국 이 말은 input 값으로 숫자를 입력해도 이것은 사실 정수, 실수 같은 숫자형이 아니라 문자열
그 자체입니다.
그렇기 때문에 만약 입력 받은 값을 정수형
, 실수형
으로 바꿔주고 싶다면 int(input())
, float(input())
해당 방식으로 입력값의 변형을 줄 수 있고, map을 사용하여 변환할 수 있습니다. 이 부분은 뒤에 문제가 또 있기 때문에 나중에 다뤄보겠습니다!
문자열을 조작하는데 사용되는 메서드로 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(리스트)
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
: 리스트를 일정 기준으로 다시 문자열
로 저장하는 기능을 아는지 물어본 것 같습니다!