안녕하세요 한주현입니다.
오늘은 파이썬2에서는 잘 실행 되는데 파이썬3에서 실행하면 발생하는 오류 중 하나인,
SyntaxError: Missing parentheses in call to 'print'
에 대하여 알아보겠습니다.
문제 상황
SyntaxError: Missing parentheses in call to 'print'
파이썬3가 나오고 파이썬2는 legacy(유물)로 말씀하시는 귀도 선생님의 말씀을 새겨 듣고
파이썬3으로 옮겨 오기 위해 파이썬3을 설치 및 기존 코드를 실행해보니
아래와 같은 오류 발생 ㅋㅋ
1 2 3 4 5 | $ python3 helloworld2.py File "helloworld2.py", line 1 print "hello world" ^ SyntaxError: Missing parentheses in call to 'print' | cs |
왜 오류가 났을까요?
해결 방법
1 | print "hello world" | cs |
원인은 print 에 있습니다.
먼저 SyntaxError: Missing parentheses in call to 'print' 의 의미부터 살펴보죠.
문법적으로 오류가 났는데 parentheses (괄호) 가 print를 호출하는데 빠졌다고 쓰여있습니다.
1 | print("hello world") | cs |
print 에 괄호가 빠져있다고 하니 이렇게 괄호를 넣어주시면 해결됩니다.
괄호를 넣어주는 이유는
python2의 print 문이 python3가 되면서 print 함수가 되었기 때문입니다.
함수에는 인자를 전달할 수 있는데, 함수에 전달되는 인자는 함수(인자1, 인자2) 와 같은 형태이지요.
정확히 말씀드리자면 python3의 print 함수는 아래와 같습니다.
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
python3 부터 바뀌는 내용들을 귀도 반 로썸 선생님께서 다음 링크에 작성해주셨습니다 ㅎㅎ
https://docs.python.org/3/whatsnew/3.0.html
다음 링크는 python3의 print 함수에 대한 내용입니다.
https://docs.python.org/3/library/functions.html#print
여러분들께 도움이 되셨으면 좋겠네요
그럼 다음 시간에 만나요!
'컴퓨터 > Python' 카테고리의 다른 글
[파이썬] 파이썬 에러 KeyError - 두 가지 해결 방법 (2) | 2017.11.02 |
---|---|
[파이썬] 파이썬 에러 ValueError: invalid literal for int() with base10: '4.3' (0) | 2017.11.01 |
[파이썬] 파이썬 에러 IndentationError: expected an indented block (0) | 2017.11.01 |
[파이썬] 파이썬 에러 IndexError: list index out of range (0) | 2017.11.01 |
[IPython] %matplotlib inline 의 의미 (2) | 2017.10.22 |
댓글