Today I Learned
1. 양식문자의 필요성
- 출력함수 `print()`를 변수와 문자열을 함께 사용하면 문제점이 있다
x = 123.456789
y = 123
name = "사랑꽃집"
print(a, "의 매출은", y, "만원을 달성했으며,", x, "%의 사업성공률을 자랑한다.")
- 보다시피 변수와 문자열 사이에 띄어쓰기가 되어있다.
- 이때 변수와 문자열 사이에 띄어쓰기 없이 문자열에 변수를 삽입해서 작성하고 싶을때 사용한다
2. 양식문자의 사용법
- 양식문자의 사용법 틀은 다음과 같다
number = 50
str1 = "문자열 사이에 삽입하고 싶은 변수타입에 맞게 양식문자%d를 작성합니다." % number
print(str1)
문자열 사이에 삽입하고 싶은 변수타입에 맞게 양식문자5000를 작성합니다.
- 양식문자 순서와 변수의 순서를 매치해준다
float = 123.4
hello = "안녕"
str2 = "변수 여러개를 넣을 때는 이렇게 작성합니다. %s, %f" %(hello, float)
print(str2)
변수 여러개를 넣을 때는 이렇게 작성합니다. 안녕, 123.400000
3. 양식문자 사용할때 실수하는 부분, 주의점
변수 여러개 일때 소괄호()로 변수 감싸줘야 함
- 내가 사용하다가 이렇게 에러가 자주나서 기록해둔다
- % 양식문자가 한개일때는 ()를 안해도 되지만, 양식문자가 여러개 일때는 ()로 변수들을 꼭 감싸야한다!!
- `%.2f` 는 소수점 두번째 자리까지만 출력한다는 뜻이다
- `%1.4f`는 정수부분을 한자리만 차지한다는 의미이지만 정수가 그 이상이면 그냥 다 출력한다.
TypeError: not enough arguments for format string
양식문자에 삽입할 인자 개수가 안맞으면 나오는 에러
% 양식문자에 삽입할 변수가 여러개 일때는 소괄호로 감싸지 않으면 인자 개수를 인식 못한다
print("%s의 매출은 %d만원을 달성했으며, %1.4f의 사업성공률을 자랑한다." % name,y,x) #()없음. 에러
x = 123.456789
y = 123
name = "사랑꽃집"
print("%s의 매출" %name)
print("%s의 매출" %(name))
print("%s의 매출은 %d만원을 달성했으며, %.2f의 사업성공률을 자랑한다." % (name,y,x)) #()필수
print("%s의 매출은 %d만원을 달성했으며, %1.4f의 사업성공률을 자랑한다." % (name,y,x))
사랑꽃집의 매출
사랑꽃집의 매출
사랑꽃집의 매출은 123만원을 달성했으며, 123.46의 사업성공률을 자랑한다.
사랑꽃집의 매출은 123만원을 달성했으며, 123.4568의 사업성공률을 자랑한다.
- 마지막 출력을 보면 소수점 네번째 자리까지 반올림해서 나왔고 정수는 `%1.4f`라고 해도 정수는 다 출력된다
문자열과 양식문자 변수 사이에 콤마(,) 사용한 경우 에러
- `print()`함수에서 변수와 문자열을 같이 사용할때 콤마(,)로 연결했던 것 때문에 나도모르게 자연스럽게 양식문자 쓸때도 콤마를 사용해서 에러가 떴다
- 콤마 안 쓴다
SyntaxError: invalid syntax
이건 문법에러다
print("%s의 매출은 %d만원을 달성했으며, %1.4f의 사업성공률을 자랑한다." % , (name,y,x)) #에러
print("%s의 매출은 %d만원을 달성했으며, %1.4f의 사업성공률을 자랑한다." % (name,y,x)) #정상실행
'💻개발 > Python' 카테고리의 다른 글
[Python/TIL] format함수와 {} 기호를 사용한 문자열 형식 (0) | 2024.11.17 |
---|---|
[Python] 파이썬 기본연산자 (+, -, *, /, %, **, // ) (0) | 2024.11.16 |
[Python] 간단하게 파이썬 시작하기(기본 IDLE) (2) | 2024.11.16 |