Python

[Python] 문자열 포맷 코드, 포맷팅 예시

728x90

문자열 포맷 코드

코드 설명
%s 문자열 (String)
%c 문자 1개 (Character)
%d 정수 (Integer)
%f 부동소수 (Floating-point)
%o 8진수
%x 16진수
%% 문자 % 자체

 

포맷팅 예)

1. 숫자 바로 대입

>>> "I eat %d apples." % 3 
'I eat 3 apples.'

문자열 안에서 숫자를 넣고 싶은 자리에 %d 문자를 넣어 주고, 삽입할 숫자 3은 가장 뒤에 있는 % 문자 다음에 써 넣었다. 여기에서 %d는 문자열 포맷 코드라고 부른다.

 

2. 문자열 바로 대입

>>> "I eat %s apples." % "five" 
'I eat five apples.'

위 예제에서는 문자열 안에 또 다른 문자열을 삽입하기 위해 문자열 포맷 코드 %s를 썼다.

※ 문자열을 대입할 때는 앞에서 배운 것처럼 큰따옴표나 작은따옴표를 반드시 써주어야 한다.

 

3. 숫자 값을 나타내는 변수로 대입

>>> number = 3 
>>> "I eat %d apples." % number 
'I eat 3 apples.'

1번처럼 숫자를 바로 대입하나 위 예제처럼 숫자 값을 나타내는 변수를 대입하나 결과는 같다.

 

4. 2개 이상의 값 넣기

그렇다면 문자열 안에 1개가 아닌 여러 개의 값을 넣고 싶을 땐 어떻게 해야 할까?

>>> number = 10 
>>> day = "three" 
>>> "I ate %d apples. so I was sick for %s days." % (number, day) 
'I ate 10 apples. so I was sick for three days.'

위 예문처럼 2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 콤마(,)로 구분하여 각각의 값을 넣어 주면 된다.

 

5. 진수 변환

10진수 정수를 입력받아 16진수 소문자, 대문자로 출력하기

a = input() # 사용자 입력받기
b = int(a)	# 입력받은 변수는 모두 문자열로 처리된다. 따라서 int형 (10진수)으로 변경
print('%x' %b)	# 변수 b를 16진수 소문자로 출력
print('%X' %b)	# 변수 b를 16진수 대문자로 출력

16진수 정수를 입력받아 8진수로 출력하기

a = input()
b = int(a, 16)
print('%o' %b)

 

6. 유니코드 변환

유니코드(unicode)는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드이다.

(1) 영문자 1개를 입력받아 10진수 유니코드(Unicode) : Character 값으로 출력하기

a = ord(input())	#입력받은 문자를 10진수 유니코드 값으로 변환한 후, a에 저장한다.
print(a)

ord( ) 는 어떤 문자의 순서 위치(ordinal position) 값을 의미한다.  
실제로 각각의 문자들에는 연속된 정수 값이 순서에 따라 부여 되어 있다.

A:65, B:66, C:67 .... 

ord(c) : 문자 c 를 10진수로 변환한 값 

컴퓨터로 저장되고 처리되는 모든 데이터들은 2진수 형태로 정수화 되어야 하는데,
컴퓨터에 문자를 저장하는 방법으로 아스키코드(ASCII Code)유니코드(Unicode)가 자주 사용된다.

예를 들어, 영문 대문자 'A'는 10진수 값 65 로 표현하고, 2진수(binary digit) 값 1000001 로 바꾸어 컴퓨터 내부에 저장한다. 

 

(2) 10진수 정수 1개를 입력받아 유니코드(Unicode) 문자로 출력하기

a = int(input())
print(chr(a))	# a에 저장되어 있는 정수값을 유니코드 문자로 출력한다
10진 정수 1(32 ~ 126 범위)가 입력된다.

input() 을 이용해 사용자 입력을 받은 모든 값을 컴퓨터는 기본적으로 문자열로 판단한다. 
따라서, 입력 값이 문자/문자열/정수/실수인지에 따라서 먼저 정확하게 변환시킨 다음에 사용하거나 계산하는 것이 좋다.

 

chr( )는 정수값->문자, ord( )는 문자->정수값 형태로 바꿔주는 서로 반대 방향으로 바꾸어 주는 기능을 한다.


 

코드업 : codeup.kr/

점프 투 파이썬 : wikidocs.net/13

728x90

'Python' 카테고리의 다른 글

[Python] 비트 쉬프트 연산 <<, >>  (0) 2021.04.08
[Python] 실수 소수점 이하 반올림해서 출력하기  (0) 2021.04.08
[Python] 스택 / 큐  (0) 2021.04.06
[Python] 문자열 (String)  (0) 2021.03.29
[Python] 숫자 연산자  (0) 2021.03.29