機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【Python】【初心者】覚えておくと便利な書き方(三項演算子、関数のデフォルト値、ラムダ関数)

pythonで覚えておくと便利な書き方(三項演算子、関数のデフォルト値、ラムダ)

■はじめに

今回も初歩的な内容になります。

pythonでは短いif文や関数は、三項演算子やラムダを用いて簡単に記述できます。

そこで今回上記の書き方を簡単に紹介します。

 なおprint文の書き方については以下をご覧ください。

stjun.hatenablog.com

 

■買って良かったもの紹介

最近見つけて読んだ本です。

非常に分かりやすく、何より読んでいてわくわくする本でした。

もしpythonの書き方は分かったけど何を作ったらよいか分からない人はぜひ読んでみて下さい。

 

ベタですが水はAmazonで定期便で買ってます。

自分で運ばなくてよく、非常時にも役に立つので2箱以上ストックしています。

pandasやBokehなどのモジュールの使い方が書かれている本です。

公式リファレンス等もありますし、ネットで探せばいくらでもモジュールの使い方・書き方は見つかりますが、一冊くらいこのような本を手元に持っておくと便利です。

 

pythonを初めて触ろうとした時に読んだ本を紹介します。

 

 この本は、初心者に最適だと思います。確か亀を動かすゲームのようなコードが載っていたと思います。pythonをこれから始めようと思っている人は読んでみて下さい。

また下の入門python3も良い本だと思いますが、分厚いので中々根気が必要です。個人的には最小限必要なことが書いてある薄い本を読み、必要になってからちょっとずつ知識を増やしていくのが良いと思います。

また何度も紹介しますが、以下のニューラルネットワーク自作入門は非常に良い本です、pythonの書き方から記載されているのでいきなり読んでも大丈夫だと思います。

 とりあえず基本的なコードの書き方さえ分かってしまえば、後はネットで知りたい情報にアクセスする方が早いと思います。

 

■説明

 1. 三項演算子について

まずは一般的なif文を紹介します。

xの値を0~1の間でランダムに決定し、xが0.5より大きいなら「Hello」、xが0.5以下なら「Good morning」と表示するコードは以下になります。

#通常のif文
import numpy as np
x=np.random.rand()
print('x='+str(x))
if x>0.5:
    print('hello')
else:
    print('Good morning')

上記を実行すると以下の結果が得られます。今、xは0.5以上なのでhelloと表示されます。

f:id:stjun:20191215160138p:plain

上記と同じことを三項演算子を用いて記述すると以下になります。

#三行演算子のif文
import numpy as np
x=np.random.rand()
print('x='+str(x))
print('hello') if x>0.5 else print('Good morning')

上記を実行すると今回はxが0.5以下なのでGoor morningと表示されています。

f:id:stjun:20191215160404p:plain

 

 2. 関数のデフォルト値

次に関数にデフォルト値を設定する方法を紹介します。

任意の数字を2で割る簡単なコードを関数で記述すると以下になります。

#通常の関数
def cal(n):
    print(n/2)

ここで例えば任意の数字を2とすると以下のように計算できます。

cal(2)

f:id:stjun:20191215160746p:plain

一方、cal()のカッコ内に数字を入れ忘れると当然エラーになります。

cal()

f:id:stjun:20191215160842p:plain

このように()内に数字などを入れ忘れても大丈夫なように、def cal()のカッコ内に初期値を設定することができます。

#関数にデフォルト値を与える
def cal(n=2):
    print(n/2)

この場合、以下のようにcal()のカッコ内に数字を入れなくてもデフォルト値である2で計算してくれます。

f:id:stjun:20191215161102p:plain

もちろん自分で数字を代入すれば、代入した数字で計算してくれます。

f:id:stjun:20191215161153p:plain

 

 3. ラムダ

なお上記関数をラムダを用いて一行で以下のように書くこともできます。

#ラムダを使った関数
x=lambda n:print(n/2)
x(2)

■おわりに

いかがだったでしょうか。

自分で書く場合は無理に使う必要はありませんが、他人が書いたコードを読むときに役に立つので覚えておいて損はないと思います。