Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonが「クール」と呼ばれる理由とは?知っておきたい便利機能まとめ

Pythonには、他のプログラミング言語にはないシンプルさと柔軟性があり、多くの開発者から愛されています。この記事では、Pythonを特別な存在にしている魅力的な機能を、実際のコード例とともにわかりやすく解説します。

The Zen of Python(Pythonの禅)

まずは、Pythonの設計思想を体現する有名な「The Zen of Python」をご覧ください。インタラクティブシェルで次のコマンドを実行すると表示されます。

>>> import this

出力結果

The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
The flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

「美しい方が醜いより良い」「可読性は重要である」「明示的な方が暗黙的より良い」など、Pythonの哲学が19の格言としてまとめられています。これらの理念こそが、Pythonのコードが読みやすく保守しやすい理由です。

たった1行で2つの変数を入れ替える

多くの言語では一時変数が必要になる値の交換(スワップ)も、Pythonならタプルアンパッキングを使って1行で実現できます。

コード例

a = 201
b = 786
print("入れ替え前: a =" + str(a) + " b = " + str(b))
a, b = b, a
print("入れ替え後: a =" + str(a) + " b = " + str(b))

出力結果

入れ替え前: a =201 b = 786
入れ替え後: a =786 b = 201

enumerate()でインデックス付きループを簡単に

enumerate() 関数を使うと、リストなどの要素を走査しながら、同時にインデックス番号も取得できます。リストの長さを事前に知る必要がないのがポイントです。

コード例

mylist = ['t','u','t','o','r','i','a','l']
for i, value in enumerate(mylist):
    print(i, ': ', value)

出力結果

0 : t
1 : u
2 : t
3 : o
4 : r
5 : i
6 : a
7 : l

zip()で複数のリストを同時に走査する

zip() メソッドを使えば、複数のリスト(イテラブル)を並行してループ処理できます。対応する要素同士をペアにして取り出せるため、非常に便利です。

コード例

mylist1 = ['t','u','t','o','r','i','a','l']
mylist2 = ['p','o','i','n','t']
for i, j in zip(mylist1, mylist2):
    print(i, ':', j)

出力結果

t : p
u : o
t : i
o : n
r : t

なお、zip() は最も短いリストの長さに合わせて処理が終了する点に注意してください。

reversed()でリストを逆順にする

組み込み関数 reversed() を使えば、面倒なループ処理を書かずとも、リストを直接逆順にできます。

コード例

list_inp = ['t','u','t','o','r','i','a','l']
print(list(reversed(list_inp)))

出力結果

['l', 'a', 'i', 'r', 'o', 't', 'u', 't']

対話モードで使える「_」(アンダースコア)演算子

Pythonの対話型シェルでは、「_」を使って直前に実行した操作の結果を参照・表示できます。電卓代わりに使う際などに非常に重宝します。

>>> 12 + 12
24
>>> _
24
>>> print(_)
24

動的型付けによる柔軟性

ご存じのとおり、Pythonでは変数のデータ型を宣言する必要がありません。同じプログラム内でも、変数のデータ型を何度でも変更できる柔軟性があります。これにより、少ないコード量で素早く開発を進めることが可能になります。

まとめ

この記事では、Pythonをクールで魅力的な言語にしているさまざまな機能を紹介しました。1行での変数スワップ、enumerate()zip() を活用したスマートなループ処理、reversed() による簡潔な逆順化、対話モードの「_」演算子など、これらの機能を使いこなすことで、より読みやすく効率的なPythonコードを書けるようになります。ぜひ日々の開発で活用してみてください。

  1. PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説

    CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ

  2. Pythonの「%」演算子とは?文字列フォーマットの基本と使い方を解説

    Pythonの「%」演算子の役割 Pythonにおける「%(パーセント)」は、文字列フォーマット演算子(補間演算子)として機能します。「format % values」という形式で記述すると、フォーマット文字列内の変換指定子が、values側の要素によって置き換えられます。この仕組みは、C言語のsprintf()関数とよく似ています。 基本的な使い方:文字列の埋め込み 最もシンプルな例は、文字列の中に変数の値を埋め込むケースです。 >>> lang = Python >>> print %s is awesome! % lang Python is awe