반응형

문자열 포맷 코드

동일한 문자열은 그대로 사용하면서 문자열 안에 필요한 부분만을 변경하고자 한다면 문자열 포맷 코드를 사용하면 됩니다.

문자열 안에 정수나 문자 같은 다른 타입의 값을 입력하고자 할 때 다음과 같은 타입에 해당하는 포맷을 사용하여야 합니다.

 

)

현재 온도를 1분마다 현재 온도는 24도입니다.”로 출력한다고 할 때 숫자 24부분만 바뀌고 나머지 문자들은 바뀌지 않습니다. 이와 같이 문자열에서 특정 위치에 문자를 넣고자 할 때 사용합니다.

Input: “현재 온도는 %d도입니다.” % 24

Output: 현재 온도는 24도입니다.

 

코드 설명
%s 문자열
%c 문자 1
%d 정수
%f 부동소수
%o 8진수
%x 16진수
%% Literal %(문자 ‘%’ 자체)

 

 

1.     숫자 바로 대입하기 : 문자열 안에 숫자를 넣고 싶으면 넣고 싶은 자리에 %d 문자를 넣어주고, 삽입할 숫자를 %문자 다음에 써 넣어주면 됩니다.

 

Input: “I eat %d apples.” % 3

Output: I eat 3 apples.

 

2.     문자열 바로 대입하기 : 문자열 안에 문자열을 넣고 싶으면 넣고 싶은 자리에 %s를 사용하면 됩니다.

 

Input: “I eat %s apples.” % “five”

Output: I eat five apples.

 

3.     숫자값을 나타내는 변수로 대입하기 : 숫자 바로 대입하기와 방법은 동일합니다. 단지, 숫자 3부분에 넣고 싶은 정수형 변수를 넣어주면 됩니다.

 

Input: number = 3

      “I eat %d apples.” % number

Output: I eat 3 apples.

 

4.     2개 이상의 값을 넣기

Input: number = 10

      day = “three”

      “I eat %d apples. so I was sick for %s days.” % (number, day)

Output: I eat 10 apples. so I was sick for three days.

 

5.     %d %를 같이 사용할 때 %%를 사용

Input: “Error is %d%%.” % 99

Output: Error is 99%.

 

 

< 포맷 코드의 여러가지 표현들 >

 

1.    정렬과 공백

10개의 문자를 입력할 수 있는 공간에 “python”문자열을 오른쪽으로 정렬하려면 “%10s”를 사용하면 됩니다. “python”문자 앞에 5개의 공백문자가 자동으로 입력됩니다.

 

Input: “%10s” % “python”

Ouput:     python”

 

10개의 문자를 입력할 수 있는 공간에 “python”문자열을 왼쪽으로 정렬하려면 “%-10s”를 사용하면 됩니다. “python”문자 뒤에 5개의 공백이 자동으로 입력됩니다.

 

Input: “%-10s” % “python”

Output: “python    

 

2.    소수점 표현

문자열에 실수를 입력할 때는 “%f”를 사용하면 되는데 정렬방법을 사용하여 출력을 보기좋게 표현할 수 있습니다.

실수에서 정수부분의 표현 길이와 소수점 아래 표현 길이를 정할 수 있습니다. 실수 3.141592를 넣고자 할 때 정수 부분을 10개의 문자길이로 표현하고 소수점 아래는 2개 자리까지만 사용하고자 한다면 “%10.2f”를 사용하면 됩니다.

 

Input: real1 = “%10.2f” % 3.141592

      real2 = “%10.2f” % 1234567890.3838

      print(real1)

      print(real2)

Output:           3.14”

        1234567890.38

 

3.    format() 함수 사용

format함수를 사용해도 문자포맷을 사용한 것처럼 표현할 수 있습니다.

 

숫자 입력

Input: “I eat {0} apples”.format(3)

Output: I eat 3 apples.

 

문자열 입력

Intput: “I eat {0} apples”.format(“five”)

Output: I eat five apples.

 

2개 이상값 입력

Input: “I ate {0} apples. so I was sick for {1} days.”.format(3, “three”)

Output: I ate 3 apples. so I was sick for three.

 

이름으로 넣기

Input: “I ate {number} apples. so I was sick for {days} days.”.format(number=3, days=“three”)

Output: I ate 3 apples. so I was sick for three

 

왼쪽 정렬

Input: “{0:<10}”.format(“python”)

Output: “python    

 

오른쪽 정렬

Input: “{0:>10}”.format(“python”)

Output:     python”

 

가운데 정렬

Input: “{0:^10}”.format(“hi”)

Output:    hi   

 

공백 채우기

Input: “{0:=^10}”.format(“hi”)

Output: “====hi====“

 

소수점 표현하기

Input: “{0:0.2f}”.format(3.141592)

Output: “3.14“

 

 

< 문자열 관련 함수 >

 

문자 개수 세기(count)

문자열에서 지정한 문자열이나 문자의 개수를 카운트합니다. “python”문자열에서 ‘h’문자의 개수를 카운트합니다.

 

str1 = "python"

str1.count('h')

 

Output:

1

 

위치 알려주기(find)

문자열에서 찾고자 하는 특정 문자나 문자열이 존재하면 그 위치를 출력해줍니다. 찾고자 하는 문자열이나 문자가 없으면 -1을 출력합니다.

str1 = "Python is the best programming language"

str1.find('best')

 

Output:

14

 

str1 = "Python is the best programming language"

str1.find('apple')

 

Output:

-1

 

위치 알려주기(index)

문자열에서 찾고자 하는 문자열이나 문자의 위치를 출력해줍니다. 문자열에 찾을 문자나 문자열이 없으면 오류가 발생합니다.

str1 = "Python is the best programming language"

str1.index('best')

 

Output:

14

 

문자열 삽입(join)

문자열 사이에 특정 문자나 문자열을 넣고자 할 때 사용합니다.

",".join('language')

 

Output:

 l,a,n,g,u,a,g,e

 

소문자를 대문자로 바꾸기(upper)

str1 = "python"

str1.upper()

 

Output:

PYTHON

 

대문자를 소문자로 바꾸기(lower)

str1 = "PYTHON"

str1.lower()

 

Output:

python

 

왼쪽 공백 지우기(lstrip)

str1 = "  python"

str1.lstrip()

 

Output:

‘python’

 

오른쪽 공백 지우기(rstrip)

str1 = "  python  "

str1.rstrip()

 

Output:

  python’

 

양쪽 공백 지우기(strip)

str1 = "  python  "

str1.split()

 

Output:

‘python’

 

문자열 바꾸기(replace)

str1 = "Python is the worst programming language"

str1.replace("worst", "best")

 

Output:

Python is the best programming language

 

문자열 나누기(split)

str1 = "Python is the best programming language"

str1.split()

 

Output:

['Python', 'is', 'the', 'best', 'programming', 'language']

반응형

+ Recent posts