본문 바로가기
Python/Python

파이썬 문자열 자료형 - 연습문제

by 키모형 2022. 12. 14.

코딩시 자주 접하게 되는 문자열 자료형에 관한 연습문제를 통해 한번 더 학습하고 넘어 갑니다.

 

021 문자열 인덱싱

letters가 바인딩하는 문자열에서 첫번째와 세번째 문자를 출력하세요.

>> letters = 'python'
실행 예
p t

정답확인

파이썬 문자열에서 한 글자를 가져오는 것을 인덱싱이라고 부릅니다. 파이썬 인덱싱은 0부터 시작합니다.
lang = 'python'
print(lang[0], lang[2])

022 문자열 슬라이싱

자동차 번호가 다음과 같을 때 뒤에 4자리만 출력하세요.

>> license_plate = "24가 2210"
실행 예: 2210

정답확인

 

문자열에서 여러 글자를 가져오는 것을 슬라이싱이라고 부릅니다. 음수 값은 문자열의 뒤에서부터 인덱싱 또는 슬라이싱함을 의미합니다. 슬라이싱에서 시작 인덱스를 생락혀면 0으로 간주하고 끝 인덱스를 생략하면 문자열의 끝을 의미합니다.

license_plate = "24가 2210"
print(license_plate[-4:])

 

023 문자열 인덱싱

아래의 문자열에서 '홀' 만 출력하세요.

>> string = "홀짝홀짝홀짝"
실행 예:
홀홀홀

정답확인

슬라이싱할 때 `시작인덱스:끝인덱스:오프셋`을 지정할 수 있습니다.
string = "홀짝홀짝홀짝"
print(string[::2])

024 문자열 슬라이싱

문자열을 거꾸로 뒤집어 출력하세요.

>> string = "PYTHON"
실행 예:
NOHTYP

정답확인

string = "PYTHON"
print(string[::-1])

025 문자열 치환

아래의 전화번호에서 하이푼 ('-')을 제거하고 출력하세요.

>> phone_number = "010-1111-2222"
실행 예
010 1111 2222

정답확인

파이썬 문자열에서 replace 메서드를 사용하면 문자열을 일부를 치환할 수 있습니다. 문자열은 수정할 수 없는 자료형이므로 기존 문자열은 그대로 두고 치환된 새로운 문자열이 리턴됩니다.
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace("-", " ")
print(phone_number1)

026 문자열 다루기

25번 문제의 전화번호를 아래와 같이 모두 붙여 출력하세요.

실행 예
01011112222

정답확인

phone_number = "010-1111-2222"
phone_number1 = phone_number.replace('-', '')
print(phone_number1)

027 문자열 다루기

url 에 저장된 웹 페이지 주소에서 도메인을 출력하세요.

>> url = "http://sharebook.kr"
실행 예:
kr

정답확인

문자열로 표현된 url에서 `.`을 기준으로 분리합니다. 분리된 url 중 마지막을 인덱싱하면 도메인만 출력할 수 있습니다.
url = "http://sharebook.kr"
url_split = url.split('.')
print(url_split[-1])

028 문자열은 immutable

아래 코드의 실행 결과를 예상해보세요.

>> lang = 'python'
>> lang[0] = 'P'
>> print(lang)

정답확인

문자열은 수정할 수 없습니다. 실행 결과를 확인해보면 문자열이 할당(assignment) 메서드를 지원하지 않음을 알 수 있습니다.
TypeError                                 Traceback (most recent call last)
<ipython-input-22-a0f3d05b669c> in <module>
      1 lang = "python"
----> 2 lang[0]= "P"
      3 print(lang)

TypeError: 'str' object does not support item assignment

029 replace 메서드

아래 문자열에서 소문자 'a'를 대문자 'A'로 변경하세요.

>> string = 'abcdfe2a354a32a'
실행 예:
Abcdfe2A354A32A

정답확인

string = 'abcdfe2a354a32a'
string = string.replace('a', 'A')
print(string)

030 replace 메서드

아래 코드의 실행 결과를 예상해보세요.

>> string = 'abcd'
>> string.replace('b', 'B')
>> print(string)

정답확인

`abcd`가 그대로 출력됩니다. replace 메서드를 단독으로 사용하면 원본은 그대로 둔채로 문자열 객체를 리턴해줍니다.
2번라인에서 string = string.replace('b', 'B')  으로 문자열 변수값을 변경했다면 aBcd 로 출력 됩니다.

 

031 문자열 합치기

아래 코드의 실행 결과를 예상해보세요.

>> a = "3"
>> b = "4"
>> print(a + b)

정답확인

두 문자열에 대해 덧셈 기호는 문자열의 연결을 의미합니다. 따라서 "34"라는 새로운 문자열이 생성되고 그 값이 print 함수에 의해 화면에 출력됩니다.

032 문자열 곱하기

