CS (Computer Science)

[개발 공부 92일차] 파이썬 | 터틀 라이브러리, 문자열 조작 명령어

MOLLY_ 2024. 8. 31. 22:27
728x90

< 목차 >

0. 터틀 라이브러리
1. 문자열(string)과 문자열 조작 명령어

 

 

0. 터틀 라이브러리

이 챕터에서는 라이브러리를 불러오고, 사용하는 방법을 아는 것이 핵심이다.

도서관의 책을 하나의 module(모듈)이라고 한다면, 내가 원하는 책 여러 권을 언제 어디서든 쓸 수 있게끔 하고 싶다고 가정해 보자. 그러려면 책들이 있는 도서관(library)을 불러와야 하는데, 이러한 라이브러리를 불러오는 명령어를 import라고 한다.

 

# 기본 골격
import turtle
turtle.명령어(값)

 

 

강의에서 나온 명령어를 모두 정리해보았다. 파이썬에서 #은 주석을 의미한다.

 

 

1. 문자열(string)과 문자열 조작 명령어

 

배열에서 양수로 n번째 값을 출력할 때,

0, 1, 2, 3, 4와 같은 식으로 수를 세는 건 알고 있었지만

 

 

음수로 수를 셀 때는

-1, -2, -3, -4처럼 0이 아니고 -1이 맨 처음 수다. 참고하도록 하자.

 

 

문자열 자르기 | slice()

오타가 있다. (밝은 파란 글씨) a[0:5]다.

 

 

문자열을 자르고 싶을 때는 대괄호와 콜론으로 표시한다. 아래와 같이 사용하면 된다.

  • 변수명[시작 위치 : 마지막 위치의 다음 수]
  • 양수의 경우, 만약 a[0 : 10] 을 출력한다고 한다면 0번째부터 9번째 문자까지 출력된다.
  • 음수의 경우, a[-5 : -1] 처럼 시작 위치를 더 작은 값으로 지정해줘야 원하는 결과가 나온다.
  • 중간부터 끝까지 지정할 경우, a[:5] 혹은 a[-6:]와 같이 사용 가능하다.

 

⚠️ [주의] 음수로 작성할 경우, 음수 단위의 인덱스로만 출력이 가능하며 0이나 양수는 사용이 불가하다.

 

 

문자열끼리 연결 | .join()

기존의 문자열과 문자열 리스트[ , , ]를 연결해 새 문자열 변수를 생성해 보자.

a = "--"
a.join(["P", "Y", "T", "H", "O", "N"])
# 출력 결과: 'P--Y--T--H--O--N'

 

 

문자열 분리 | .split()

기존의 문자열 변수를 리스트[ , , ]로 분리

  • 단순 리스트 생성 시, 유용하게 사용 가능
js = "My name is JS"
js.split(" ") # 공백 문자를 기준으로 분리
# 출력 결과: ['My', 'name', 'is', 'JS']

 

 

문자열 바꾸기 | .replace()

  • 슬라이스 연산으로도 가능하다
  • e.g.) a[:3] + “들” + a[4:]
a = "파이썬 문법.. 다시 보니 선녀가 다름없다"
a.replace("다름없다", "맞다") # 출력 결과: '파이썬 문법.. 다시 보니 선녀가 맞다'

 

 

문자열 개수 세기 | .count()

글자 뿐 아니라 단어, 문장 개수도 셀 수 있다.

a = "파이썬 문법의 큰 틀은 JS와 큰 차이가 없는 것 같다"
a.count("큰") # 출력 결과: 2

 

 

문자열 위치 찾기 | .find() 혹은 index()

찾는 문자가 없을 경우, find()는 -1, index()는 오류 발생

b = "Ladies and Gentlemen, welcome to python world!"
b.find("G") # 출력 결과: 11
b.index("G") # 출력 결과: 11

b.find("P") # 출력 결과: -1
b.index("P") # 출력 결과: 오류 메시지

 

 

문자열 혹은 공백 지우기 | .strip()

strip(”지울 문자”) 없을 시, 앞뒤 공백 지움

a = "아 소고기 먹고 싶다"
a.strip("아") # 출력 결과: ' 소고기 먹고 싶다'

b = "             아 소고기 먹고 싶다"
b.strip() # 출력 결과: '아 소고기 먹고 싶다'

 

 

문자열 정렬 | .center() 혹은 .ljust() 혹은 rjust()

.center(문자 길이, [”채울 문자”])

a = "B is Banana"
a.center(20) # 출력 결과: '    B is Banana     '
a.ljust(20) # 출력 결과: 'B is Banana         '
a.rjust(20) # 출력 결과: '         B is Banana'
a.center(20, "*") # 출력 결과: '****B is Banana****'

 

 

문자열 값 판별 | .is~()

  • 숫자인지 판별: .isdigit()
  • 알파벳인지 판별: .isalpha()
  • 숫자와 문자가 섞여있을 경우: 둘 다 False
a = "123456789"
a.isdigit() # 출력 결과: (숫자) True
a.isalpha() # 출력 결과: (알파벳) False

 

  • 대문자 판별: .isupper()
  • 소문자 판별: .islower()
a = "python"
a.islower() # 출력 결과: True
a.isupper() # 출력 결과: False

 

  • 공백 여부 판별: .isspace()
a = "              "
a.isspace() # 출력 결과: True

b = "       Python       "
b.isspace() # 출력 결과: False (이유: 문자가 포함돼있어서)

 

 

Practice | 인공지능 기초

해당 키워드에 대한 답을 저장해두고 출력해보자. 매우 재미지다.

 

 

a = 5
while a:
	order = input("YOU: ")
	if "AI" in order:
		print("안녕하세요 인간")
	elif "바보" in order:
		print("당신보다 똑똑합니다")
	elif "인성" in order:
		print("아직 인성 기능은 탑재되지 않았습니다")
	elif "고마" in order:
		print("종료합니다.")
		break
		
# 출력 결과
# YOU: 안녕 AI
# 안녕하세요 인간
# YOU: 그래 이 바보야
# 당신보다 똑똑합니다
# YOU: 너 인성에 문제 있어?
# 아직 인성 기능은 탑재되지 않았습니다
# YOU: .. 고마 하자
# 종료합니다.

 

 

문자열 포맷팅(formatting) | %

문장 사이에 어떤 변수가 들어갈 때 or 자리에 들어갈 내용 오류 방지를 위할 때 좋다.

  • 문자 = %s
  • 숫자 = %d
포맷 서식 설명 예시
%s 문자열 “I love %s” %(”meet”)
%d 정수 “My things is %d cm” %(180)
%c 한 글자 문자열 “I get %c grade” %(”A”)
%x 16진수로 표현 “%x 마일 남았어” %(20)
%e 부동 소수점 표현 “%e kg만 더 찌워야지” %(12345678)
%f 실수 “%f kg만 더 빼야지” %(0.005)

 

 

문자열 포맷팅(formatting) 활용하기

{ } 로 순서 정해 포맷팅하기 .format( , , )

[참고] 콤마(,)는 구분자로써 사용

# 문자 예시
print("Hello, {0}. Welcome to {1} {2}".format("JS", "our", "class!"))
# 출력 결과: 'Hello, JS. Welcome to our class!'

# 정수(숫자) 예시
a = int(input("이번 주 하체 횟수: "))
for i in range (a):
	print("하체 %d번 했어요" %(i + 1))
		
# 출력 결과
# 이번 주 하체 횟수: 4
# 하체 1번 했어요
# 하체 2번 했어요
# 하체 3번 했어요
# 하체 4번 했어요

 

 

728x90