Python REPLを使った9つのトリック
もちろん 円周率 で Raspberry Pi Pythonは世界で最も人気のあるプログラミング言語の1つであり、いじり好きや作り手の間で特に人気があります。この記事では、Python REPLを使った9つのトリックとヒントを紹介します。 パイソン またはREPLを使用する。
この投稿は、Pythonプログラマーの初心者と中級者の両方を対象としています。
REPLとは?
REPL(Read-Evaluate-Print Loop)はPythonインタプリタと直接対話する方法です。REPLと呼ばれるのは、入力を読み込み、評価し、印刷し、ループして最初に戻り、別のコマンドを入力できるようにするためです。
Python Shellを通じて、コードを入力し、即座に出力を受け取るインターフェースを提供する。これにより、コードのチェック、リアルタイムでのデバッグ、インタラクティブなテストが可能になります。通常、この3つの矢印を見れば、Python REPLを扱っていることがわかります:
>>>
ここで入力を行う。
特筆すべきは
Python Shell" と "Python Interpreter" という用語は同じ意味で使われることがありますが、両者には微妙な違いがあります。Python InterpreterはPythonコードを実行する実際のプログラムやソフトウェアを指します。しかしPython Shellは、インタプリタとリアルタイムでやりとりするためのインターフェースです。
標準的なPythonシェルやPython3シェルの他に、多くの人がIPythonやbpythonを使用しています。IPythonやbpythonは、シンタックスハイライトなどのユニークな機能を提供するコマンドライン・プログラムです。
IPythonとbpythonはデフォルトでよりきれいであることがわかるだろう(以下では、標準のREPLをよりきれいにする方法も紹介する)。
また、IPythonのREPLは、入力行に「In [1]」、「In [2]」などと番号を振っていることも注目に値する。
IPythonとは対照的に、bpythonは >>>レイアウトを維持します。
REPLは、コマンド履歴、タブ補完、以前に定義した変数や関数へのアクセス機能などの機能も提供でき、インタラクティブなPythonプログラミングや探索に便利なツールです。
このため、REPLはRaspberry Piをいじくり回したいと考えている人にとって、非常に貴重なツールとなっている。
さて、REPLがどういうものかを理解したところで、REPLの使い方のコツを探ってみよう:
トリック1:ドキュメントを探す
Pythonオブジェクトやモジュールのドキュメントは、REPLから直接 help()
関数である。
例えば help(str)
を実行すると、その文字列オブジェクトのドキュメントが表示されます。また、特定のメソッド名や関数名を追加して、次のような詳細情報を得ることもできます。
help(str.upper)
これを入力すると、次のように表示される:
トリック2:タブ補完を利用する
使っているプログラムにもよりますが、Python REPL はタブ補完をサポートしています。部分的な名前やオブジェクトを入力した後に Tab キーを押すと、利用可能なオプションが表示されます。
例えば int.
をクリックし、Tabキーを押すと、整数で実行するメソッドのリストが表示される。
トリック 3:複数行のステートメントを作成する
さらにREPLでは、行の継続を使って複数行の文を書くことができる。
読みやすくするためにステートメントを複数行に分けたい場合は、バックスラッシュ文字 (\
) を各行の末尾に付けると、次の行に続く(以下の例1を参照)。
ステートメントを括弧や括弧で囲んで次の行に続けることもできる(下の例2を参照)。
# example 1: using backslash for a multi-line statement
name = 'Fatima'
age = 46
country = 'Germany'
message = 'Hi, ' + \
name + \
'! You are ' + \
str(age) + \
' years old and from ' + \
country + '.'
print(message)
# the message will be 'Hi, Fatima! You are 46 years old and from Germany.'
# example 2: using parentheses for a multi-line statement
total = (1 + 2 + 3 +
4 + 5 + 6 +
7 + 8 + 9)
print("The total is:", total)
# the message will be 'The total is: 45'
トリック4:以前に入力したコードにアクセスする
REPLでは、ターミナルで入力するのと同じように、上下の矢印キーを使って以前に入力したコードにアクセスできる。
上矢印キーを押すと、コマンド履歴が循環し、以前のコマンドを素早く呼び出して変更することができます。ぜひお試しください!
トリック5:アンダースコア変数を使う
アンダースコア変数 (_)
はREPLで最後に評価された式の結果を保持する。
式全体を再評価することなく、その後の演算で結果を再利用する必要がある場合に便利です。つまり、素早く計算したいときや、超高速でデータを取り出したいときには、アンダースコアを前の結果の標準変数として入力すればいいのです。
トリック6:システムコマンドとマジックコマンドの実行(IPython)
IPython("インタラクティブPython "の略)では、コード行の先頭に感嘆符(!
).
IPythonの マジックコマンド, like %cd to change directory, you’re able to use the Python REPL for seamless integration!
例えば、こうだ、 !ls
Unixベースのシステムまたは !dir
Windowsの場合、カレント・ディレクトリの内容がリストアップされる。
トリック7:インポートを使ってみる
Python REPLでは、個別のPythonファイルを作成することなくインポートを試すことができます。この機能により、モジュールをインポートし、その関数を試し、その内容を対話的に調べることができるので、さまざまなモジュールやその機能を素早く実験したり調べたりするのに便利です。
Python REPLを使ってインポートを試す方法を紹介します:
>>> import math
>>> math.sqrt(16)
4.0
この例では sqrt()
関数から math
モジュールを使って16の平方根を計算する。
Python REPLを使用してインポートの実験を行うことで、個別のPythonファイルを作成することなく、さまざまなモジュールの機能をすばやくテストして調べることができます。
このインタラクティブで反復的なプロセスにより、さまざまなモジュールがどのように機能するかをよりよく理解し、さまざまな機能を試し、その結果をリアルタイムで検証することができる。
トリック8:REPLプロンプトをカスタマイズする
をプライマリー・プロンプトに、...をセカンダリー・プロンプトにするのはお嫌いですか?
Python REPLで表示されるプロンプトをカスタマイズできるからだ。
を変更することで sys.ps1
そして sys.ps2
変数を使用すると、プライマリとセカンダリのプロンプトをそれぞれ変更できる。
ただ走るだけだ:
import sys
sys.ps1 = 'primary'
sys.ps2 = 'secondary'
これで、プライマリー・プロンプトは「primary」、セカンダリー・プロンプトは「secondary」となります。好きなように変えてみてください!例えば、記号や絵文字で試してみてください!
この方法は現在のREPLセッションにのみ影響します。もう少し永続的なものにしたいのであれば、".pyrc "ファイルを見つけて、そこにあるプロンプトを編集する必要があります。
上のREPLの退屈で醜いプロンプターを覚えているだろうか?色を変えてみよう。
Linuxを使っているなら、ターミナルに次のように入力する:
tee ~/.pyrc <<E0F
import sys
sys.ps1='\x01\x1b[1;34;40m\x02>>>\x01\x1b[0m\x02'
sys.ps2='\x01\x1b[1;35;40m\x02...\x01\x1b[0m\x02'
E0F
これにより、プライマリー・プロンプトの色はグレー地に青、セカンダリー・プロンプトの色はグレー地に紫に変わります。自由に ANSIカラーシーケンス をクリックして、満足のいくプロンプターカラーを見つけてください。
それができたら、必ずこれをエクスポートしてください:
export PYTHONSTARTUP=~/.pyrc
これでプロンプトは次のようになるはずだ:
繰り返しますが、これは一時的なものです。恒久的に変更したい場合は、設定ファイルを変更する必要がある。しかし、これで楽しみを味わうことができる!
トリック9:モジュールとオブジェクトの探索
文書検索やタブ補完の活用を補完したいのであれば、これはパッケージを完成させるトリックだ!
モジュール(またはオブジェクト)の中身を調べるには dir()
関数である。
モジュールやオブジェクトを引数として渡すと、そのモジュールやオブジェクト内の名前のリストを返し、利用可能な属性やメソッド、関数を調べることができる。
例えば、こうだ:
import math
print (dir(math))
これは、数学モジュール内で利用可能な属性、メソッド、関数のリストを表示します。
このようなトリックは、ワークフローをシームレスにするのに役立つ。
この9つのコツを押さえれば、REPLをより効果的に使えるようになる。
これにより、コードのデバッグやテストがよりスムーズに行えるようになる。
あなたのREPLトリックを以下のコメントで教えてください!