【Python】簡単な対話アプリケーションの作成Vol.6【Python】簡単な対話アプリケーションの作成Vol.62020年5月27日Python学習Python学習【365日チャレンジ!】107日目のマスターU(@Udemy11)です。ドラマの【JIN-仁-】と漫画の【JIN-仁-】の結末が違いすぎて、なんとも言えない気持ちになってしまいました。確かに同じ結末にするのは芸がないのですが、ほんとにそれでいいの?なんて思えてくる結末で、ちょっと残念なような悲しいような。まー、寝不足になりながらもすべて観終えたので、これでPython学習に集中できます。昨日は、オブジェクト指向でJarvisクラスを作成しました。クラスと関数の骨組みだけなら次のようなコードになります。jarvisJarvisに質問をさせて、CSVファイルに取得したデータを書き込むという感じでしたね。昨日出来上がったコードはこちらをごらんください。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2020.05.26【Python】簡単な対話アプリケーションの作成Vol.5https://udemyfun.com/python-make-app-vol5Python学習【365日チャレンジ!】106日目のマスターU(@Udemy11)です。無性に餃子を食べてくなる時があります。そんなときは、【大阪王将】にするか【餃子の王将】にするか迷うんですよね。まー、大抵は【大阪王将】にするのですが、その割合は、4対1といった感じでしょうか。決め手はやっぱり、味噌ダレがあるかどうかというところです。最近、味噌ダレはテーブルに置いてなくて、頼まないと持ってきてくれないのですが、【大阪王将】で餃子を食べるなら、味噌ダレがおすすめですので、ぜひ一度試してみてください。それ...それでは、2人目の質問をカバーするコードを書いていきましょう。使用するライブラリ1人目、2人目の質問までをカバーするのに必要なライブラリは次の2つ。csvライブラリosライブラリCSVファイルを扱うライブラリとファイルの存在を確認するためのライブラリです。__init__(self)の追加1人目限定のJarvisと大きく違うのは、__init__(self)で初期化処理を入れるところです。最初の質問の回答を取得するための関数inputは__init__に入れることはできませんでした。初期化ですることは、ranking.csvの有無の確認と、データの取得です。k['NAME']まずos.path.exists()でself.checkにTrueかFalseが代入されます。クラスJarvis内の関数で共通に使えるように、必要な変数にはself.をつけています。ファイルの有無を確認して、ファイルが存在する場合は、csv.DictWriterを使って、値を取得しています。最初のあいさつと名前を聞く質問は、一人目のコードと同じです。input('こんにちは。わたしはジャービスです。あなたの名前を教えてください。self.c_name取得した値の先頭の文字を大文字にして、関数の返り値をself.c_nameにしています。次の質問はranking.csvに保存されているスポーツをおすすめして、好きかどうかたずねます。答えはYesでもNoでも次の質問へいくので、それ以外の回答はないという前提で、条件分岐をつけませんでした。input('\nわたしのおすすめのスポーツは{}です。[Yes/No]\n'.format(self.r_sport))ただ質問をして、なにか入力してもらうだけの関数ですね。次は、メインの大好きなスポーツを尋ねる質問です。self.c_like_sportsこの質問で取得した値は、1人目のスポーツとは違うという前提で、ranking.csvに追記します。CSVへの書き込みranking.csvへの書き込みですが、__init__で取得したself.checkがTrueの場合は、前の質問で取得したself.c_link_sportsを追記して、Falseの場合は、新しくranking.csvを作成して書き込みます。最後のあいさつは、デストラクタでprint出力します。print('\n{}さん、回答ありとうございました。\n良い1日をお過ごし下さい!'.format(self.c_name))完成コードJavisクラスに関数を6つ持たせたので、最後にオブジェクトを作成して、関数を実行するコードを追記します。input('こんにちは。わたしはジャービスです。あなたの名前を教えてください。input('\nわたしのおすすめのスポーツは{}です。print('\n{}さん、回答ありとうございました。'__main__':を使います。ranking.csvが存在したときのみ、45行目と46行目でJarvisがおすすめするスポーツが好きかどうか尋ねる質問を実行します。昨日書いたコードでは、デストラクタにCSVを作成するコードを入れていましたが、書き込みが2つのパターンになるため、write_csv()関数に切り分けてみました。書き方はいろいろ今回は、初期化作業を入れてコードを書きましたが、ファイルの存在をチェックするための関数を一つ作っても問題ないかもしれません。CSVへの書き込みは、デストラクタに入れてしまっても大丈夫だし、コードの書き方は違っても同じ動作をさせることができます。【Python】暗号化と復号化の基本Google検索の1ページ目にヒットしたページのURLにアクセスしてタイトルを取得します。Udemyがセールをしているかどうかは、こちら...【Python】模範的な対話アプリケーションの構造解説(MVCモデル)Python学習【365日チャレンジ!】109日目のマスターU(@Udemy11)です。なにげに玄関を眺めていると、アシナガバチがポストに入って...【Python】マルチスレッドとマルチプロセスについてPython学習【365日チャレンジ!】203日目のマスターU(@Udemy11)です。9月になって少しは過ごしやすくなるのかと思いきや、まだま...【Python】簡単な対話アプリケーションの作成Vol.7Python学習【365日チャレンジ!】108日目のマスターU(@Udemy11)です。ホットケーキミックスが品薄になっていたらしですが、大量の...【Python】インフラの仮想環境を構築するイメージを理解しようPython学習【365日チャレンジ!】239日目のマスターU(@Udemy11)です。Keysのキー割り当てにハマった話Googleスプレッドシートの使い方講座Anacondaのアンインストールからの再インストールrequestsを使って仮想通貨のデータを取得Python学習【365日チャレンジ】を振り返ってみます。(2)Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。