banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

Pythonファイルの詳細:.py、.ipynb、.pyi、.pyc、.pyd!

.py#

最も一般的な Python コードファイルの拡張子で、公式には Python ソースコードファイルと呼ばれています。

詳しい説明は不要ですね〜

.ipynb#

これは比較的一般的ですね。.ipynb は Jupyter Notebook ファイルの拡張子で、「IPython Notebook」を表しています。

image
データ分析、機械学習、ディープラーニングを学んだ学生たちは、きっと馴染みがあります!

.pyi#

.pyi ファイルは、Python の型ヒントファイルであり、コードの静的な型情報を提供するために使用されます。

一般的に、開発者が型のチェックや静的解析を行うのに使用されます。

サンプルコード:

# hellp.pyi

def hello(name: str) -> None:
    print(f"hello {name}")

.pyi ファイルの命名規則は通常、対応する.py ファイルと同じです。これにより、自動的に関連付けられるようになります。

.pyc#

.pyc は Python バイトコードファイルの拡張子であり、コンパイルされた Python ソースコードの中間表現を保存するために使用されます。バイナリファイルのため、コードを正常に読むことはできません。

image
.pyc ファイルには、コンパイルされたバイトコードが含まれており、Python インタプリタがソースコードを再度コンパイルする必要がないため、より高速にロードおよび実行できます。

.pyd#

.pyd は Python 拡張モジュールの拡張子であり、C または C++ で書かれたバイナリ Python 拡張モジュールファイルを表します。

.pyd ファイルは、コンパイルされたバイナリファイルであり、コンパイルされた拡張モジュールのコードと Python インタプリタとの間でのやり取りに必要な情報が含まれています。

さらに、.pyd ファイルは Python で import 文を使用してインポートおよび使用され、通常の Python モジュールと同様に扱われます。C または C++ の実行速度は通常、純粋な Python コードよりも速いため、拡張モジュールを使用して Python コードのパフォーマンスを最適化することができます、特に計算集約型のタスクにおいて。

.pyw#

.pyw は Python ウィンドウ化スクリプトファイルの拡張子です。

これは特殊なタイプの Python スクリプトファイルを表し、コマンドラインインターフェース(つまり、コンソールウィンドウ)を持たないウィンドウ化アプリケーションを作成するために使用されます。

一般的に、Python スクリプトを実行すると、スクリプトの出力が表示され、ユーザーの入力を受け付けるコマンドラインウィンドウが開きます。ただし、一部のアプリケーション(例:グラフィカルユーザーインターフェース(GUI)アプリケーション)では、コマンドラインインターフェースは必要なく、代わりにウィンドウ内で対話的なインターフェースを表示したい場合があります。その場合、.pyw ファイルを使用することができます。
サンプルコード:

# click_button.pyw

import tkinter as tk

def button_click():
    label.config(text="Button Clicked!")

window = tk.Tk()
button = tk.Button(window, text="Click Me", command=button_click)
button.pack()

label = tk.Label(window, text="Hello, World!")
label.pack()

window.mainloop()

.pyx#

.pyx は Cython のソースコードファイルの拡張子です。

Cython は、Python コードで C 言語の構文や機能を使用してパフォーマンスを向上させ、C 言語のライブラリとの相互作用を可能にする、コンパイル型の静的型付け拡張言語です。

Cython と通常の Python の実行速度を比較してみました:

fb.pyx(cythonize コマンドを使用してコンパイルする必要があります)

import fb
import timeit

def fibonacci(n):
    if n <= 0:
        raise ValueError("n must be a positive integer")

    if n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(3, n + 1):
            a, b = b, a + b
        return b

# Pure Python version
python_time = timeit.timeit("fibonacci(300)", setup="from __main__ import fibonacci", number=1000000)

# Cython version
cython_time = timeit.timeit("fb.fibonacci(300)", setup="import fb", number=1000000)

print("Pure Python version execution time:", python_time)
print("Cython version execution time:", cython_time)

run.py

import fb
import timeit

def fibonacci(n):
    if n <= 0:
        raise ValueError("n must be a positive integer")

    if n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(3, n + 1):
            a, b = b, a + b
        return b

# Pure Python version
python_time = timeit.timeit("fibonacci(300)", setup="from __main__ import fibonacci", number=1000000)

# Cython version
cython_time = timeit.timeit("fb.fibonacci(300)", setup="import fb", number=1000000)

print("Pure Python version execution time:", python_time)
print("Cython version execution time:", cython_time)

結果は次のとおりです:

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。