본문 바로가기

python 기초강의

파이썬 코딩 기본 문법 요약 정리 문자열 #2

파이썬 코딩 기본 문법 요약 정리 문자열 #2

파이썬 기본 문법 정리하기 문자열

 

안녕하세요.

 

오늘은 지난 시간에 이어서 파이썬 기본 문법 문자열에 대해서 공부를 같이 해보도록 하겠습니다.

지난 시간에는 숫자, 숫자 계산 및 불 자료형 출력에 관해서 공부를 해봤습니다.

 

아래쪽에 지난 시간 공부한 내용을 링크해드릴 테니, 파이썬이 처음이신 분들은 저와 함께 하나씩 하나씩 천천히 꾸준하게 공부를 해보도록 해요.

 

함께하는 여러분들이 있어서 저는 힘이 납니다.

 

감사합니다!!

 

파이썬 기본 문법 문자열

자, 기본적으로 파이썬에서 문자열을 출력하는 방법은 아래와 같습니다.

한 줄씩 출력을 할 수도 있고요.

여러 줄을 한 번에 출력을 할 수도 있습니다.

str1 = '안녕하세요.'
str2 = '파이썬을 공부하는 DBA 입니다.'
print(str1)
print(str2)
str3 = """안녕하세요.
저는 파이썬을 공부하는 DBA 입니다."""
print(str3)
str4 = """
안녕하세요.
저는 파이썬을 공부하는 DBA 입니다.
"""
print(str4)

위와 같이 출력을 하도록 실행했습니다.

