Python/Today I learned

TIL#02 생활코딩 Python 데이터타입-문자,숫자 / 포멧팅

higher77 2021. 5. 11. 23:03

 

4강 (문법) 데이터타입-숫자

 

 

 

 

출력을 하고 싶을 때는 print()사용

 

숫자는 그냥 1 2 3 4

문자열은 “1” “2”

 

Built-in(붙박이) types

파이썬이 기본적으로 제공하는 데이터타입

 

웹 개발을 하는데 있어 연산자는 + - * / 충분하다.

 

 

 

 

5.1강 (문법) 데이터타입-문자열의 표현

 

 

 

문자를 사용하는 방법

 

파이썬에서는 문자열(string)이라는 표현을 더 자주쓴다

 

print('Hello world')
print("Hello world")
print("Hell'o' world")

 

hello world 라는 문자열을 출력하고싶으면

 

print(hello world)가 아니라 작은따옴표 큰따옴표를 사용해야 한다.

 

다만, 작은따옴표로 시작했으면 작은따옴표로 끝나고 큰따옴표로 시작했으면 큰따옴표로 끝나야한다.

(보통 작은 따옴표를 더 쓴다.)

 

작은 따옴표와 큰 따옴표가 공존하는 이유는 무엇일까?

 

만약 o를 작은 따옴표로 감싸고 싶으면 

print(‘hell’o’ world’) # 오류!

print(“hell’o’ world”) # hell'o' world

 

print(“hell’o’ world”)를 하면 되기 때문이다.

 

 

 

문자열 안에 작은 따옴표와 큰 따옴표를 모두 포함하려면

print(“hell’o’ “w”world”) # 오류

#escape
print("Hell'o' \"w\"orld") # Hell'o' "w"orld

 

print(“hell’o’ \“w\”world”) 역슬래쉬를 사용하면 된다.

 

파이썬에서는 역슬래쉬가 나오면 바로 직후에 있는 단어 하나를 문자 하나를 문자로 친다.

일시적으로 따옴표의 기본적인 임무를 해제시켜주는 것이다.  

이걸 이스케이프escape라고 부른다

 

 

////////////////////////////////////////////////////////////////////////

 

 

여러줄을 표현할땐

#newline
print('H')
print('e')
print('l')
print('l')
print('o')

print(‘H\nello’) #H 
   	 	 #ello

그냥 print()를 띄워서 쓸 수도 있지만 

 

print(‘Hello’) 줄바꿈으로 약속된 기호인 \n를 쓰면 된다.

 

\n은 줄바꿈이라는 기능이 있는 특수한 기호이다.

 

 

\n을 사용하지않고 줄바꿈을 하고 싶다면

#docstring
print('''
H
e
l
l
o
''')

작은 따옴표를 따옴표 3개로 바꾸면 된다. 

이걸 독스트링(docstring)이라고 부른다.

 

텍스트가 좀 긴 경우 독스트링이라는 방식을 이용해서 표현하면 

복잡한 형식을 그대로 표현하면서 지저분하게 표현하지 않을 수 있다.

 

 

 

 

 

5.2강 (문법) 데이터타입-문자열의 처리

 

 

 

데이터타입을 처리하는 방법

 

변수라는 것은 변할수 있는 값이다.

a = 'Hello Pyhton'
print(a) #Hello Python

 

문자열의 처리방법 중 자주 사용하는 것을 알아보자

 

 

 

 

 

문자의 개수(길이)를 파악하는 것

a = 'Hello Pyhton'
#length
print(len(a)) #12

 

 

 

 

문자열을 추출하는 것

 

문자열의 세번째부터 다섯번째 글자까지만 추출하고 싶다.

a = 'Hello Pyhton'
#index
print(a[0]) #H
print(a[1]) #e
print(a[2:5]) #llo 이런건 슬라이스(Slice)라고 부른다.

파이썬에서는 카운팅을 0부터 시작한다.

 

문자열에서 어떤 문자를 집어오거나 슬라이스하고 싶다면 대괄호[]안에 

 

인덱스라고 부르는 값을 주는걸로 이러한 작업을 처리할 수 있다.

 

 

 

 

문자열을 반복하는 것

a = 'Hello Pyhton'
#repeat
print((a+'\n')*2) #Hello Python
	          #Hello Python

 

print((a+’\n’)*2) 곱하기 2를하면 두번 반복된다.

 

 

 

5.3강 (문법) 데이터타입-문자열과 변수

 

 

문자에서 특정한 부분만을 다른 값으로 방법을 살펴볼것이다.

그 과정에서 변수가 얼마나 중요한지 알아볼거다.

 

name = 'egoing'
age = 'one'
print('to '+name+'. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim apple veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. '+name+' Duis aute irure dolor in '+age+' reprehenderit apple computer in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui '+name+' officia deserunt mollit anim id est laborum.')

 

변수를 사용함으로서 가독성을 높이고 유지보수도 편리해지도 데이터양도 줄일수있다.

효율성을 높이는 것이다.

 

 

 

 

 

 

5.4강 (문법) 데이터타입-문자열과 변수

 

 

포맷팅으로 문자를 치환하고 동적으로 데이터를 생성해 내는 방법을 살펴볼거다.

 

우리가 생성한 변수의 이름과 똑같은 코드를 누군가가 사용 할 수 있다.

그러면 그 변수의 값이 변하면서 코드가 오동작할 가능성이 높아진다.

 

이런경우 포맷팅이라는 기능을 사용하면 그 가능성을 줄일 수 있다.

 

Name: ‘egoing’
Age = ‘one’

print('to ‘+name+’.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim apple veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. {} Duis aute irure dolor in {} reprehenderit apple computer in’+age+’. voluptate velit esse cillum +name+’.dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui {} officia deserunt mollit anim id est +name+’.laborum.’)

여기있는 텍스트는 데이터다.

그리고 저 데이터는 바꾸러면 파이썬이라는 프로그램을 열어야한다.  

우리가 만드는 프로그램은 파이썬을 사용할지 모르는 사람도 쓸 수 있어야한다.

 

 

그런데 내용을 바꾸려면 파이썬의 코드를 열어야한다. 

그래서 이 코드를 파이썬이 아닌 일반적인 텍스트 파일로 바깥쪽으로 분리해 내고 

사용자는 그 텍스트 파일만을 수정하게 하고 싶다. 

 

그러면 지금처럼 변수와 같은 파이썬의 문법이 포함되어 있는 코드는 문제가 있다.

 

이때 포맷팅이라는 기술을 이용하면 이 문제를 완화하거나 해결할 수 있다.

 

#positional formatting(위치기반)
print('to {}. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim apple veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. {} Duis aute irure dolor in {} reprehenderit apple computer in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui {} officia deserunt mollit anim id est laborum.'.format('egoing', 12, 'egoing', 'egoing'))
 
 
#Named placeholder(이름기반)
print('to {name}. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim apple veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. {age:d} Duis aute irure dolor in {name} reprehenderit apple computer in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui {name} officia deserunt mollit anim id est laborum.'.format(name='egoing', age=12))

positional formatting은 포멧 안의 데이터가 순서대로 배치된다.

 

Named placeholder을 쓰면 조금 더 복잡해지지만 중복이 사라지고 괄호의 값을 통해 어떤 취지의 데이터가 오는지 이해할 수 있어 가독성도 높아진다.

 

만약에 age에 반드시 숫자를 넣고 싶으면 digit의 d를 이용해 age:d라고 적으면 된다.

댓글수0