📖TIL(Today I Learned)

TIL 20일 차)🔥 초보자를 위한 파이썬 21~50문제

highcat 2024. 12. 10. 20:28

 

21번 ~ 50번까지는 문자열에 대한 문제들로 나와 있다.
파이썬으로 작성하여 주석도 같이 달았다.


 


파이썬 문자열 21 ~ 30  / 인덱싱과 슬라이싱

 
# 021 문자열 인덱싱
# letters가 바인딩하는 문자열에서 첫번째와 세번째 문자를 출력하세요.
letters = 'python'
print(letters[0])      #리스트 안에 첫번째 값 = [ 0 ]
print(letters[2])      #리스트 안에 세번째 값 = [ 2 ] 
 

# 022 문자열 슬라이싱
# 자동차 번호가 다음과 같을 때 뒤에 4자리만 출력하세요.

license_plate = "24가 2210"
print(license_plate[4:]) # [4:8]을 적지 않아도 끝은 생략가능
 

#023 문자열 인덱싱
#아래의 문자열에서 '홀' 만 출력하세요.

string = "홀짝홀짝홀짝"
print(string[0:6:2]) # 0번째부터 5번째까지 2칸 씩 띄워 출력



# 024 문자열 슬라이싱
# 문자열을 거꾸로 뒤집어 출력하세요.

string = "PYTHON"
print(string[::-1]) # 시작과 끝을 비워도 시작과 끝이다. -1은 거꾸로
 

# 025 문자열 치환
# 아래의 전화번호에서 하이푼 ('-')을 제거하고 출력하세요.

phone_number = "010-1111-2222" #저장된 문자열은 값을 변경할 수 없다.
a = phone_number.replace("-"," ")  #replace(전,후) 전 문자를 후 문자로 보여줌
print(a)

# 026 문자열 다루기
# 25번 문제의 전화번호를 아래와 같이 모두 붙여 출력하세요.

phone_number = "010-1111-2222"
a = phone_number.replace("-","")  #replace(전,후) 이번엔 띄어쓰기를 없앴다.
print(a)
 

# 027 문자열 다루기
# url 에 저장된 웹 페이지 주소에서 도메인을 출력하세요.

url = "http://sharebook.kr" # 도메인은 kr,com 같은 끝에 주소다
a= url.split(".")           # 'split'은 문자열을 구분하고 잘라서 리스트[,]로 만듬
print(a[1])                 # ['http://sharebook', 'kr'] 중에 1번째 리스트 값 출력
 

# 028 문자열은 immutable
# 아래 코드의 실행 결과를 예상해보세요.

lang = 'python'
lang[0] = 'P' # 대문자 P와 소문자 p를 구분하자.
print(lang)   # 오류가 난다.



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

string = 'abcdfe2a354a32a'  # string 변수 안에 a 를 A로 보여준다.
a = string.replace('a','A') # replace('전','후') 전 문자를 후 문자로
print(a)



# 030 replace 메서드
# 아래 코드의 실행 결과를 예상해보세요.

string = 'abcd'
string.replace('b', 'B') # b를 B로 바꾸고 싶어도 바인딩할 변수가 없다.
print(string)            # string = string.replace('b', 'B')로 하면 가능
                         # string'변수를 새로 바인딩 해야함
 

파이썬 문자열 31 ~ 40 / 연산

# 031 문자열 합치기
# 아래 코드의 실행 결과를 예상해보세요.

# 실행 예:
# 34

a = "3"
b = "4"
    # 정수가 아닌 문자열이라 "셋" + "넷" = 셋넷이다
print(a+b)
 


# 032 문자열 곱하기
# 아래 코드의 실행 결과를 예상해보세요.

# 실행 예:
# HiHiHi

print("Hi" * 3)
 


# 033 문자열 곱하기
# 화면에 '-'를 80개 출력하세요.

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

print("-" * 80)
 


# 034 문자열 곱하기
# 변수에 다음과 같은 문자열이 바인딩되어 있습니다.
# 변수에 문자열 더하기와 문자열 곱하기를 사용해서 아래와 같이 출력해보세요.

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

