21.インタラクティブシェルで_(アンダースコア演算子)を使用する
前の式の結果は、アンダースコア演算子を使用して取得できます。たとえば、IPythonでは、次のように実行できます。
In [1]: 3 * 3
Out[1]: 9In [2]: _ + 3
Out[2]: 12
これはPythonシェルでも使用できます。さらに、IPythonシェルでは、式In [n]からOut [n]の値を取得することもできます。たとえば、上記の例では、Out [1]は数値9を返します。
22.Webサーバーをすばやく作成する
Webサービスをすばやく開始して、現在のディレクトリの内容を提供できます。
python3 -m http.server
同僚とファイルを共有したり、単純なHTML Webサイトをテストしたりする場合は、この方法を検討できます。
23.複数行の文字列
三重引用符を使用してコード内の複数行の文字列を囲むことはできますが、このアプローチは理想的ではありません。以下に示すように、三重引用符の間に配置されたものはすべて、コードの形式を含めて文字列になります。
複数行の文字列を連結できるだけでなく、コードをクリーンに保つことができる別の方法が好きです。唯一の欠点は、改行文字を明示的に指定する必要があることです。
s1 = """Multi line strings can be put
between triple quotes. It's not ideal
when formatting your code though"""
print (s1)
# Multi line strings can be put
# between triple quotes. It's not ideal
# when formatting your code though
s2 = ("You can also concatenate multiple\n" +
"strings this way, but you'll have to\n"
"explicitly put in the newlines")
print(s2)
# You can also concatenate multiple
# strings this way, but you'll have to
# explicitly put in the newlines
24.条件付き割り当ての三項演算子
このメソッドは、コードの可読性を確保しながら、コードをより簡潔にすることができます。
[on_true] if [expression] else [on_false]
示例如下:
x = "Success!" if (y == 2) else "Failed!"
25.要素の出現をカウントします
コレクションライブラリのCounterを使用して、リスト内のすべての一意の要素の出現回数を取得できます。Counterは辞書を返します。
from collections import Counter
mylist = [1, 1, 2, 3, 4, 5, 5, 5, 6, 6]
c = Counter(mylist)
print(c)
# Counter({1: 2, 2: 1, 3: 1, 4: 1, 5: 3, 6: 2})
# And it works on strings too:
print(Counter("aaaaabbbbbccccc"))
# Counter({'a': 5, 'b': 5, 'c': 5})
26.比較演算子へのリンク
Pythonで複数の比較演算子をリンクして、より読みやすく簡潔なコードを作成できます。
x = 10
# Instead of:
if x > 5 and x < 15:
print("Yes")
# yes
# You can also write:
if 5 < x < 15:
print("Yes")
# Yes
27.色を追加する
Coloramaを介して端末の表示色を設定できます。
from colorama import Fore, Back, Style
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
28.日付処理
標準の日付モジュールの補足として、python-dateutilモジュールは非常に強力な拡張機能を提供します。次のコマンドでインストールできます。
pip3 install python-dateutil
このライブラリを使用して、多くの魔法の操作を実行できます。ここに例を示します。ログファイル内の日付のファジー分析:
from dateutil.parser import parse
logline = 'INFO 2020-01-01T00:00:01 Happy new year, human.'
timestamp = parse(log_line, fuzzy=True)
print(timestamp)
# 2020-01-01 00:00:01
覚えておく必要があるのは、通常のPythonの日付と時刻の関数では解決できない問題が発生した場合、python-dateutilを検討することです。
29.整数除算
Python 2では、オペランドの1つが浮動小数点数でない限り、除算演算子(/)はデフォルトで整数除算になります。したがって、次のように書くことができます。
# Python 2
5 / 2 = 2
5 / 2.0 = 2.5
在 Python 3 中,除法运算符(/)默认为浮点除法,而整数除法的运算符为 //。因此,你需要这么写:
Python 3
5 / 2 = 2.5
5 // 2 = 2
この変更の背後にある動機については、PEP-0238(https://www.python.org/dev/peps/pep-0238/)を参照してください。
30.chardetによって設定された文字を検出します
chardetモジュールを使用して、ファイルの文字セットを検出できます。このモジュールは、大量のランダムテキストを分析するときに非常に役立ちます。インストール方法は次のとおりです。
pip install chardet
インストールが完了したら、次のようにコマンドラインツールchardetectを使用できます。
chardetect somefile.txt
somefile.txt: ascii with confidence 1.0