반응형
https://www.acmicpc.net/problem/25083
아래 모양의 텍스트를 출력만 하면 되는 매우 간단한 문제이다.
,r'"7
r`-_ ,' ,/
\. ". L_r'
`~\/
|
|
Warning이 발생하는 정답 코드
print()를 여러 줄에 대해 호출하지 않기 위해 multiline string(""" """ 형태 문자열)을 사용할 수 있다.
print(
""" ,r'"7
r`-_ ,' ,/
\. ". L_r'
`~\/
|
|"""
)
SyntaxWarning: invalid escape sequence '\.'
위 코드는 정답으로 동작은 하지만, SyntaxWarning이 발생한다. 그 이유는 역슬래시(\)의 존재 때문이다.
\. 는 파이썬 입장에서 볼 때 \n이나 \t 와 같은 유효한 escape sequence가 아니므로, 그냥 그 자체로 출력이 되버린다. 그러면서 만약 escape sequence를 의도한 코드라면 문제가 있다는 것을 개발자에게 알려주는 warning인 것이다.
이 문제는 아래 2가지 방법 중 하나를 택하면 풀 수 있었다.
정답 코드 1
print(
""" ,r'"7
r`-_ ,' ,/
\\. ". L_r'
`~\\/
|
|"""
)
출력될 역슬래시(\)들에 대해 제대로 escape sequence를 명시하는 방법이다(\\ 사용).
정답 코드 2
print(
r""" ,r'"7
r`-_ ,' ,/
\. ". L_r'
`~\/
|
|"""
)
아예 모든 종류의 escape sequence를 무력화시키는 raw string 포맷을 사용하는 방법이다.
즉 역슬래시(\)가 escape character가 아닌 일반 문자로 간주된다.
반응형
'baekjoon' 카테고리의 다른 글
[BOJ] 1157번: 단어 공부 / Python - collections의 Counter와 match 문법 사용 (0) | 2024.12.25 |
---|---|
[BOJ] 2444번: 별 찍기 - 7 / Python - f-string의 가운데 정렬 사용 (1) | 2024.12.24 |
[BOJ] 5622번: 다이얼 / Python (0) | 2024.12.21 |
[BOJ] 11720번: 숫자의 합 / Python - Generator Expression 사용 필기 (0) | 2024.12.21 |
[BOJ] 10807번: 개수 세기 / Python (0) | 2024.12.20 |