본문 바로가기

Programming/Python

[Python] 파이썬 기초 공부 04 (feat. 나도코딩)_문자열

728x90

 

오늘의 파이썬 강좌는

문자열, 슬라이싱, 탈출문자 배우기

점점 복잡해지고 있지만 난 괜찮아~

파이썬 공부 함께해요~

 

 

1. 파이썬 문자열

1. 문자열

1) 문자열 : ‘ㅋㅋ’(작은 따옴표 1), “ㅋㅋ”( 따옴표1번)

sentence = ‘나는 소년입니다

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

sentence2 = “나는 소년입니다

print(sentence2)   #나는 소년입니다

 

2) 문자열 여러 : “””ㅋㅋ“””( 따옴표 3)

stence3 = “””

나는 소년이고,

파이썬은 쉬워요

“””

print(sentence3)

나는 소년이고,

파이썬은 쉬워요

 

2. 슬라이싱: 문자열의 일부를 가져오는

a. 변수 [ 번째? ] – 괄호를 사용하는

** 번째는 0부터 세는

*** 범위를 지정할 [a:b] - a부터 b 포함하지 않은 직전까지 정보

파이썬 예제: 주민등록번호 이용

 jumin = "990120-1234567"
 print("성별 : " + jumin[7])  #성별 : 1
 print("연 : " + jumin[0:2]) #연: 99
 print("월 : " + jumin[2:4] )  #월: 01
 print("일 : " + jumin [4:6])   #일 : 20

 

b. 처음부터 어디까지, 어디부터 끝까지

처음과 끝은 빈칸으로 둬도 된다.

 print("생년월일 :" + jumin[0:6]) #생년월일 :990120
 print("생년월일 :" + jumin[:6])  #생년월일 :990120

 print("뒤 7자리:" + jumin[7:14]) # 뒤 7자리:1234567

 print("뒤 7자리:" + jumin[7:])   #뒤 7자리:1234567

c. 뒤에서부터 불러 올

끝자리를 -1 세면

990120-1234567 라고

7: -1

1: -7

 print("뒤 7자리(뒤에부터) :" + jumin [-7:]) 
 #뒤 7자리(뒤에부터) :1234567
 # 뒤에서 7번째부터 끝까지

3. 문자열 처리 함수

1) 소문자로 출력해 주는 함수: 변수.lower()

대문자로 출력해 주는 함수: 변수.upper()

 python = "Python is Amazing"
 print(python.lower())  #python is amazing
 print(python.upper())  #PYTHON IS AMAZING

2) 변수의 N번째가 대문자인지 확인하는 함수: 변수[N].isupper()

 print(python[0].isupper())  #True

3) 문자 개수를 세주는 함수: len( )

** 빈칸을 포함하여 센다

) 나는 : 4 반환

 print(len(python))  #17

4) 문자를 다른 문자로 바꿔주는 함수: 변수.replace(a,b)

a: 바꿔야하는 , b: 바꾸고싶은

 print(python.replace("Python","Java")) #Java is Amazing

5) 찾는 것이 번 째에 위치한 알려주는 함수: 변수.index(“찾는 ”)

a. 찾는 것이 여러 경우 처음 위치를 반환한다.

 index = python.index("n")
 print(index)  #5

 

b. 처음 위치 다음 위치를 찾을

index = python.index(“n”, index +1)

index+1 어디서부터 찾을 지 시작 위치를 의미함

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

c. index 비슷한 함수: find

 print(python.find("n"))  #5

** 차이점: 에러시 find -1 반환함, index 오류가

 print(python.find("Java"))  #-1

 print(python.index("Java"))  #Traceback (most recent call last): ~

index 오류가 나기 때문에 뒤의 문법이 진행되지 않음

d. 찾는 것이 등장하는지 세워주는 함수: count

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

 print(python.count("is"))  #1

4. 문자열 포맷

1) 문자열 대신 변수 이용하기: %

a. 정수형: %d

b. 문자열: %s

c. 문자 ( 글자): %c

d. 문장에 2 이상 넣을 뒤에는 %(“”,””)

