old-cast1e 2024. 7. 1. 22:28
728x90
반응형
 

파이썬 시작하기 | Notion

@ 왼쪽, 가운데 및 오른쪽 정렬 형태 지정

udangtangtang-cording-oldcast1e.notion.site

 

파이썬 주석문

한 줄 주석  <crtl> + </>
여러 줄 주석 ‘’’(주석)‘’’

파이썬 문자열 출력

print() 함수의 기본적인 사용법

# print()함수의 기본적인 사용. 쉼표(,)를 이용해서 여러 타입의 데이터를 연속 출력 가능
print("당신의 나이는", 33 ,"세입니다!")
# 함수를 이용해서 데이터 형변환 하기 : str(), int(), float()
print("당신의 나이는 "+ str(33) +"세 입니다!")

print() 함수는 쉼표를 이용해 여러 데이터를 한 번에 출력 가능하다.

쉼표를 이용해 서로 다른 타입의 데이터를 사용해도 문제는 없으나 쉼표의 사용 시 데이터 사이의 기본 구분자로 공백이 포함된다.

문장의 끝은 줄 바꿈 문자가 표함되며 이것은 다음과 같은 속성을 사용해 변경가능하다.

🤔 파이썬의 문자열 출력(print)은 줄바꿈이 포함된다.

ch01ex02

print end

end 옵션은 이름에서 보이는 것처럼 무엇으로 끝날지 정해 줄 수 있다. 기본적으로 줄 바꿈으로 설정되어 있으며 공백을 종결내용으로 채우면 된다.

💡 print(출력할 내용, end=끝날내용)
#end=""
print("당신의 나이는", 33 ,end="세입니다!")
print("당신의 나이는 "+ str(33) +"세 입니다!")

>>당신의 나이는 33세입니다!당신의 나이는 33세 입니다!
  • end 옵션을 사용하면 기본적인 종결 문자인 줄 바꿈을 대신하여, end로 선언한 문자(열)를 종결 문자(열)로 변경할 수 있다.
  • 즉, end 옵션을 사용하면 그 뒤의 출력값과 이어서 출력하며 이때 쉼표의 구분으로 인해 이전의 출력값과의 공백이 자동으로 출력된다.

print sep

여러 개를 출력할 때 분리하고 싶을 때 sep 옵션을 사용한다.

💡 print(출력할 내용들, sep=분리 내용)
#sep=""
print("당신의 나이는", 33 ,sep="세입니다!")
>> 당신의 나이는세입니다!33

print('S','E','P', sep='@')
>> S@E@P
  • sep(separation) 옵션분리에서 선언한 **분리 내용(갈라놓을 문자)**으로 출력할 내용을 분리하며, 분리 내용이 끼워져 출력된다.
  • 이때 분리 내용(갈라놓을 문자)을 구분자라고 한다.

문자열 변환 포맷 기호

💡 문자열 변환 포맷은 문자열 표시 이후 % 기호를 사용한다.

 

%s 문자열을 변환하는 기호
%d 정수를 변환하는 기호
%f 실수를 변환하는 기호

변환 문자열은 여러 줄 문자열에도 사용이 가능하다.

# 변환 문자열을 이용한 출력 : %d, %s, %i, %f
print("당신의 나이는 %d세입니다!" % 33)
print("%s님의 나이는 %d세입니다." % ("홍길동", 33) )

>>당신의 나이는 33세입니다!
>>**홍길동**님의 나이는 **33**세입니다.

Escape

