31年目のRealize

技術に関する詳しい記事や分かりやすい記事は世の中にたくさんあるので、自分なりのアウトプットを試行錯誤。

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という関数で勝敗が確定し、表示する文字列と所持金の増減値を返します。
それらをそれぞれ、messageplayer_moneyに格納しています。
これは便利ですが…その関数が何をどの順番で返してくるのか、注意しないとすぐにバグ化する予感。

そしてDjango

ついつい心の中で「ディージャンゴ」って呼んじゃいますが、「ジャンゴ」なんですよね。なぜだ。

ここでWEBアプリを動かす為のサーバが必要になるのですが、現在はその環境を構築中です。
自宅にあるWindows10のノートPC上に、CentOS7の仮想サーバを構築し、そこにDjangoを乗せて見ようと思っています。

CentOS

Linuxを基本にしたOS(ディストリビューション)の1つ。いくつかある中で、結構メジャーに使われているらしい。これも使いながら勉強していきましょう…。

参考

  1. 以下のサイトで仮想環境を構築・接続するツールVMWare Workstation Player」を入手してインストールします。

  2. 以下のダウンロードサイトから、CentOSのisoイメージを入手します。
    Index of /pub/Linux/CentOS/7/isos/x86_64

  3. VMWare Workstation Player」を起動し、「新規仮想マシンの作成」でCentOSのisoイメージを選択し、OSをインストール。

所感

Djangoへの道のりはもうちょっと長かっ た…。