문자열 포맷 코드
코드 | 설명 |
%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
'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 |