\n 줄바꿈
\t 탭(TAP)
\\ '\' 출력
\' 작은따옴표 출력
\" 큰따옴표 출력
\b 백 스페이스 (print 함수 끝/문자열 끝에서 동작 X)
\000 널 문자
print("줄바꿈\\n실행")
print("\\": 큰 따옴표 출력")
print("\\\\: 역 슬래쉬 출력")
print("문자 삭제(#): #\\b<-")

>>줄바꿈
>>실행
>>": 큰 따옴표 출력
>>\\: 역 슬래쉬 출력
>>문자 삭제(#): <-

format()

ch01ex03

 format() 함수 사용법

format()은 문자열을 미리 정해 놓은 형식으로 출력할 수 있도록 하는 메서드이다.

💡 print(”문자열”.format())

다음과 같이 문자열 안에 중괄호 {}를 이용해서 메서드에서 전달하는 (출력하려는) 객체의 위치를 정해줄 수 있다.

  • format 함수는 중괄호 ‘{’ , ‘}’ 안에 포매팅을 지정하고 format 함수의 인자로 값들을 넣는다.
  • 이때 format의 대입 방법은 아래와 같다.

[1] 직접 / 변수 / 이름 대입

print('name : {0}'.format('old_cast1e'))

age = 25
print('age : {0}'.format(age))
print('gender : {}'.format('남'))# 인덱스를 사용하지 않으면 자동으로 할당
print('name : {name}, number : {num}, gender : {gen}'.format(name = 'old_cast1e', num = 25, gen = '남'))

>>name : old_cast1e
>>age : 25
>>gender : 남
>>name : old_cast1e, number : 25, gender : 남
  • 이때 {} (중괄호) 안의 숫자는 인덱스로, format 함수의 인자의 인덱스에 해당하는 객체를 해당 공간에 출력한다. 변수 이름을 선언하지 않았다면 자동으로 해당 인덱스의 객체를 불러온다.
  • 인덱스를 사용하지 않고, 중괄호 안에 format 객체에 할당된 변수명을 사용해도 된다.
💡 문자열의 중괄호와 format 함수의 객체와의 관계는 아래와 같다.
  • 문자열의 중괄호가 format 객체보다 적은 경우 : 정상 실행
print('gender : {}'.format('남','여'))
>>gender : 남
  • 문자열의 중괄호가 format 객체보다 많은 경우 : 에러 발생

ValueError: cannot switch from manual field specification to automatic field numbering

[2] format 문자열의 인덱스

  • format 문자열의 인덱스가 지정되지 않은 경우, 순서대로 해당 인덱스에 맞도록 지정된다. 이때 문자열의 인덱스보다 객체가 많은 것은 에러가 발생하지 않으나, 객체의 수가 더 적은 경우 에러가 발생한다.
  • 인덱스는 지정할 수 있으며, 객체의 순서대로 인덱스가 할당된다. 이때 인덱스는 중복으로 사용이 가능하다.
  • 문자열의 중괄호를 중괄호({})로써 사용하기 위해서는 중괄호를 한 번 더 입력한다.
print('school: {}, city : {}'.format('sejong univ','seoul'))

print('name : {0}, age: {1}'.format('old_cast1e','23'))
print('name : {1}, age: {0}'.format('old_cast1e','23'))
  • 문자열의 중괄호 인덱스가 객체 인덱스를 벗어나는 경우 에러가 발생한다.

print('name : {2}, age: {0}'.format('old_cast1e','23')) IndexError: Replacement index 2 out of range for positional args tuple

[3] format 활용

 format() 함수 사용법 (1)

  • 서식 지정자 지정

정수 출력 :d

소수 출력 .nf
지수 표기법 출력 :e
진수 출력 b: 이진수
o: 8진수  
x: 16진수  
문자열 출력 :s
지수 또는 소수점 출력 :g
0 채우기 :0n → 길이가 n개인 문자열에 남은 공간에 0을 채움
  • 이름 지정법
data = {"name": "John", "age": 30}
print("My name is {name} and I'm {age} years old.".format(**data))
>> My name is John and I'm 30 years old.
  • 왼쪽, 가운데 및 오른쪽 정렬 형태 지정
고급 형식지정 문자열 의미
{:>10} 전체 10칸을 차지하며 공백을 앞에 붙임 (문자열을 오른쪽에 붙여서 출력)
{:<10} 전체 10칸을 차지하며 공백을 뒤에 붙임 (문자열을 왼쪽에 붙여서 출력)
{:^10} 전체 10칸을 차지하며 공백을 앞뒤에 붙임 (문자열을 중앙에 붙여서 출력)
{:-^10} 전체 10칸을 차지하며 - 문자를 앞뒤에 붙임. 이때 - 문자는 변경 가능
{:.5f} 부동소수점의 소수점 아래 5자리까지 표시
{:,} 천단위 쉼표 표시
# 형식 지정자를 이용한 문자열 중앙 정렬
text = "Hi"
formatted_text = "{:-^10}".format(text)

# 결과 출력
print(formatted_text)
  • 자릿수와 소수점 지정

 

표현식 설명 결과  
"{:d}".format(123) 정수 출력 123
"{:5d}".format(123) 최소 5자리 정수 출력 (오른쪽 정렬) 123
"{:05d}".format(123) 최소 5자리 정수 출력 (빈 공간을 0으로 채움) 00123
"{:8.2f}".format(123.456) 전체 8자리, 소수점 이하 2자리까지 출력 123.46
"{:.2%}".format(0.1234) 백분율로 출력 (소수점 이하 2자리) 12.34%
"{:,}".format(1234567) 천 단위 구분 기호 추가 1,234,567
"{:,.2f}".format(1234567.89) 천 단위 구분 기호 및 소수점 이하 2자리까지 출력 1,234,567.89
  • 고급 형식지정 문자열
    • 형식지정 문자열은 여러 가지 숫자 인수를 가질 수도 있다.
    • 만약 공간의 길이가 인쇄될 값보다 크면 정수가 양수일 때는 값을 뒤로 보내고 공백을 앞에 채우거나 반대로 정수가 음수이면 값을 앞으로 보내고 공백을 뒤에 채운다.
    • 만약 % 기호 다음에 소수점이 있는 숫자가 오면 점 뒤의 숫자는 실수를 인쇄할 때 소숫점 아래로 그만큼의 숫자만 인쇄하라는 뜻이다.
💡 % 기호 다음에 오는 정수는 값이 인쇄될 때 차지하는 공간의 길이를 뜻한다.

 

고급 형식지정 문자열 의미
%20s 전체 20칸을 차지하는 문자열(공백을 앞에 붙인다.)
%-10d 전체 10칸을 차지하는 숫자(공백을 뒤에 붙인다.)
%.5f 부동소수점의 소수점 아래 5자리까지 표시
  • f 문자열

파이썬 3.6부터는 f 문자열(f-string)이라는 것을 사용할 수 있다.

f 문자열에서 공백의 크기 등을 지정할 때는 format 방법과 같은 고급 형식지정 문자열을 사용할 수 있다.

💡 f 문자열은 문자열의 앞에 f 글자를 붙인 문자열로, {} 안에 변수의 이름을 바로 사용할 수 있다.
name = "홍길동"
age = 32
print(f"*{*name*}*의 나이는 *{*age*}*살이다."

홍길동의 나이는 32살이다.

예제 출력

# format() 함수를 이용한 처리
print("당신의 나이는 {}세입니다!".format(33) )
print("{1}님의 나이는 {0}세입니다.".format(25, "김길동") )
# -기호를 30개 출력 하고 중앙에 '제목'이라는 문자열을 출력.
# ^가운데 <좌측 >우측
print("{:-^30}".format("제목") )

당신의 나이는 33세입니다! 김길동님의 나이는 25세입니다. --------------제목--------------

다음과 같이 문자열 안에 중괄호 {}를 이용해서 메소드에서 전달하는 (출력하려는) 객체의 위치를 정해줄 수 있다

prog_name = 'python'
print('My {} is {}.\\n'.format('name', prog_name))

My name is python.

format() 메소드는 다음 예에서 보듯 숫자를 그대로 사용할 수 있습니다.

print('{} is {} dollar bill.'.format('This', 100))

This is 100 dollar bill.

format() 메소드 없이 문자와 숫자를 함께 출력하려 할 경우 에러를 야기하니 주의해야 하며 아래 예와 같이 전달 객체를 출력할 때 최소 글자 길이를 정할 수 있습니다.

print('{0:5} is {1:^5} dollar bill.'.format('This', 100))

This is 100 dollar bill.

여기서 콜론(:) 앞쪽의 숫자는 전달 객체의 순서(0부터 시작), 뒤의 숫자는 출력될 최소 길이를 의미하며 <, ^, >을 콜론 뒤에 사용하여 각각 왼쪽, 가운데, 오른쪽 정렬을 할 수 있다.

728x90
반응형