Python3.x は Python の革命的なアップグレードであり、以前の多くの機能が廃止され、新しい機能が導入されています。 1.x および 2.x の古いコードと完全な互換性はありません。
Python2.x には下位互換性があり、最新バージョンは Python 2.7 です。その中で、Python が 3.X にスムーズに移行できるようにするためにバージョン 2.6 と 2.7 がリリースされ、3.X の機能もいくつか追加されました。
現在、多くのライブラリは 3.x をサポートしておらず (例: Django、wxPython)、ほとんどのアプリケーションは依然として 2.x に基づいています。初心者はバージョン 2.7 を使用することをお勧めします。
Python 3.X と 2.X の主な違いは次のとおりです
1.パフォーマンス
Py3.0 は、pystone ベンチマークの実行が Py2.5 より 30% 遅くなります。 Guido は、Py3.0 には最適化の余地が大きく、文字列と整数の演算を実行できると信じています
良好な最適化結果を達成するために。
Py3.1 のパフォーマンスは Py2.5 よりも 15% 遅く、まだ改善の余地がたくさんあります。
2. エンコーディング
Py3.X ソース コード ファイルはデフォルトで utf-8 エンコーディングを使用するため、次のコードが合法になります:
>>> 中国 = 「中国」
>>>印刷(中国)
中国
3. 文法
1) を削除し、すべて !=
に置き換えます。
2) `` を削除し、代わりに repr() を使用します
3) as および with as キーワード、True、False、None を追加します
4) 整数の除算は浮動小数点数を返します。整数の結果を取得するには、//
を使用してください。
5) 非ローカルステートメントを追加します。ペリフェラル (非グローバル) 変数は、noclocal x
を使用して直接割り当てることができます
6) print ステートメントを削除し、print() 関数を追加して同じ機能を実現します。同じことが exec ステートメントにも当てはまり、 exec() 関数に変更されました
例:
2.X: 「答えは」を出力、2*2
3.X: print("答えは", 2*2)
2.X: x を印刷、
3.X: print(x, end=" ") # スペースを使用して行を置換します
3.X: print()
2.X: print >>sys.stderr、「致命的エラー」
3.X: print("致命的なエラー", file=sys.stderr)
3.X: print((x, y)) # print(x, y) とは異なります!
7) x
2.X:guess = int(raw_input('整数を入力してください : ')) # キーボード入力の読み方
3.X:guess = int(input('整数を入力してください: '))
9) タプルパラメータのアンパックを削除します。 def(a, (b, c)):pass
のような関数を定義することはできません
10) 新しい 8 進ワード変数、oct() 関数がそれに応じて変更されました。
2.Xの方法は以下の通りです:
>>>0666
438
>>> オクト(438)
「0666」
3.X は次のようになります:
>>>0666
SyntaxError: 無効なトークン (
>>>0o666
438
>>> オクト(438)
「0o666」
11) バイナリリテラルと bin() 関数を追加しました
>>> ビン(438)
「0b110110110」
>>> _438 = '0b110110110'
>>> _438
「0b110110110」
12) 拡張された反復可能なアンパック。 Py3で。
オブジェクトとシーケンスは反復可能です。
13) 新しい super() は super() にパラメーターを渡すことができなくなりました。
>>> クラス C(オブジェクト):
def __init__(self, a):
print('C', a)
>>> クラス D(C):
def __init(self, a):
super().__init__(a) # パラメーターなしで super() を呼び出します
>>>D(8)
C8
<__main__.d>
14) 新しいメタクラス構文:
クラス Foo(*bases, **kwds):
パス
15) クラスデコレータをサポートします。使用法は関数デコレータと同じです:
>>> def foo(cls_a):
def print_func(self):
print('Hello, world!')
cls_a.print = print_func
cls_a を返す
>>> @foo
クラスC(オブジェクト):
パス
>>> C().print()
こんにちは、世界!
クラスデコレータを使用すると、ジャコウネコを王子様に変えるトリックを実行できます。詳細については、PEP 3129 を参照してください
4. 文字列とバイト文字列
1) 現在、文字列のタイプは str の 1 つだけですが、これは Unicode の 2.x バージョンとほぼ同じです。
5.データ型
1) Py3.X では long 型が削除され、整数型は int の 1 つだけになりましたが、2 と同様に動作します。
2) バージョン 2.X のオクテット文字列に対応する新しいバイト型が追加されました。バイト リテラルの定義方法は次のとおりです。
>>> b = b'中国'
>>> タイプ(b)
str オブジェクトと bytes オブジェクトは、.encode() (str -> bytes) または .decode() (bytes -> str) メソッドを使用して相互に変換できます。
>>> s = b.decode()
>>>
「中国」
>>> b1 = s.encode()
>>>
「中国」
3) dict の .keys()、.items、および .values() メソッドは反復子を返しますが、以前の iterkeys() およびその他の関数は廃止されました。こちらも同時に削除
dict.has_key() を in
に置き換えます
6.オブジェクト指向
1) 抽象基本クラス (抽象基本クラス、ABC) を導入します。
2) コンテナクラスとイテレータクラスが ABC 化されているため、cellections モジュールには Py2.5 よりも多くの型があります。
>>> コレクションをインポートします
>>> print('n'.join(dir(collections)))
呼び出し可能
コンテナ
ハッシュ可能
アイテムビュー
反復可能
イテレーター
キービュー
マッピング
マッピングビュー
可変マッピング
可変シーケンス
可変セット
名前付きタプル
シーケンス
セット
サイズあり
値ビュー
__全員__
__組み込み__
__doc__
__ファイル__
__名前__
_abcoll
_アイテムゲッター
_シス
デフォルト辞書
デク
さらに、数値型も ABC サイズになります。これら 2 つの点については、PEP 3119 および PEP 3141 を参照してください。
3) イテレータの next() メソッドの名前が __next__() に変更され、イテレータの __next__() メソッドを呼び出すための組み込み関数 next() が追加されました
4) 抽象メソッド (プロパティ) の記述をより便利にするために、2 つのデコレーター @abstractmethod と @abstractproperty が追加されました。
7.異常
1) すべての例外は BaseException から継承され、StardardError は削除されます
2) 例外クラスのシーケンス動作と .message 属性を削除しました
3) raise Exception、args 構文の代わりに raise Exception(args) を使用します
4) 例外をキャッチするための構文の変更。Py2.5 では、例外インスタンスを識別するために as キーワードが導入されています:
>>> 試してください:
… NotImplementedError('Error') を発生させます
...NotImplementedError を除く、エラー:
... ... エラーメッセージを印刷します
...
エラー
Py3.0 の場合:
>>> 試してください:
NotImplementedError('エラー') を発生させる
エラーとして NotImplementedError を除く: #これに注意してください
print(str(error))
エラー
5) __context__ がバージョン 3.0a1 に実装されていないため、例外チェーンが発生します
8.モジュールの変更
1) cPickle モジュールは削除され、pickle モジュールで置き換えることができます。最終的には、透過的で効率的なモジュールが完成するでしょう。
2) imageop モジュールを削除しました
3) audiodev、Bastion、bsddb185、例外、linuxaudiodev、md5、MimeWriter、mimify、popen2、
を削除しました。
rexec、sets、sha、stringold、strop、sunaudiodev、timing および xmllib モジュール
4) bsddb モジュールを削除しました (個別にリリースされ、http://www.jcea.es/programacion/pybsddb.htm から入手可能)
5) 新しいモジュールを削除しました
6) os.tmpnam() および os.tmpfile() 関数は tmpfile モジュールに移動されました
7) トークン化モジュールはバイトを扱うようになりました。メインのエントリ ポイントは、generate_tokens ではなく、tokenize.tokenize() になりました
9.その他
1) xrange() の名前が range() に変更されました。 range() を使用してリストを取得したい場合は、明示的に呼び出す必要があります:
>>> リスト(範囲(10))
[0、1、2、3、4、5、6、7、8、9]
2) bytes オブジェクトはハッシュできず、b. lower()、b.strip()、および b.split() メソッドをサポートしませんが、後者の 2 つは b.strip(b’
を使用できます)
ntr f’) と b.split(b’ ‘) を使用して同じ目的を達成します
3) zip()、map()、filter() はすべてイテレータを返します。そして apply()、callable()、coerce()、execfile()、reduce()、そして reload
() 関数は削除されました
hasattr() を使用して callable() を置き換えることができるようになりました。 hasattr() の構文は次のとおりです: hasattr(string, '__name__')
4) string.letters および関連する . lowercase および .uppercase は削除されます。代わりに string.ascii_letters などを使用してください
5) x
6) __getslice__ シリーズのメンバーは放棄されます。 a[i:j] は、コンテキストに応じて a.__getitem__(slice(I, j)) または __setitem__ および
に変換されます。
__delitem__ が
を呼び出します
7) ファイル クラスは Py2.5 で非推奨になりました:
>>>
Py3.X の場合:
>>>
トレースバック (最後の呼び出し):
ファイル「
ファイル
NameError: 名前「ファイル」が定義されていません
以上がPython3.xとPython2.xの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonArraysSupportVariousoperations:1)SlicingExtractsSubsets、2)Appending/ExtendingAdddesements、3)inSertingSelementSatspecificpositions、4)remvingingDeletesements、5)sorting/verversingsorder、and6)listenionsionsionsionsionscreatenewlistsebasedexistin

numpyarraysAressertialentionsionceivationsefirication-efficientnumericalcomputations andDatamanipulation.theyarecrucialindatascience、mashineelearning、物理学、エンジニアリング、および促進可能性への適用性、scaledatiencyを効率的に、forexample、infinancialanalyyy

UseanArray.ArrayOverAlistinPythonは、Performance-criticalCode.1)homogeneousdata:araysavememorywithpedelements.2)Performance-criticalcode:Araysofterbetterbetterfornumerumerumericaleperations.3)interf

いいえ、notallistoperationSaresuptedbyarrays、andviceversa.1)arraysdonotsupportdynamicoperationslikeappendorintorintorinsertizizing、whosimpactsporformance.2)リスト

toaccesselementsinapythonlist、useindexing、negativeindexing、slicing、oriteration.1)indexingstartsat0.2)negativeindexingAcsesess.3)slicingextractStions.4)reterationSuseSuseSuseSuseSeSeS forLoopseCheckLentlentlentlentlentlentlenttodExeror。

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









