study with Q - 파이썬
15 - format 함수
quaquaz
2024. 2. 22. 17:22
#format 함수
- 문자열이 가지고 있는 함수
- 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 사용
- #(중괄호의 개수) = #(함수 괄호 안 매개변수의 개수)로 입력해야 함.
- #(중괄호의 개수) < #(함수 괄호 안 매개변수의 개수)
>>> 첫 번째 매개변수만 입력되서 출력 - #(중괄호의 개수) > #(함수 괄호 안 매개변수의 개수)
>>> IndexError
- #(중괄호의 개수) < #(함수 괄호 안 매개변수의 개수)
- eg
format_1 = "{}".format(10)
print(format_1)
#어따 쓰는디?
- 이렇게 긴 코드를 쓰다보면 에러가 발생하기도 하고 너무 복잡하기도 하니까
#52 + 273 = {더한 값}
print(a, "+", b, "=", a+b)
>>> 52 + 273 = 325
#52+273={더한 값}
c = str(a) + "+" + str(b) + "=" + str(a+b)
print(c)
>>> 52+273=325
- 참고로 숫자와 문자열을 +연산으로 이으면 Type Error가 발생함
print(a + "+" + b + "=" + (a+b))
>>> TypeError
- format 함수를 쓰면 이렇게 간단하게 쓸 수 있다.
#아까 그 식 다시 써봐
format_short = "{} + {} = {}".format(a,b,a+b)
print(format_short)
>>> 52 + 273 = 325
#띄어쓰기 없는 버전도
format_short_ns = "{}+{}={}".format(a,b,a+b)
print(format_short_ns)
>>> 52+273=325
#직접해보는 손코딩
#format() 함수로 숫자를 문자열로 변환하기
f_1 = "보증금 {} 월세{}".format(1000, 50)
f_2 = "𝝿에 {}를 대입하여 푸시오.".format(3.14)
f_3 = "오레오 {}년 {}월 검사결과, 몸길이: {}, 몸무게: {}".format(20203,10,82, 7.8)
print(f_1)
>>> 보증금 1000 월세50
print(f_2)
>>> 𝝿에 3.14를 대입하여 푸시오.
print(f_3)
>>> 오레오 20203년 10월 검사결과, 몸길이: 82, 몸무게: 7.8
# 에러 발생!
f_2 = "문의사항은 {}-{}-{}으로 연락주세요".format(010,0000,00000)
>>> SyntaxError
🧐 아마도 010이나 0000은 정수가 아니여서 그런가
#split 함수
- 문자열을 특정한 문자로 자를 때는 split() 함수를 사용
- 실행결과로 리스트(list,
초절기교 Liszt 아님)가 나옴 (대괄호로 묶여 나옴, 굴비굴비] - split 함수 안에 괄호를 넣어 어떤 기준으로 자를지 결정함
- print("10 20 30 40.spilit(" ")") - 공백을 기준으로 자름
sp_1 = "2 4 8 16 32 64 128".split()
sp_1_1 = "2 4 8 16 32 64 128".split(" ")
sp_2 = "3-9-27-81-274".split("-")
print(sp_1)
>>>['2', '4', '8', '16', '32', '64', '128', '256', '512', '1024']
print(sp_1_1)
>>>['2', '4', '8', '16', '32', '64', '128', '256', '512', '1024']
print(sp_2)
>>>['3', '9', '27', '81', '274']
- split 함수 안에 괄호를 생략하면 공백(띄어쓰기, 줄바꿈, 탭 문자 등)으로 자릅니다.
- 띄어쓰기를 두 번 넣은 곳이 있을 때 " "로 자르면 공백이 나타나고, 괄호를 생략하면 공백이 나타나지 않음
print("0 1 0 1 0 1".split(" "))
>>>['0', '1', '0', '1', '0', '', '', '', '', '1']
print("0 1 0 1 0 1".split())
>>>['0', '1', '0', '1', '0', '1']
- 띄어쓰기, 줄바꿈, 탭 문자를 동일하게 자르고 싶다면 split()으로 입력
print("0 1\n0\t1\t0 1".split(" "))
>>>['0', '1\n0\t1\t0', '1']
print("0 1\n0\t1\t0 1".split())
>>>['0', '1', '0', '1', '0', '1']
용어) {} 중괄호 Curly Bracket(컬리 브라켓)