Articles

GeeksforGeeks

Posted on
  • 除算演算子
  • print関数
  • Unicode
  • xrange
  • エラー処理
  • _future_module

除算演算子

コードを移植したり、python 3.xのコードをpython 2.xで実行したりする場合、整数の除算の変更に気づかないと危険です。xのコードをpython 2.xで実行する場合、整数の割り算の変更が気づかれないと危険です(エラーが発生しないため)。 コードを移植する際に期待される結果を得るためには、浮動小数点数(7.0/5や7/5.0など)を使用することが好ましいです。

Python

print7/5
print-7

/5

div



プリント機能

これは最もよく知られている変更点です。最もよく知られている変更点です。 しかし、Python2ではprintキーワードの後にスペースを入れても、インタプリタはそれを式として評価するため、括弧が機能します。

Python

print'Hello, Geeks'
print('Hope You like these facts')



見ての通りです。 python 2.xで括弧を使用した場合は問題ありません。しかし、python 3.xで括弧を使用しない場合、SyntaxErrorが発生します。

Unicode:

Python 2では、暗黙のstr型はASCIIです。 しかし、Python 3.x では、暗黙の str 型は Unicode です。

Python

print(type('default string '))
print(type(b'string with b '))



Python 2.xはUnicodeにも対応しています

Python

print(type('default string '))
print(type(u'string with b '))



xrange:

Python2のxrange()です。Python 2.xでは、rangeはrange(3)のようにリストを返すのに対し、xrangeはxrangeオブジェクトを返します。 xrange(3)はJavaのイテレータに似た動作をするイテレータオブジェクトを返し、必要に応じて数値を生成します。
同じシーケンスを何度も反復する必要がある場合は、rangeが静的なリストを提供するので、range()の方が好ましいです。xrange()はシーケンスを毎回再構築します。 xrange()の利点は、タスクが大きな範囲を反復するときにメモリを節約できることです。
Python 3.xでは、range関数がPython 2.xでxrangeが行っていたことを行うようになったので、コードの移植性を保つために、代わりにrangeを使用することに固執したいかもしれません。 つまり、Python 3.xのrange関数は、Python 2.xのxrangeです。

Python

forx inxrange(1, 5):
print(x),
fordiv x inrange(1, 5):
print(x),



エラー処理です。

どちらのバージョンでも、エラー処理に小さな変更があります。 python 3.xでは’as’キーワードが必要です。

Python

try: となります。
trying_to_check_error
exceptNameError, err:

printerr, 'Error Caused'



Python

try:
trying_to_check_error
exceptNameError as err:
print(err, 'Error Caused')



__future__モジュールです。

これは基本的には2つのバージョンの違いではありませんが、ここで触れておくと便利なことがあります。 future__モジュールの考え方は、Python 3.xへの移行を助けることです。
もし私たちが2.xのコードでPython 3.xをサポートすることを計画しているのであれば、私たちのコードで_future_のインポートを使用することができます。
例えば、以下のPython 2.xのコードでは、__future__モジュールを使用してPython 3.xの整数分割の動作を使用しています。

Python

from__future__ importdivision
print7/5
print-7/

5



アウトプット :

1.4 -1.4 

Python2.xで括弧を使うもう一つの例です。xで__future__モジュールを使用する例です。

Python

from__future__ importprint_function
print('GeeksforGeeks')

div



出力します。

GeeksforGeeks 

__future__モジュールの詳細については、こちらを参照してください。

この記事はArpit Agarwalが寄稿しています。 GeeksforGeeksを気に入っていただき、貢献したいとお考えの方は、記事を書いて [email protected] に郵送することもできます。 あなたの記事がGeeksforGeeksのメインページに表示されるのを見て、他のGeeksを助けましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です