Code Fix

初級

SyntaxError: Missing parentheses in call to 'print' の原因と直し方

Python 2の書き方(print文)をPython 3で使うと出るエラーです。printが「文」から「関数」に変わったことが原因です。

エラーメッセージの読み方

  File "main.py", line 2
main.py
ファイル名
2
行番号 — Pythonが構文解析を諦めた位置
SyntaxError
エラークラス — 実行前の構文チェックで検出されました
Missing parentheses in call to 'print'. Did you mean print(...)?
内容 — 期待していたもの、または見つけられなかったもの

このエラーが出る典型パターン

パターン1

 1  message = "hello"
 2  print message 
             ^
File "main.py", line 2 print message ^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

Python 2ではprintは文でしたが、Python 3では関数です。関数として呼び出すには括弧が必要です。

直し方: message(message) にします。

この問題を解いてみる →

広告
広告スロット(未設定)

パターン2

 1  name = "Tom"
 2  age = 20
 3  print name, age 
              ^
File "main.py", line 3 print name, age ^^^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

複数の値を渡す場合もカンマの前に括弧が必要です。カンマだけでは関数呼び出しになりません。

直し方: name, age(name, age) にします。

この問題を解いてみる →

パターン3

 1  score = 90
 2  print "Score:", score 
                 ^
File "main.py", line 2 print "Score:", score ^^^^^^^^^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

文字列と変数を混ぜて表示する場合も同じです。printの後には必ず丸括弧で引数をまとめます。

直し方: "Score:", score("Score:", score) にします。

この問題を解いてみる →

よくある誤解

自分で書いたコードでは起きにくく、古い書籍やネット上の情報をそのまま写したときに多発します。Python 2時代の情報はまだ大量に残っています。

まとめ

SyntaxError: Missing parentheses in call to 'print'は初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。

演習をはじめる

関連するエラー

広告
広告スロット(未設定)