Pythonで単一変数と複数変数を出力する方法|Python 2.xと3.xの違いを徹底解説
この記事では、Pythonの異なる2つのバージョン(Python 2.7とPython 3.6)を使って、単一変数および複数変数の出力方法をそれぞれ確認していきます。バージョンによってprintの書き方が大きく異なるため、その違いをコード例とともに見ていきましょう。
Python 2.7の場合
単一変数の出力
>>> #Python 2.7
>>> #単一変数の出力
>>> print 27
27
>>> print "Rahul"
Rahul
>>> #括弧を付けても単一変数として出力できる
>>> print(27)
27
>>> print("Rahul")
Rahul
Python 2.7では、printはステートメント(文)として扱われるため、括弧なしでも動作します。また、括弧を付けても単一の値であれば問題なく出力されます。
Python 3.6の場合
>>> #Python 3.6 >>> #括弧なしで単一変数を出力しようとすると… >>> print 27 SyntaxError: Missing parentheses in call to 'print' >>> print "Rahul" SyntaxError: Missing parentheses in call to 'print'
このようにPython 3.6では構文エラーが発生します。その理由は、Python 3.xでは print がステートメントではなく関数(print())に変更されたためです。つまり、print は print() となり、必ず括弧が必要になりました。
>>> print(27)
27
>>> print("Rahul")
Rahul
複数変数の出力
Python 2.x(例:Python 2.7)の場合
>>> #Python 2.7
>>> #複数変数の出力
>>> print 27, 54, 81
27 54 81
>>> #括弧の中に複数の変数を入れて出力
>>> print (27, 54, 81)
(27, 54, 81)
>>> #括弧 () を付けると、これはタプルとして扱われ、
>>> #3つの変数からなるタプルが出力される
>>> print ("Rahul", "Raj", "Rajesh")
('Rahul', 'Raj', 'Rajesh')
>>>
上記の出力結果から分かるように、Python 2.xでは括弧 () の中に複数の変数を渡すと、それらは複数の要素を持つタプルとして解釈されてしまいます。意図しない出力になるため注意が必要です。
Python 3.x(例:Python 3.6)の場合
#Python 3.6
#複数変数の出力
>>> print(27, 54, 81)
27 54 81
>>> print ("Rahul", "Raj", "Rajesh")
Rahul Raj Rajesh
一方、Python 3.xでは print() 関数にカンマ区切りで複数の引数を渡すことで、スペース区切りの文字列として正しく出力されます。
まとめ:Python 2.xと3.xのprintの違い
- Python 2.x:
printはステートメントなので括弧なしで使えます。ただし括弧を付けると、中身が複数ある場合はタプルとして扱われる点に注意しましょう。 - Python 3.x:
printは関数(print())のため、括弧が必須です。カンマ区切りで複数の変数を渡せば、スペース区切りで整形して出力されます。
今後Python 3.xを使用する場合は、常に print() を関数形式で呼び出す習慣をつけておくと、バージョン間の混乱を避けることができます。
-
Pythonで例外メッセージをキャプチャして出力する方法
Pythonでは、発生した例外のメッセージをさまざまな方法でキャプチャし、出力することができます。以下に2つのコード例を示します。最初の例では、例外オブジェクトが持つ message 属性を使用しています。例1:message属性を使う方法try: a = 7/0 print float(a) except BaseException as e: print e.message出力integer division or modulo by zeroこのコードでは0による除算が行われたため ZeroDivisionError が発生し、そのメッセージ「integer di
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10