괄호 안에 순서 대로 문자열을 넣어 준다

 print("나는 %d살입니다." %20)   #나는 20살입니다.
 print("나는 %s을 좋아해요." %"파이썬")  #나는 파이썬을 좋아해요.
 print("Apple은 %c로 시작해요." %"A")  #Apple은 A로 시작해요.
 print("나는 %s살입니다." %20)   #나는 20살입니다.

 print("나는 %s색과 %s색을 좋아해요" %("파랑", "빨간"))  

 #나는 파랑색과 빨간색을 좋아해요

2) 문자열 대신 변수 이용하기: { }

a. {숫자} : 뒤에 입력한 순서에서 숫자의 순서를 출력함

b. .format( ): %와 다르게 뒤에는 .format() 구문으로 입력함

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

c. 숫자 대신 변수와 변수 선언을 넣어도

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

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

 #나는 20살이며, 빨간색을 좋아해요

3) 변수를 미리 선언하고, 값을 출력 함

print( f문장 내에 {} 변수 값에 넣음”)

 age = 20
 color = "빨간"

 print(f"나는 {age}살이며, {color}색을 좋아해요")

 #나는 20살이며, 빨간색을 좋아해요

5. 탈출 문자

1) 줄바꿈: n

*\( 슬래시) 키보드 엔터 위에 \표시와 함께 있음

 

2) “문자” 처럼 출력하고 싶을

a. 문장을 ‘(작은 따옴표로)로 감싼다

b. “전에 역슬래시) 넣는다

 print('저는 "나도코딩" 입니다')
 #저는 "나도코딩" 입니다

 print("저는 \"나도코딩\" 입니다")

 #저는 "나도코딩" 입니다

3) 문장내에서 넣고 싶을 :

 print("출력: C:\\Users\\addvalueforme\\Desktop\\PythonWorkspace")

 #출력: C:\Users\addvalueforme\Desktop\PythonWorkspace

4) 커서를 앞으로 이동: r

, r뒤의 문자를 앞의 글자부터 덧붙였음

print("Red ApplerPine")  #PineApple

 

4) 글자 지우는 , 백스페이스 역할: b

print("ReddbApple")  #RedApple

 

5) 역할: t

print("RedtApple")  #Red     Apple

 

6. Quiz

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

 

) http://naver.com

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

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

규칙3: 남은 글자 처음 세자리 + 글자 개수 + 글자 ‘e’ 개수 + “!” 구성

 

 #내가 푼 답

  site = "http://naver.com"

  site1 = site[7:]  #규칙 1 naver.com

  site2 = site1[:5]  #규칙 2 naver

 

  print( "생성된 비밀번호: " + site2[:3] + str(len(site2)) + str(site2.count("e")) +"!")

  #생성된 비밀번호: nav51!

 

 #실제 정답

  url = "http://naver.com"

  my_str = url.replace("http://", "")

  print(my_str)

  my_str = my_str[:my_str.index(".")]

  #처음부터 my_str에서 처음 나오는 .의 위치까지를 잘라서 반환함

  #즉 my_str[0:5]

  password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) +"!"

  print("{0}의 비밀번호는 {1} 입니다" .format(url, password))

  #http://naver.com의 비밀번호는 nav51! 입니다

* index함수를 응용하는 것을 놓침

* 단순히 print 하는 것이 아니라 변수를 활용하는 응용력이 필요함

 

오늘은 여기까지~

 


파이썬도 파이썬이지만 티스토리에 역슬래쉬 \ 찾는게 힘들 줄이야

파이썬 코드에 쓰듯이 누르면 \가 나온다

무슨 코드가 따로 있나 찾다 못찾고...

특수 문자에서 찾아 보았지만... .... ... 없다

그래다가 찾았다 ㄱ+한자키 조합으로 찾을 수 있다

구 버전에는 특수문자에 있지만

새 에디터에서 역슬래쉬는 기역(ㄱ) + 한자키 누르고

밑으로 내리면 있어요

 


2020/04/13 - [Programming/Python] - [Python] 파이썬 기초 공부 03 (feat. 나도코딩)_연산자와 함수

2020/04/09 - [Programming/Python] - [Python] 파이썬 기초 공부 02 (feat. 나도코딩)_설치와 자료형 배우기

2020/04/07 - [Programming/Python] - [Python] 파이썬 기초 공부 01 (feat. 나도코딩)_강의소개

728x90