はじめに
コジマです。
Twitter見てたら一部でタピオカが流行ってたので自分もその波に乗っかることにしました。
しかし私はまだ三流エンジニアの身…。
うかうかとタピオカ摂取していていいものかと。
私がタピオカを摂取している間に周りのエンジニアは成長している。。
そこで私は思いついた。
Pythonでタピオカを作ればいいんだ!と。
といっても簡単な内容ですが。。
仕様
仕様は以下の通り
- 「タ」「ピ」「オ」「カ」からランダムに1文字取る
- 取った文字をつなげていく
- 「タピオカ」の文字列が現れたら終了
- 最後にできあがった文字列を表示する
学べること
Pythonでタピオカを作ることで学べることは以下の内容。
- リストからランダムに要素を取得
- 無限ループ
- 文字列の連結
- 文字列のスライス
- 文字列の長さを取得
- 複数条件のif文
実装だよ
実装は以下の通り
# モジュールのインポート # 1.に必要なrandomモジュールをインポート import random as rd # タピオカを初期化 tapioca_list = ['タ','ピ','オ','カ'] tapioca_str = "" # タピオカを作る # 2.無限ループ while True: #1.リストからランダムに要素を取得 #3.文字列の連結 tapioca_str += rd.choice(tapioca_list) # タピオカができたか確認する # 4.文字列のスライス # 5.文字列の長さを取得 # 6.複数条件のif文 if len(tapioca_str) > 4 and tapioca_str[-4:] == "タピオカ": print(tapioca_str) break
実行結果はこんな感じ
例1
オオカタオタオタタタカオカオカタピオピカカカピオタカタタピオカ
例2
タオオタカカタカタタピオオオカピカオカタカピタオカタタピタカピカピオカピカオピピカカピオピオタピオタタカオオオピタピカオピタオカタタピオピオオタオピカタカタオタカピピピピピタオピオピピタカタオカカカタピオカ
と、最後にタピオカができたタイミングで終了します。
解説するよ
1.リストからランダムに要素を取得
リストからランダムに要素を取得したい場合はrandomモジュールのchoice関数を使います。
この場合はrd.choice(tapioca_list)とすることによってtapioca_listから要素を一つ取り出します。
すなわち「タ」「ピ」「オ」「カ」からランダムで1文字取得できるようになります。
2.無限ループ
While True:とすることで無限ループを実装することができます。
しかし、このまま何もしないでいると終わらなくなってしまうので、
条件を指定してbreakしてあげます。
この場合は
- tapioca_strが4文字以上
- tapioca_strの末尾4文字が「タピオカ」
の条件を満たした時に無限ループを終了します。
3.文字列の連結
文字列の連結は+=を指定してあげれば良いです。
数値のインクリメントをする感覚で文字列が後ろにポコポコくっつきます。
ここでは、タピオカが完成するまで「タ」「ピ」「オ」「カ」のいずかれの文字をつけ足し続けてます。
4.文字列のスライス
Pythonでは文字列を部分的に取得したい時にスライスという記法が使えます。
変数[始まり:終わり]と言う書き方をします。
始まりを指定しない場合は始点から。
終わりを指定しない場合は終点まで。
と言う意味合いになります。
この場合のtapioca_str[-4:]はtapioca_strの-4文字目から終点までと言う意味になります。
すなわち末尾の4文字ということになります。
イメージ図を用意しました。(無駄に凝ってしまった)
今回の実装ではtapioca_str[-4:]としたので、赤枠内のタピオカを取得できます。
そのほかにも
- tapioca_str[1:4] #カピタ
- tapioca_str[:2] #タカ
- tapioca_str[-3:-1] #ピオ
こんな感じで各文字の隙間をナンバリングしてると思えばその間を見るだけでよくなります。
これ使えるようになると便利です。
5.文字列の長さを取得
len関数を使えば文字列の長さを取得することができます。
長さっていうのは何文字あるか?ってことです。
これを指定しておかないと先ほどのtapioca_strが4文字未満の時に-4文字目を取得しようとしても
できなくてエラーになっちゃうんでそれを回避するために使用しました。
6.複数条件のif文
Pythonで複数条件指定するときはandもしくはorを使用します。
今回は「かつ」の条件にしたかったのでandを使用しました。
「または」の条件を作りたいときはorを使用します。
さいごに
Pythonでタピオカを作りたくなって思い立ってやってしまった。
書きながら「俺は一体何やってるんだろう」とか思ったけど後悔はしてません。
この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!
もっと学びたい人はこちら
Python、機械学習をもっと学びたいという人のためにおすすめのUdemy講座を紹介いたします!
Pythonの基本文法を押さえたい方はこちらの動画がおすすめです。
エンジニアになりたいと思って駆け出した方がPythonを選んだときはこの講座から始めるとよいと思います。
Python 3 エンジニア認定基礎試験の対策にもなります。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス
プログラムの基礎が分かる方で機械学習に興味がある方はこちらがおすすめです。
SIGNATEという日本版Kaggleのサービスを実際に使用してハンズオン形式でデータ分析・機械学習を学ぶことができます。
もちろんこの動画だけで特級のデータサイエンティストになれるわけではないですが、機械学習の門を叩くにはとても良い講座だと思います。
【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
Pythonのライブラリで必ず押さえておきたいのがNumpy, Pandas, Matplotlibの3つ。
この3つを網羅的に学ぶことができる講座です。
英語の講座ですが、わかりやすい英語ですし、ソースコードメインで解説しているので
ソースコードを一緒に手を動かしながら学べば十分理解することができます。
機械学習を使わない人にもおすすめの講座です。
2021 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning
気になった人はぜひ見てみてくださいね!
以上、コジマでした。