pythonコーディングひと段落
次はWEBアプリ
さて、プログラミングの方も、ちまちま進めています。 前回紹介した本の、ブラックジャックをpythonで作るところまでは完了です。
とはいえ、コマンドラインのみで動く簡単なものですが。
[ H 7 ]とか[ D 5 ]というのは、それぞれハートの7、ダイヤの5といった表記です。
モヤっとコード
このプログラムはfor文やif文、リスト等が分かっていればすぐに作れるので、あまり躓くことはありませんでした。
関数についても、メインのモジュールに関数を直書きして、メイン関数の中で使う、という流れ。
クラスを作ってインスタンス化→インスタンスメソッドを使う、といった処理は無かったため、物足りない感じ…。
(クラスメソッドとかスタティックメソッドとかがまだ腹落ちしていないので…次の課題ですね)
そんな中でも、ちょっとモヤっとするコード(完全にマスターしたとは言い切れないもの)があったのでメモ。
いわゆるリスト内包表記
#デッキを作る
def make_deck():
rank = range(1,14)
suit = ('S','H','C','D')
deck = [(i,j) for i in rank for j in suit]
random.shuffle(deck)
return deck
deck=[(i,j) for...
の部分ですね。
(i,j)
というタプル(要素を変更できない配列)のリストを生成しています。
rank
が1から13までfor文で回る間、それぞれS,H,C,Dがfor文で回る二重ループの表記。これで全ての組合せのリストとなっています。
こういうのサラっと書けるようになりたい。
複数の戻り値を格納
#勝敗の結果を判定
message, player_money = win_lose(dealer_hand, player_hand, bet, player_money)
print(message)
win_lose
という関数で勝敗が確定し、表示する文字列と所持金の増減値を返します。
それらをそれぞれ、message
とplayer_money
に格納しています。
これは便利ですが…その関数が何をどの順番で返してくるのか、注意しないとすぐにバグ化する予感。
そしてDjangoへ
ついつい心の中で「ディージャンゴ」って呼んじゃいますが、「ジャンゴ」なんですよね。なぜだ。
ここでWEBアプリを動かす為のサーバが必要になるのですが、現在はその環境を構築中です。
自宅にあるWindows10のノートPC上に、CentOS7の仮想サーバを構築し、そこにDjangoを乗せて見ようと思っています。
CentOS
Linuxを基本にしたOS(ディストリビューション)の1つ。いくつかある中で、結構メジャーに使われているらしい。これも使いながら勉強していきましょう…。
参考
所感
Djangoへの道のりはもうちょっと長かっ た…。