t1 = 'python'
t2 = 'java'      # 문자열을 더하고 공백도 더한다.
result = (t1+" "+t2+" ")  #결과 값으로 정해준다.
print(result*4)           #결과 값을 x 4 한다.




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

# 실행 예:
# 이름: 김민수 나이: 10
# 이름: 이철희 나이: 13

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

print("이름: %s 나이: %d" % (name1, age1))
print("이름: %s 나이: %d" % (name2, age2))
 

# 036 문자열 출력
# 문자열의 format() 메서드를 사용해서 035번 문제를 다시 풀어보세요.

# 실행 예:
# 이름: 김민수 나이: 10
# 이름: 이철희 나이: 13

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

print("이름: {} 나이: {}".format(name1, age1))
print("이름: {} 나이: {}".format(name2, age2))
 

# 037 문자열 출력
# 파이썬 3.6부터 지원하는 f-string을 사용해서 035번 문제를 다시 풀어보세요.

# 실행 예:
# 이름: 김민수 나이: 10
# 이름: 이철희 나이: 13

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

print(f"이름: {name1} 나이: {age1}")
print(f"이름: {name2} 나이: {age2}")
 

# 038 컴마 제거하기
# 삼성전자의 상장주식수가 다음과 같습니다.
# 컴마를 제거한 후 이를 정수 타입으로 변환해보세요.

# 실행 예:
# 5969782550

상장주식수 = "5,969,782,550"
상장주식수 = int(상장주식수.replace(',',''))
print(상장주식수)
 

# 039 문자열 슬라이싱
# 다음과 같은 문자열에서 '2020/03'만 출력하세요.

# 실행 예:
# 2020/03

분기 = "2020/03(E) (IFRS연결)"
print(분기[:7])  #0~6글자 까지만 출력



# 040 strip 메서드
# 문자열의 좌우의 공백이 있을 때 이를 제거해보세요.

# 실행 예:
# 삼성전자

data = "   삼성전자    "
result = data.replace(" ","") # 이것도 정답이지만
print(result)  
        # 정답은 strip()함수 : 전체 공백을 제거함
        # 예시 result = data.strip()



파이썬 문자열 41 ~ 50 /  메서드


# 041 upper 메서드
# 다음과 같은 문자열이 있을 때 이를 대문자 BTC_KRW로 변경하세요.

ticker = "btc_krw"
result = ticker.upper() # 대문자로 바꿔주는 함수 'upper()'
print(result)
 

# 042 lower 메서드
# 다음과 같은 문자열이 있을 때 이를 소문자 btc_krw로 변경하세요.

ticker = "BTC_KRW"
result = ticker.lower() # 소문자로 바꿔주는 함수 'lower()'
print(result)
 

# 043 capitalize 메서드
# 문자열 'hello'가 있을 때 이를 'Hello'로 변경해보세요.

# 'hello'

result = 'hello'
print(result.capitalize())
 

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

file_name = "보고서.xlsx"
result = file_name.endswith('xlsx')
print(result)



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

file_name = "보고서.xlsx"
result = file_name.endswith(('xlsx','xls'))
print(result)




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

file_name = "2020_보고서.xlsx"
                    # result(결과값)을 쓰지 않고 바로 출력도 가능
print(file_name.startswith("2020"))



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

a = "hello world"
result = a.split()
print(result)    # print(a) 해버리면 "hello world" 오답 출력됨
                 # 변수 지정 없이 print(a.split())또한 출력 가능
 


# 048 split 메서드
# 다음과 같이 문자열이 있을 때 btc와 krw로 나눠보세요.

ticker = "btc_krw"

print(ticker.split("_"))    # _ 밑줄 표시: underscore(언더스코어)
 


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

date = "2020-05-01"

print(date.split("-"))      # - 연결 표시: dash / hyphen(대시,하이픈)
 

# 050 rstrip 메서드
# 문자열의 오른쪽에 공백이 있을 때 이를 제거해보세요.

data = "039490     "

print(data.rstrip())



vscode에 입력한 그대로 복사해 왔더니 뭔가 깔끔하지 못 하다..😅
내일은 다른 방법도 찾아보고,

 

 

 

 

 

다음은 리스트, 튜플, 딕셔너리 문제까지,
총 51~ 100문제이다.