[day-4] 문자열, 자료형, map

Joohyung Park·2024년 1월 14일
0

[모두연] 오름캠프

목록 보기
4/95

문자열 연산

파이썬에서는 문자열 덧셈과 곱셈, 그리고 인덱싱, 슬라이싱이 가능하다.

  • 덧셈(+) : 두 문자열을 연결
  • 곱셈(*) : 문자열을 지정한 횟수만큼 반복
  • 인덱싱 : 문자열에서 특정 위치의 문자를 참조
  • 슬라이싱 : 문자열에서 특정 범위의 문자를 추출

문자열 메서드

파이썬 문자열은 다양한 메서드를 지원한다.

  • find(찾을 문자열) : 문자열에서 특정 문자열을 찾아 그 위치를 반환합니다. 찾는 문자열이 없으면 -1을 반환
  • index(찾을 문자열) : find 메서드와 같지만, 찾는 문자열이 없으면 오류를 반환
  • lower() : 문자열을 모두 소문자로 변환
  • upper() : 문자열을 모두 대문자로 변환
  • count(찾을 문자열) : 문자열에서 특정 문자열의 빈도수를 반환
  • strip([strs]) : 문자열 양쪽 끝의 공백을 제거한다. strs를 지정하면 해당 문자도 제거
  • replace(원본 문자열, 바꿀 문자열) : 문자열에서 원본 문자열을 바꿀 문자열로 교체
  • split(구분자) : 문자열을 구분자를 기준으로 나누어 리스트로 반환
  • join(리스트) : 리스트의 모든 문자열을 하나로 연결하여 반환한다. 리스트 사이에는 해당 문자열이 삽입된다.
  • isalnum(), isdigit(), isalpha(), isascii() : 각각 문자열이 알파벳과 숫자로만 이루어졌는지, 숫자로만 이루어졌는지, 알파벳으로만 이루어졌는지, ASCII 문자로만 이루어졌는지를 판단한다.
  • rjust(길이, '문자'), ljust(길이, '문자'), center(길이, '문자') : 문자열을 지정한 길이로 만들고, 남는 공간을 문자로 채운다. 각각 오른쪽 정렬, 왼쪽 정렬, 가운데 정렬을 수행한다.
  • zfill(길이) : 문자열 앞쪽을 '0'으로 채워 지정한 길이로 만든다. 자릿수를 일정하게 유지할 때 사용한다.
  • translate(변환 표) : 문자열에서 특정 문자를 다른 문자로 치환하거나 제거한다.

불리언 자료형

불리언(Boolean) 자료형은 참(True)과 거짓(False) 두 가지 값을 가진다. 비교 연산, 논리 연산의 결과로 사용된다.

None 자료형

None은 파이썬에서 '값이 없음'을 나타내는 특별한 값이다. 변수가 아무런 값도 가지고 있지 않을 때 None을 할당할 수 있다.

메서드 체이닝

메서드 체이닝은 여러 메서드를 연결하여 사용하는 것을 말한다. 이를 통해 코드를 간결하게 작성할 수 있다.

map 함수

map(함수, 반복 가능한 객체) 함수는 반복 가능한 객체의 모든 요소에 함수를 적용한 결과를 반환한다. 이를 통해 특정 자료형으로 타입을 변경할 수 있다.


과제

1. 다음 변수들이 가리키고 있는 값에 화살표를 그려주세요. (z의 값은 무엇일까요?)

# 문제1
x = 100
y = 100
z = x

# 정답
z = 100
같은 값이면 주소(id)는 모두 같음
# 문제2
x = 258
y = 258
z = x

# 정답
z = 258

2. 다음 파이썬 문법 중 맞은 것을 골라주세요.(3개)

#1번
print = 100

#2번
10 = a

#3번
k = 100

#4번
100k = 10000

#5번
a123 = 'abc'

#6번
_ = 10

# 정답
3, 5, 6

3. 문자를 사용자에게 입력받고, 그 문자를 2번 출력하는 프로그램을 만들어주세요. 예를 들어 ‘abc’를 입력받는다면 ‘abcabc’를 출력해야 합니다.

words = input()
print(words*2)

4. 아래 변수에서 중복을 제거한 유일한 숫자를 알아내는 코드를 작성해주세요. 형변환을 통해 풀어주세요.

n = 1234567890123123123

# 정답
print(set(str(n)))

5. 문자열 s에 마지막에 있는 문자열을 2번 더 붙이는 코드를 작성해주세요.

s = 'jun'
# 출력값: 'junnn'

# 정답
new_s = s + s[-1] * 2
print(new_s)

6. 'abcde', 숫자, 대쉬(-), 언더스코어(_)를 모두 제거해주세요. 문자열에 translate를 사용해주세요.

s = 'hello_world123'
# 출력값: 'hlloworl'

# 정답
# 원하는 문자를 지우고자 할 때에는 maketrans의 세번째 인자에 지울 문자열 입력
table = str.maketrans('', '', 'abcde0123456789-_')
s.translate(table)

7. 확장자를 출력해주는 코드를 작성해주세요. 확장자는 png, jpeg, mp4 등입니다.

7-1.
s = 'licat.jpeg'
# 출력값: 'jpeg'

7-2.
s = 'li.cat.png'
# 출력값: 'png'

# 정답
7-1
print(s[-4:])
print(s.split('.')[1])

7-2
print(s[-3:])
print(s.split('.')[2])

짤막상식

s[s.rindex('.')+1:]의 의미는 s 문자열에서 오른쪽부터(마지막 문자부터) 첫번째로 나타나는 '.'의 인덱스 위치를 찾아, 그 위치 바로 다음 인덱스부터(+1) 문자열 끝까지를 추출한다.

피드백

코딩 테스트를 준비하며 봤던 것들이 많이 보인다. 이거를 다 외우기보다는 활용해보면서 나올때마다 익히는 방향으로 가는게 좋을 듯 하다. 복습 후에 뭘 할까.. 하다가 앞으로 있을 프로젝트에 대비하여 미니 프로젝트를 작성해보기로 하였다.

profile
익숙해지기 위해 기록합니다

0개의 댓글