【Python】簡単な対話アプリケーションの作成Vol.7【Python】簡単な対話アプリケーションの作成Vol.72020年5月28日Python学習Python学習【365日チャレンジ!】108日目のマスターU(@Udemy11)です。ホットケーキミックスが品薄になっていたらしですが、大量の買いだめには注意が必要なようです。いうのも、小麦粉の中には、ダニの卵が含まれているので、長期間保存することでダニが大量に発生して、ダニアレルギーでアナフラキシーショックを起こしてしまうことがあるらしいからです。...2004年の記事なので、少し古いですが、この報告によると、小麦粉によるアナフラキシーショックが報告されていて、その後の調査で、日本の小売店の176パッケージの中から3個、家庭の127パッケージの中から7個にダニの蔓延が見つかったそうです。冷蔵庫に保存されていたパッケージからはダニは検出されなかったそうなので、小麦粉は冷蔵庫に保存したほうがいいようですね。いえば、以前米不足になったときに米屋さんから聞いた話では、日本の米は1年もほっておけば、中で虫が成長してカサカサ音がなってくるけど、輸入したタイ米は、何年立っても虫がわかないなんてことを言ってました。タイ米には、それだけ強力な殺虫剤が使われているということですね。毎日口にするものなので、このあたりのことには注意したいものです。昨日は、オブジェクト指向作成したJarvisクラスで2人目の質問に対応させました。1人目と2人目の違いは、条件分岐があるかどうかだったので、1人目に比べるとコードが長くなりましたが、何も考えずに作った最初のコードに比べるとかなりわかりやすくなったかと思います。1人目と大きくちがったのは、__init__(self)による初期化とCSVの書き込みのための関数を加えたところでした。内容については、昨日の記事をごらんください。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2020.05.27【Python】簡単な対話アプリケーションの作成Vol.6https://udemyfun.com/python-make-app-vol6Python学習【365日チャレンジ!】107日目のマスターU(@Udemy11)です。ドラマの【JIN-仁-】と漫画の【JIN-仁-】の結末が違いすぎて、なんとも言えない気持ちになってしまいました。確かに同じ結末にするのは芸がないのですが、ほんとにそれでいいの?なんて思えてくる結末で、ちょっと残念なような悲しいような。まー、寝不足になりながらもすべて観終えたので、これでPython学習に集中できます。いうことで、今日もPython学習をはじめていきましょう!昨日の復習昨日は、オブジェクト指向でJarvisクラスを作成しました。クラス...それでは、クラスを使ったコードを完成させましょう!追加するコード1人目、2人目をカバーする質問と3人め以降の質問で大きく違うのは、CSVに保存しているデータを並び替えておすすめするスポーツを抽出することと、大好きなスポーツがすでにあるデータかどうかを判断して、CSVに追加するところです。CSVのデータを取り出して順番に並べ替えるためにoperatorモジュールをインポートしてデータを並び替える必要があります。次に、おすすめするスポーツが好きかどうかの判断によって条件分岐を加えます。最後は、CSVファイルへの書き込みも条件によって変える必要があります。これらの追加コードについて、前回のコードから変更された部分について紹介していきます。__init__(self)の変更まず、インポートするモジュールを追加し、そのモジュールを使って、データを並び替え、おすすめするスポーツを取り出せるジェネレーターを作ります。result)あとでCSVファイルに書き込むためのself.fieldnamesも初期化の際に定義しておきます。ranking.csvが存在するときに、ファイルを開いて、おすすめするスポーツをCOUNTの数が多い順に並べ替えています。次に、おすすめするスポーツが好きかどうかの条件分岐は、昨日は、ここで条件を判断しませんでしたが、3人目以降は回答によって次の質問が変わってくるので、条件分岐を入れる必要があります。input('\nわたしのおすすめのスポーツは{}です。break回答がYesかYの場合は、breakでこのループを抜けます。NoもしくはNの場合は、初期化で取得したジェネレーターから次の値をr_sportに代入して、ループを繰り返します。回答に、YもNも含まれていない場合は、YesかNoで答えるように質問し、ループを繰り返します。exceptでジェネレーターの値がなくなったときのエラーを返さずにループを抜けるようにしています。'COUNT':1})大きな条件分岐であるranking.csvの有無については昨日と同じで、ない場合は、ranking.csvを作成して、取得したデータを書き込みます。ranking.csvがある場合は、データを取得して、回答されたデータがすでにある場合は、そのCOUNTの値に1を足して、それ以外の場合は、そのまま変数redresh_csvに代入していきます。次に、取得したデータの読み込み位置をrank_c.seek(0)でもとに戻してから変数check_sportsにスポーツ名を代入します。最後に、check_sportsの中に、ユーザーが入力したスポーツc_like_spotrsが含まれていれば、ranking.csvに、変数refresh_csvの値を上書きし、含まれていなければ、スポーツ名c_like_sportsをranking.csvに追記します。完成したコード上記の部分を昨日のコードに追加すれば、3人目以降の質問に対応できるコードの完成です。input('こんにちは。わたしはジャービスです。あなたの名前を教えてください。input('\nわたしのおすすめのスポーツは{}です。print('\n{}さん、回答ありとうございました。'__main__':に続けて、オブジェクトJarvisを作成し、関数を実行します。今あるスキルで今日までの6日ほどの内容は、これまで学習してきた入門編の内容を考えながら、自分なりにコードを考えて書いたので、理想的なコードとはほどとおい内容になってしまっているので、参考にはならないかもしれません。いえ、自分で考えずに、先に模範解答を見てからコードを考えるのと、自分でなんとか課題をクリアするコードを考えるのでは、大きな違いが出てくると思います。教えられたものをそのままやるのと、自分なりに工夫してやるのでは、身につくスキルも違ってきます。答えを知った上で復習するか、やってみてから答えを知るのとの違いですよね。明日からは、アプリケーションを開発する上での基本的な構造の考え方を踏まえた上で、模範となるコードを学習していきます。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のアソシエイトとして、当メディアは適格販売により収入を得ています。