본문 바로가기
지식공학/Python

python 독학 기본편 #3 문자

by Eric87 2020. 10. 11.
반응형

이번에 공부할 내용은 python에 문자를 넣는 방법입니다. 앞에서 설명을 했었어요 큰 따옴표(")와 작은따옴표(')를 이용해서 문자를 넣을 수가 있습니다. 이것 말고도 여러 문장을 한 번에 넣을 수도 있습니다. 바로 """이렇게 큰 따옴표를 세 번 연속해서 입력("x3)을 하고 넣고 싶은 문장을 길게 적어 줍니다. 엔터를 해도 괜찮아요 그렇고 마지막에 다시 큰 따옴표 세 번(""")을 입력해서 닫아주면 됩니다. 아래 예를 해볼게요.

sentence = '올해는 코로나 때문에 힘들어요'
print(sentence)
sentence2 ="올해는 긴 장마도 있었어요"
print(sentence2)
sentence3= """
올해는 코로나 때문에 힘들었고,
긴 장마도 있었어요
"""
print(sentence3)

이렇게 입력을 하면 다음과 같이 나올 것입니다.

영어에서는 대소문자가 구분되어 있죠? 만약에 영어문장을 입력하면 간편하게 대소문자를 변경해서 출력할 수 있습니다. 소문자는 lower라는 명령어와 대문자는 upper라는 명령어를 이용하면 됩니다. 또 특정 단어를 변경할 때는 replace를 이용해서 출력할 수도 있죠.

saying = "Sharing knowledge is the greatest of all callings"
print(saying.lower())
print(saying.upper())
print(saying.replace("Sharing","Learning"))

python에서는 입력한 문장에서 작 글자별로 번호를 부여해서 저장을 합니다. 그래서 해당 문장 안에서 필요한 글자만 골라서 활용할 수 있고 특정한 문자를 지우거나 변경을 할 수도 있어요. 먼저 문장에서 글자가 몇 번째에 위치하고 있는지 알아보는 방법을 해볼게요. 문장의 전체 길이를 알기 위해서는 len이라는 명령어를 이용합니다. 그리고 예제 문장에 첫 글자인 대문자 S의 위치가 몇 번째인지 확인하겠습니다.

print(len(saying)) #띄어쓰기 포함
print(saying.index("S"))

예제의 Sharing knowledge is the greatest of all callings는 총 49라는 숫자가 출력되고 S의 위치는 0번째라고 나옵니다. 여기서 저장되는 번호는 0부터 시작한다는 것을 알 수 있습니다. 만약에 특정 문자의 저장 위치를 알고 싶다면 index라는 명령을 사용하여 알 수 있습니다. 이번엔 대문자 S가 아닌 소문자 s의 위치를 찾아보겠습니다.

print(saying.index("s))

그럼 소문자 s는 19에 위치해 있다는 것을 알 수 있습니다. 여기서 추가로 python에서는 대문자와 소문자는 다르게 인식하고 있다는 것을 알 수 있습니다.

이번에는 주민번호로 예를 들어 보겠습니다.

ID_num="201011-3456789"
print("성별 : "+ ID_num[7])
print("연 : "+ ID_num[0:2]) #0부터 2 전까지 즉, 0과 1번째 자리 정보 가져옴
print("월 : "+ID_num[2:4])
print("일 : "+ID_num[4:6])

주민번호에 앞 6자리는 생년월일을 의미하고 뒷 7자리 중 첫 번째는 성별을 나머지는 고유번호이죠? 그래서 성별과 연, 월, 일을 의미하는 부분을 골라서 출력을 해보았습니다 여기서 주의해야 할 점은 저장번호가 0부터 시작한다는 것이고 띄어쓰기도 번호가 부여되는 것입니다. 그래서 성별을 나타내는 번호가 8번째에 있지만 0을 포함해서 세기 때문에 7이라고 했습니다. 그리고 :를 사용해서 시작 번호와 끝 번호 입력해서 출력 출력을 합니다. 이때 끝나는 저장번호에 +1을 추가해서 입력을 해주어야 합니다. 만약에 맨 처음 부분과 마지막 끝까지 출력을 하고 싶으면 해당 저장번호를 입력해도 되지만 숫자를 입력하지 않고 비어두어도 알아서 처음과 끝을 출력해 줍니다. 또 -를 입력하면 뒤에서부터 저장번호를 호출을 하는 것이니 문장이 길어서 번호가 너무 길면 뒤에서부터 부여된 번호를 사용하면 간단하게 호출할 수 있겠죠?

print("생년월일 : " +ID_num[0:6])
print("생년월일 : " +ID_num[:6]) #처음부터 6전까지 가져옴
print("뒤 7자리: " +ID_num[7:14])
print("뒤 7자리: " +ID_num[7:]) #7부터 끝까지 가져옴
print("뒤 7자리 (뒤에서부터) : " +ID_num[-7:]) #뒤에서 7번째부터 끝까지 가져옴

python은 대소문자를 구별하는 것뿐만 아니라 숫자와 문자도 구별해서 인식을 합니다. d는 정수를 의미하고 s는 문자열을 의미하며, c는 문자를 의미합니다. 따라서 다음과 같이 입력하면 각각 어떻게 인식을 하는지 알 수 있습니다.

print("나는 %d살입니다." % 20) #d는 정수를 의미
print("나는 %s을 좋아해요" % "파이썬") #s는 문자열를 의미
print("Apple 은 %c로 시작해요" % "A") #c는 문자 의미
print("나는 %s색과 %s색을 좋아해요" % ("파란", "빨간"))

마지막으로 탈출 문자에 대해서 알려드리겠습니다. print를 사용해서 출력을 하는데 줄을 바꿔서 입력하고 싶을 경우 역 슬레쉬+n을 사용하면 됩니다 역 슬레쉬는 키보드에서 \입니다. 또 python은 큰 따옴표를 이용해서 문장을 인식하는데 만약 문장 안에 큰 따옴표를 또 사용해서 하는 경우 error가 발생합니다. 연결 명령어 없이 문장이 붙여 있기 때문이죠 이때 역 슬레쉬+"를 추가하여 표시를 해주면 문장 안에 따옴표를 사용할 수 있습니다. 이는 작은따옴표도 같습니다.

이 밖에 역 슬레쉬를 이용하여  다음과 같은 기능을 할 수 있습니다.

이번 포스팅은 여기까지 하겠습니다. 잘 안 되는 것이 있으면 댓글 달아주세요

반응형

댓글