본문 바로가기

파이썬 왕 기초

[파이썬_03] 문자열, 슬라이싱, 문자열처리함수, 문자열 포맷, 탈출문자

※ 개인 학습용 글입니다. 궁금한 점이나 수정사항이 있을 시 댓글을 달아주세요.

 

1️⃣ 문자열

sentence = '나는 소년입니다'
print(sentence)             # 나는 소년입니다

sentence2 = "파이썬은 쉬워요"
print(sentence2)            # 파이썬은 쉬워요

sentence3 = """
나는 소년이고,
파이썬은 쉬워요
"""
print(sentence3)            # 나는 소년이고,
                            # 파이썬은 쉬워요

· """  """ 사이에 입력시 줄바꿈을 포함해서 출력된다.

 

2️⃣ 슬라이싱

: 본인이 필요한 만큼만 잘라서 사용하는 것이다.

seonu = "030618-4123456"

print("성별 : " + seonu[7]) # 4
print("연 : " + seonu[0:2]) # 03
print("월 : " + seonu[2:4]) # 06
print("일 : " + seonu[4:6]) # 18

print("생년월일 : " + seonu[:6]) # 처음부터 6 직전까지, 030618
print("뒤 일곱자리 : " + seonu[7:]) # 7부터 끝까지, 4123456
print("뒤 7자리 (뒤에서부터) : " + seonu[-7:]) # -7부터 끝까지, 4123456

· 문자열 처음 시작은 0 부터 시작한다.

· 문자열 끝 시작은 -1 부터 시작한다.

* s[-1: :-1]인 경우는 s[-1]에서부터 문자열 처음까지 -1간격의 문자열, 즉 s문자열 거꾸로 전체를 의미한다.

* s[0:10:2]인 경우는 s[1]에서부터 s[9]까지 2간격의 문자열, 즉 s문자열 시작부터 10직전까지(9)를 의미한다.

 

3️⃣ 문자열 처리 함수

python = "Python is Amazing"
print(python.lower()) # python is amazing
print(python.upper()) # PYTHON IS AMAZING
print(python[0].isupper()) # True
print(len(python)) # 17
print(python.replace("Python", "Java")) # Java is Amazing

index = python.index("n")
print(index) # 5
index = python.index("n", index + 1)
print(index) # 15

print(python.find("n"))     # 5
print(python.find("Java"))  # -1 -> 계속 프로그램 진행
#print(python.index("Java")) # error -> 프로그램 진행 안됨

print(python.count("n")) # 2

 

· lower() : 문자열 소문자화

· upper() : 문자열 대문자화

· isupper() : 문자가 대문자인지 판단 ( 대문자: True, 소문자: False 출력)

· len() : 문자열 길이 출력

· replace("a", "b") : 해당 문자열에서 a부분을 b로 대체

· index("a") : 해당 문자열에서 a부분 인덱스 출력 (0부터 시작)

· find("a") : 해당 문자열에서 a부분 인덱스 풀력 (0부터 시작) 

* index("a")와 find("a")의 차이점은 오류유무이다. 해당 문자열에 a라는 문자가 없을 시 index("a")는 error가 발생하여

  프로그램 진행이 멈추고, find("a")는 다음 부분으로 프로그램이 진행되어 -1이 함께 출력된다.

· count("a") : 해당문자열에 a가 몇 번 등장하는지 빈도 수

 

4️⃣ 문자열 포맷

#print("a"+ "b")
#print("a", "b")

# 방법 1
print("나는 %d살 입니다." % 20) # 나는 20살 입니다.
print("나는 %s을 좋아해요." % "파이썬") # 나는 파이썬을 좋아해요.
print("Apple은 %c로 시작해요." % "A") # Apple은 A로 시작해요. 
print("나는 %s살 입니다." % 20) # 나는 20살 입니다.
print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요.

# 방법 2
print("나는 {}살입니다.".format(20)) # 나는 20살 입니다.
print("나는{0}색과 {1}색을 좋아해요.".format("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요.
print("나는{1}색과 {0}색을 좋아해요.".format("파란", "빨간")) # 나는 빨간색과 파란색을 좋아해요.

# 방법 3
print("나는 {age}살이며, {color}색을 좋아해요.".format(age = 20, color="빨간"))    # 나는 20살이며, 빨간색을 좋아해요.
print("나는 {age}살이며, {color}색을 좋아해요.".format(color = "빨간", age = 20))  # 나는 20살이며, 빨간색을 좋아해요.

# 방법 4 (python v3.6이상 ~)
age = 20
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.")   # 나는 20살이며, 빨간색을 좋아해요.

· %d : 정수

· %s : 문자 (사실 정수, 문자 상관없이 잘 쓸 수 있음 %d, %c 대체 가능)

· %c : 한 글자 

 

5️⃣ 탈출 문자

print("백문이 불여일견 백견이 불여일타") #백 번 보는 것 보다 한 번 보는 것이 낫고 백 번 보는 것보다 한 번 직접 처보는것이 낫다
#print("백문이 불여일견
#백분이 불여일타") -> error
print("백문이 불여일견\n 백견이 불여일타") # \n : 줄바꿈 문자

# 저는 "박선우"입니다.
# print("저는 "박선우"입니다.") -> error
print("저는 '박선우'입니다.") # 저는 '박선우'입니다.
print('저는 "박선우"입니다.') # 저는 "박선우"입니다.
print("저는 \"박선우\"입니다.") # 저는 "박선우"입니다.
print("저는 \'박선우\'입니다.") # 저는 '박선우'입니다.

# \\ : 문장 내에서 \
# print("\usr\bin\env") -> \ 때문에 에러가 뜸
print("\\usr\\bin\\env") # \usr\bin\env

# \r : 커서를 맨 앞으로 이동
print("Red Apple\rPine") # PineApple

# \b : 백스페이스 (한 글자 삭제)
print("Red\bApple") # ReApple

# \t : 탭
print("Red\tApple") #Red     Apple

· \n : 줄바꿈 문자

· \\ : 문장 내에서 \

· \r : 커서를 맨 앞으로 이동

· \b : 백스페이스 (한 글자 삭제)

· \t : 탭 (4칸)

 

*Quiz_3*

사이트 별로 비밀번호를 만들어 주는 프로그램을 작성하시오.

 

예) http: //naver.com

규칙1 : http:// 부분은 제외 => naver.com

규칙2: 처음 만나는 점(.) 이후 부분은 제외 => naver

규칙3 : 남은 글자 중 처음 세자리 + 글자 갯수 + 글자 내 'e' 갯수 + "!" 로 구성

                          (nav)                      (5)                   (1)               (!)

예) 생성된 비밀번호 : nav51!

ur1 = "http://naver.com"
my_str = ur1.replace("http://","") # 규칙1
my_str = my_str[:my_str.index(".")] # 규칙2

password = my_str[:3] + str(len(my_str)) + str(my_str.count("e"))+"!"
print("{0} 의 비밀번호는 {1} 입니다.".format(ur1, password))

 

 

 

본 글은 유튜브 '나도코딩'님의 <파이썬 코딩 무료 강의 (기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요 [나도코딩]> 편을 보고 작성했습니다. https://www.youtube.com/watch?v=kWiCuklohdY