str1, str2는 같은 내용이고요. str3과 str4는 <"""> 더블 포테이션 3개를 처음과 끝에 붙여 줬습니다. 

이렇게 되면 작성한 코드에서 보이는 것과 마찬가지로 줄 바꿈이 아래와 같이 결과에서도 표현이 되는 것을 볼 수 있습니다.

파이썬 기본 문법 문자열1

다음은 문자열을 잘라서 출력하는 방법입니다.

어떤 변수에 문자열을 저장하고, 원하는 부분을 잘라서 출력할 때 번지수가 중요합니다.

파이썬뿐 아니라 대부분의 프로그래밍 언어에서는 문자열의 번지수를 셀 때 0부터 셉니다. 가장 앞에 있는 것이 0, 그다음은 1, 그리고 2.. 이런 식으로 말이죠.

 

※참고자료

문자열 번지수 참고자료

아래 코드를 한번 보겠습니다.

num = "가나다라마"
print(num[2]) #num 변수의 2번지, 즉 세번째 문자 출력
print(num[4]) #num 변수의 4번지, 즉 다섯번째 문자 출력

birth_date = "19830319" 
print("출생년도는 " + birth_date[0:4] + "년 입니다.") #birth_date 의 0번지 부터 4번지 직전까지를 출력
print("출생월은 " + birth_date[4:6] + "월 입니다.") #birth_date 의 4번지 부터 6번지 직전까지를 출력
print("출생일은 " + birth_date[6:8] + "일 입니다.") #birth_date 의 6번지 부터 8번지 직전까지를 출력
print("저의 생년 월일은 " + birth_date[:8] + " 입니다.") #birth_date의 처음부터 마지막 8번째 직전까지를 출력

처음 num이라는 변수에 "가나 다라마"라고 데이터를 저장하고, 아래 print 문에서 num [2]라고 코드를 입력하면 변수의 2번지, 즉 3번째 문자가 출력될 것입니다. num [4]는 다섯 번째, 마지막 번지인 "마"라는 데이터가 출력되겠죠.

주석을 잘 참고 해 보시기 바랍니다.

 

 

 

지난 시간에 함께 공부했던 문자열과 변수를 합쳐서 출력하는 방법을 사용해서, birth_date라는 변수에 생년월일을 넣고, 년, 월, 일을 각각 분리해서 출력하는 코드를 작성해봤습니다.

 

마지막 birth_date [:8]에서는 위 예제와는 다르게 시작 점을 표현하지 않았는데, 이럴 때는 그냥 처음부터 8번째까지 출력을 하게 됩니다. 결과를 보시겠습니다.

파이썬 기본 문법 문자열2

이런 식으로 문자열 내 특정 위치 값의 내용들을 잘라서 출력할 수 있습니다.

 

문자열을 자를 때는 음수를 이용하여 뒤에서부터 자를 수도 있습니다.

birth_date = "19830319" 
print("출생년도는 " + birth_date[-8:-4] + "년 입니다.") #birth_date 의 뒤에서 8번째 앞부터 뒤에서 4번째까지 출력
print("저의 생년 월일은 " + birth_date[-8:] + " 입니다.") #birth_date의 뒤에서 8번째 부터 마지막까지를 출력

- 파라미터를 주게 되면 문자열의 제일 앞이 아니라, 가장 뒤쪽부터 계산하시면 됩니다.

위 코드의 결과는 아래와 같습니다.

파이썬 기본 문법 문자열3

세 번째는 문자열 내에서 특정 문자나 숫자 등을 변수 처리하지 않고 문자 포맷을 지정하여 바로 표현하는 방법입니다.

아래 코드를 참고해보겠습니다.

print("한일월드컵은 %d년에 개최 되었다." % 2020)
print("대한민국 축구대표팀 에이스는 %s선수이다." % "손흥민")
print("축구국가대표팀은 %c대표팀이라고 부른다." % "A")
print("저의 취미는 %s와 %s 입니다." % ("축구", "골프"))

위 코드를 보면 첫 줄에는 % d, 두번째에는 % s, 마지막 줄에는 %c가 문자열 내에 있고, 뒤쪽에 % 라는 기호와 그 뒤로 숫자나 문자가 있는것을 볼 수 있습니다.

 

 

 

%d 숫자
%s 문자 or 숫자
%c 한글자의 문자

위와 같이 사용을 하면 됩니다. 그러면 % 뒤에 있는 숫자나 문자가 문장 사이에 있는 %d, %s, %c자리 와서 출력이 되는 것을 확인할 수 있습니다. 코드의 결과는 아래와 같습니다.

파이썬 기본 문법 문자열4

여기서 또 다른 방법이 있습니다.

format을 이용해서 출력을 하는 방법입니다.

print("저의 취미는 {}와 {} 입니다." .format("축구", "골프"))
print("저의 취미는 {0}와 {1} 입니다." .format("축구", "골프"))
print("저의 취미는 {1}와 {0} 입니다." .format("축구", "골프"))
print("저의 취미는 {hb1}와 {hb2} 입니다." .format(hb1 = "축구", hb2 = "골프", hb3 = "당구"))
print("저의 취미는 {hb3}와 {hb2} 입니다." .format(hb1 = "축구", hb2 = "골프", hb3 = "당구"))

첫 번째 라인을 보면 %s가 사용되지 않고 {,}가 사용되었습니다. 뒤에도 % 대신 format이 위치해 있고요. 여기에서 지정한 "축구", "골프"가 순서대로 출력이 됩니다.

 

 

 

두 번째와 세번째 라인은, {,} 사이에 숫자가 있는것을 확인 할 수 있는데, 이 숫자의 순서대로 format내 변수들이 출력이 됩니다. 그래서 0, 1의 순서가 다른 두번째 세 번째는 아래 결과에서 보이는 것과 같이 순서가 달라졌음을 알 수 있습니다.

네 번째, 다섯 번째 라인을 보시면 hb1, hb2의 변수를 format내에서 지정을 했습니다. 이 변수대로 문자열에서 호출하여 출력되는 것을 확인할 수 있습니다.

파이썬 기본 문법 문자열5

마지막으로 다른 한 방법을 소개해 드립니다.

이 방법은 파이썬 3.6 버전 이상에서 사용하실 수 있습니다.

hb1 = "골프"
hb2 = "당구"
print(f"저의 취미는 {hb1}와 {hb2} 입니다.")

위 코드와 같이 미리 hb1, hb2 변수를 선언하고 내용을 저장 후 print에서 "+" 나 ", " 외에 바로 {,} 사이에 변수명을 넣어서 출력하는 방법입니다. 이때, 꼭 문자열 앞에 f를 붙이셔야 합니다.

파이썬 기본 문법 문자열6

원하는 형태로 잘 출력이 된 것을 확인할 수 있습니다.

 

파이썬 기본 문법 문자열 함수

숫자 함수와 마찬가지로 문자열에도 함수가 있습니다.

문자열 함수를 이용해서 문자들을 다양한 방법으로 쉽게 모양을 바꿀 수 있습니다.

lower 문자열 전체를 소문자로 출력
upper 문자열 전체를 대문자로 출력
replace 특정 문자열을 지정한 다른 문자열로 변경
len 문자열 길이를 출력
index 문자열내 특정 문자를 찾아서 위치를 반환 (없으면 에러 발생)
find 문자열내 특정 문자를 찾아서 위치를 반환 (없으면 -1을 반환)
count 문자열내 특정 문자가 몇번 나오는지를 반환

위 문자열 함수들을 이용해서 예제를 작성해보겠습니다.

str_a = "Korea's technology is the best in the world."
print(str_a.lower()) #소문자로 바꾸기
print(str_a.upper()) #대문자로 바꾸기
print(str_a.replace("technology", "football")) #문자열 치환하기
print(len(str_a)) #문자열 길이 출력
str_b = str_a.replace("technology", "football") #str_b에 str_a에서 치환한 결과를 저장하기
print(len(str_b)) #str_b의 문자열 길이 출력
print(str_b.index("the")) #str_b에서 the 문자열의 위치를 반환 받기
print(str_b.index("the", str_b.index("the") + 1)) #첫번째 str_b에서 i 문자열의 위치에서 다음 i의 위치를 반환 받기
print(str_b.find("football")) #str_b에서 football 문자열을 찾아서 시작 위치를 반환 받기
print(str_a.find("football")) #str_a에서 football 문자열을 찾아서 시작 위치를 반환 받기, 없기 때문에 -1을 반환 함
print(str_a.count("s")) #str_a에서 s라는 문자가 몇번 등장하는지를 반환 받기

위에서부터 차근차근 주석과 함께 보시면 함수들의 역할을 알 수 있으실 겁니다.

 

 

 

위 코드의 결과는 아래와 같습니다.

파이썬 기본 문법 문자열 함수1

 

파이썬 기본 문법 이스케이프 문자 사용법

파이썬 문자열을 컨트롤할 때는 이스케이프(또는 탈출 문자) 문자를 잘 사용을 해야 합니다. 그렇지 않으면 간단하게 해결될 일이 아주 복잡해지거나 어렵게 되는 경우가 많기 때문 이죠.

print("aaa\nbbb") # \n 줄바꿈
print("aa\"ab\"bb") # \" 문자열 내부에서 " 출력
print("aaa\rbbb") # \r 커서 위치를 문자열 가장 앞으로 변경
print("aaa\tbbb") # \t 탭을 삽입
print("aaa\bbbb") # \b 백스페이스를 삽입
print("C:\\Windows\\Fonts") # \\ 두번 입력시 \ 로 출력

위 코드의 결과는 아래와 같습니다.

한줄한줄 코드 내 주석과 결과를 비교해서 보시면 알 수 있으실 겁니다.

파이썬 기본 문법 이스케이프 문자1

자, 이렇게 오늘은 문자열을 조작하고, 이스케이프 문자를 사용하는 방법에 대해서 함께 공부해 봤습니다. 저도 지금 함께 공부를 하는 입장이라, 여러분들께서 오류점이나 더 좋은 방법이 있으시면 아래 댓글을 통해서 공유해주시면 감사하겠습니다.

 

※지난 자료 보러가기

2020/08/25 - [DB 엔지니어가 공부하는 python] - 파이썬 코딩 기본 문법 요약정리 #1

 

파이썬 코딩 기본 문법 요약 정리 #1

파이썬 코딩 기본 문법 요약 정리 #1 그동안, 파이썬을 이용해서 웹 크롤러도 만들어보고, restAPI도 만들어보고, 데이터 분석도 해봤지만, 사실 기본기가 없는 상황에서 실력이 더 느는 것 같지가

stricky.tistory.com

※다음 자료 보러가기

2020/08/26 - [DB엔지니어가 공부하는 python] - 파이썬 독학 기본 문법 리스트 #3

 

파이썬 독학 기본 문법 리스트 #3

파이썬 독학 기본 문법 리스트 #3 이번이 벌써 파이썬 독학을 위한 기본 문법 세 번째 시간입니다. 다시 한번 말씀드리지만, 파이썬 기본 문법 포스팅은 제가 잘해서 하는 게 아닙니다. 저도 이 ��

stricky.tistory.com

 

 

감사합니다!! 함께 파이썬 마스터해봅시다!!!

 

 

 

by.sTricky