아래 코드의 실행 결과를 예상해보세요.

>> print("Hi" * 3)

정답확인

문자열에 대한 곱셈은 문자열의 반복을 의미합니다. 따라서 다음과 같이 문자열이 출력됩니다.
HiHiHi

033 문자열 곱하기

화면에 '-'를 80개 출력하세요.

실행 예:
--------------------------------------------------------------------------------

정답확인

print("-" * 80)

034 문자열 곱하기

변수에 다음과 같은 문자열이 바인딩되어 있습니다.

>>> t1 = 'python'
>>> t2 = 'java'

변수에 문자열 더하기와 문자열 곱하기를 사용해서 아래와 같이 출력해보세요.

실행 예:
python java python java python java python java

정답확인

t1 = "python"
t2 = "java"
t3 = t1 + ' ' + t2 + ' '
print(t3 * 4)

035 문자열 출력

변수에 다음과 같이 문자열과 정수가 바인딩되어 있을 때 % formatting을 사용해서 다음과 같이 출력해보세요.

name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13
이름: 김민수 나이: 10
이름: 이철희 나이: 13

정답확인

print 포맷팅에서 `%s`는 문자열 데이터 타입의 값을 `%d`는 정수형 데이터 타입 값의 출력을 의미합니다.
name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13
print("이름: %s 나이: %d" % (name1, age1))
print("이름: %s 나이: %d" % (name2, age2))

041 upper 메서드

다음과 같은 문자열이 있을 때 이를 대문자 BTC_KRW로 변경하세요.

ticker = "btc_krw"
정답확인
upper 메서드를 호출하면 문자열을 대문자로 만들 수 있습니다. 다만 이 경우에도 원본 문자열은 유지되고 대문자로 변경된 새로운 문자열 객체가 반환되는 겁니다. 반환된 새로운 객체를 새로운 변수로 바인딩한 후 이를 print 함수로 출력하면 됩니다.
ticker = "btc_krw"
ticker1 = ticker.upper()
print(ticker1)

042 lower 메서드

다음과 같은 문자열이 있을 때 이를 소문자 btc_krw로 변경하세요.

ticker = "BTC_KRW"
정답확인
lower 메서드를
ticker = "BTC_KRW"
ticker = ticker.lower()
print(ticker)

043 capitalize 메서드

문자열 'hello'가 있을 때 이를 'Hello'로 변경해보세요.

정답확인
a = "hello"
a = a.capitalize()

044 endswith 메서드

파일 이름이 문자열로 저장되어 있을 때 endswith 메서드를 사용해서 파일 이름이 'xlsx'로 끝나는지 확인해보세요.

file_name = "보고서.xlsx"
정답확인
file_name = "보고서.xlsx"
file_name.endswith("xlsx")

045 endswith 메서드

파일 이름이 문자열로 저장되어 있을 때 endswith 메서드를 사용해서 파일 이름이 'xlsx' 또는 'xls'로 끝나는지 확인해보세요.

file_name = "보고서.xlsx"
정답확인
file_name = "보고서.xlsx"
file_name.endswith(("xlsx", "xls"))

046 startswith 메서드

파일 이름이 문자열로 저장되어 있을 때 startswith 메서드를 사용해서 파일 이름이 '2020'로 시작하는지 확인해보세요.

file_name = "2020_보고서.xlsx"
정답확인
file_name = "2020_보고서.xlsx"
file_name.startswith("2020")

047 split 메서드

다음과 같은 문자열이 있을 때 공백을 기준으로 문자열을 나눠보세요.

a = "hello world"
정답확인
문자열의 split() 메서드를 사용하면 문자열에서 공백을 기준으로 분리해줍니다.
a = "hello world"
a.split()

048 split 메서드

다음과 같이 문자열이 있을 때 btc와 krw로 나눠보세요.

ticker = "btc_krw"
정답확인
문자열에서 split() 메서드는 문자열을 분리할 때 사용합니다. 이때 어떤 값을 넘겨주면 그 값을 기준으로 문자열을 분리해줍니다.
ticker = "btc_krw"
ticker.split("_")

049 split 메서드

다음과 같이 날짜를 표현하는 문자열이 있을 때 연도, 월, 일로 나눠보세요.

date = "2020-05-01"
정답확인
date = "2020-05-01"
date.split("-")

050 rstrip 메서드

문자열의 오른쪽에 공백이 있을 때 이를 제거해보세요.

data = "039490     "
정답확인
rstrip() 메서드를 사용하면 오른쪽 공백이 제거된 새로운 문자열 객체가 반환됩니다. 그 값을 data라는 변수가 새로 바인딩합니다. 기존의 공백이 포함된 문자열은 메모리에서 자동으로 삭제됩니다.
data = "039490     "
data = data.rstrip()
 
 
 
 
원본출처 : 초보자를 위한 파이썬 300제
반응형