본문 바로가기
Python/파이썬 기초

문자열형 자료형과 관련된 내장함수와 포맷팅 - 파이썬 기초(11)

by 콩돌 2018. 12. 16.
반응형

참고 자료

https://docs.python.org/3/library/functions.html

파이썬 버전 3.7 기준



문자열 자료형과 관련된 내장함수


본 포스팅에서 다루는 함수는 다음과 같다.

chr(), ord(), repr(), ascii(), hex(), bin(), oct(), format()  등.

문자열형 자료형으로 변경해주는 내장함수(str()) 등에 대한 내용은 여기를 참고한다.


유니코드문자와 관련된 내장함수


chr(x)

  ○ 입력된 정수(유니코드 포인트)가 나타내는 문자열을 반환한다.

  ○ 입력된 x가 정수형이면서, 유니코드 포인트 숫자범위를 이내여야한다.


ord(c)

  ○ 하나의 유니코드 문자를 나타내는 문자열이 주어지면 해당 문자의 유니코드 포인트를 나타내는 정수를 반환한다.

  ○ chr()의 반대이다.



In[15]: chr(8684)
Out[15]: '⇬'
In[16]: ord('⇬')
Out[16]: 8684


출력과 관련된 내장함수


repr(x)

  ○ 입력 객체 x의 인쇄 가능한 표현(?)을 포함한 문자열을 반환한다.

  ○ 즉 입력값이 print()함수로 출력을 수행했을 때 나타날 수 있는 형태로 문자열을 형성시켜준다.


실행 예)

In[41]: repr('Python is good')

Out[41]: "'Python is good'"

In[42]: repr(5.5541)

Out[42]: '5.5541'



ascii(object)

  ○ repr()과 마찬가지로 인쇄 가능한 표현을 포함하는 문자열을 반환한다.

  ○ 다른점은 \x, \u, \U와 같은 이스케이프를 사용하여 비 ASCII 문자를 이스케이프 한다. 


사용 예)

#ASCII 문자인 경우

In[8]: repr("I am sleepy")

Out[8]: "'I am sleepy'"

In[9]:ascii("I am sleepy")

Out[9]: "'I am sleepy'"


#ASCII 문자가 아닌 경우

In[10]: repr("나는 졸리다")

Out[10]: "'나는 졸리다'"

In[11]: ascii("나는 졸리다")

Out[11]: "'\\ub098\\ub294 \\uc878\\ub9ac\\ub2e4'"




숫자(진법)와 관련된 내장함수


hex(x)

  ○ 입력된 숫자를 "0x" 접두사가 붙은 소문자 16진수 문자열로 변환하여 반환한다. 

  ○ 입력된 x가 정수형이어야 한다.


bin(x)

  ○ 입력된 정수에 0b가 앞에 붙은 이진문자열로 치환하여 반환한다.


사용 예)

In[6]: bin(10)

Out[6]: '0b1010'

In[7]: bin(-10)

Out[7]: '-0b1010'


oct(x)

  ○ 입력된 정수에 0o가 앞에 붙은 8진수 문자열로 치환하여 반환한다.


사용 예)

In[16]: oct(10)

Out[16]: '0o12'

In[17]: oct(-10)

Out[17]: '-0o12'




포맷와 관련된 내장함수


format(value[, format_spec])

  ○ value를 특정 포맷에 맞춘 형태로 만들어 반환한다. 

  ○ format_spec에 대한 해석은 value의 type에 의존하지만, 대부분 내장형에 의해 사용되는 표준 포메팅 문법이 있다.

    ▷ 자세한 문법은 https://docs.python.org/ko/3/library/string.html#formatspec 참고

  ○ format_spec의 기본값은 빈 문자열이며, 생략될 경우 str(value)를 호출하는 것과 같은 결과를 반환한다.


사용 예)

In[4]: '{0}, {1}, {2}'.format(3,4,6)

Out[4]: '3, 4, 6'

In[5]: 'your age is {0}, and your height is {1}'.format('twenty', 175)

Out[5]: 'your age is twenty, and your height is 175'


  ○ format 함수를 통해 왼쪽, 오른쪽, 가운데 정렬등이 가능하다.

    ▷ >: 오른쪽 정렬 

    ▷ <: 왼쪽 정렬 
    ▷ ^: 가운데 정렬 

  ○ 정렬 플래그 앞에 특정 문자를 첨가함으로써, 빈 공간을 해당 문자로 채울 수 있다.

    ▷ >: 오른쪽 정렬 


사용 예)

In[10]: '{0:^20}'.format('Rainymood')

Out[10]: '     Rainymood      '

In[11]: '{0:<20}'.format('Rainymood')

Out[11]: 'Rainymood           '

In[12]: '{0:>20}'.format('Rainymood')

Out[12]: '           Rainymood'


In[13]: '{0:;^20}'.format('Rainymood')

Out[13]: ';;;;;Rainymood;;;;;;'



  ○ 파이썬 3.6 버전 이후로는 format 함수 대신 f 포멧팅이 가능하다.

    ▷ f'문자열 {변수} 문자열'과 같은 형태로 가능하며, 예제를 아래에 작성해놓았다.


사용 예)

In[7]: age = 40

In[8]: height =173.2

In[9]: f'your age is {age}, and your height is {height}'

Out[9]: 'your age is 40, and your height is 173.2'





반응형

댓글