Pythonは多くの機能を備えた優れたプログラミング言語です。ここでは、あまり知られていないけれど非常に役立つ機能を紹介します。
1. オブジェクトのアドレスを取得する
Pythonのオブジェクトには、メモリ上のアドレスが割り当てられています。オブジェクトのアドレスを知りたい場合は、id()関数を使うことができます。
a = 10
print(id(a)) # 140734561452720
2. 関数の引数にデフォルト値を設定する
関数を定義する際、引数にデフォルト値を設定することができます。引数にデフォルト値が設定されている場合、引数が省略された場合にそのデフォルト値が使用されます。
def greet(name, greeting="Hello"):
print(greeting, name)
greet("Alice") # Hello Alice
greet("Bob", "Hi") # Hi Bob
3. 複数の値を返す
Pythonの関数は、複数の値を返すことができます。これを実現するためには、return文に複数の値をカンマで区切って記述します。
def get_circle_info(radius):
circumference = 2 * 3.14 * radius
area = 3.14 * radius ** 2
return circumference, area
circ, area = get_circle_info(2)
print("Circumference:", circ) # Circumference: 12.56
print("Area:", area) # Area: 12.56
4. ジェネレータを使ってメモリを節約する
ジェネレータは、メモリを節約しながらシーケンスを生成するための機能です。ジェネレータは、イテレータを生成するための関数であり、yield文を使って値を返します。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i in range(10):
print(next(fib)) # 0 1 1 2 3 5 8 13 21 34
5. 関数の引数にキーワードを使う
Pythonでは、引数にキーワードを使って、関数の呼び出し時にわかりやすく指定することができます。キーワード引数を使うと、引数の順序を気にする必要が なくなり、引数の意味を明確にすることができます。
def greet(name, greeting="Hello", punctuation="."):
print(greeting, name, punctuation)
greet("Alice") # Hello Alice .
greet("Bob", greeting="Hi") # Hi Bob .
greet("Charlie", punctuation="!") # Hello Charlie !
6. ディクショナリの要素を扱う際にget()を使う
ディクショナリにあるキーの値を取得する際に、dict[key]を使うことができます。ただし、キーが存在しない場合にはエラーが発生してしまいます。そこで、キーが存在しない場合にはget()メソッドを使うことで、エラーを回避することができます。
fruits = {"apple": 100, "banana": 200, "orange": 150}
print(fruits.get("apple", 0)) # 100
print(fruits.get("melon", 0)) # 0
7. with文を使ってファイルを扱う
ファイルを開いたら、最後に必ずclose()を呼び出す必要があります。しかし、with文を使うことで、自動的にclose()が呼び出されるようにすることができます。
with open("file.txt", "r") as f:
print(f.read())
8. __main__を使ってモジュールをテストする
Pythonでは、スクリプトファイルとして実行される場合と、モジュールとして他のファイルからimportされる場合で動作を変えたい場合があります。このような場合に、if __name__ == "__main__":を使うことで、スクリプトファイルとして実行される場合だけ実行するコードを記述することができます。
def add(x, y):
return x + y
if __name__ == "__main__":
print(add(2, 3)) # 5
これらの機能を使うことで、より効率的で使いやすいPythonコードを書くことができます。是非活用してみてください。