반응형
while True:
a, b = map(int, input().split())
print(a + b) if (a + b) else break
줄 수를 줄이기 위해 위와 같이 코드를 작성하자,
break에 빨간 줄이 그어지며 SyntaxError: invalid syntax가 발생했다.
Python에서 3항 연산자의 사용 방식은 다음과 같은데,
<expr1> if <condition> else <expr2>
여기서 <expr>는 expression이며,
break, return과 같은 명령어는 statement라고 한다.
expression와 statement을 구분하는 방법은
출력할 수 있거나, 변수에 값을 삽입할 수 있으면 expression, 할 수 없으면 statement 이다.
expression의 예
2 + 2
3 * 7
1 + 2 + 3 * (8 ** 9) - sqrt(4.0)
min(2, 22)
max(3, 94)
round(81.5)
"foo"
"bar"
"foo" + "bar"
None
True
False
2
3
4.0
statement의 예
if CONDITION:
elif CONDITION:
else:
for VARIABLE in SEQUENCE:
while CONDITION:
try:
except EXCEPTION as e:
class MYCLASS:
def MYFUNCTION():
return SOMETHING
raise SOMETHING
with SOMETHING:
어떠한 statement도 변수에 저장할 수 있는 값을 가지지 않아, 아래와 같은 코드는 동작하지 않는다.
x = if CONDITION:
y = while CONDITION:
z = return 42
foo = for i in range(10):
여담으로, print( )는 python2에서는 statement였으나,
python3에서는 function이 되어 3항 연산자에서 사용이 가능해졌다고 한다.
x = print(42) # print()는 None을 리턴하므로 x == None
# 참조 링크
https://stackoverflow.com/questions/44848883/why-if-else-break-breaks-in-python
반응형
'Dev > Python' 카테고리의 다른 글
[ Python ] 입출력(I/O) 속도 빠르게 하기 (3) | 2021.12.06 |
---|---|
No module named 'win32com' (0) | 2021.03.28 |
[ vscode ] extension "Code Runner" 한글 깨짐 (python, c, cpp) (1) | 2021.03.17 |