#author("2023-05-17T18:22:16+09:00","external:moriat","moriat") #author("2023-06-11T08:17:12+09:00","external:moriat","moriat") #topicpath ** 制御構造-2 [#s193f206] - Python の制御構造について理解を深めるためのプログラミングする課題を示して~ (承前) 以下は、Pythonの制御構造について理解を深めるための課題です。 2. ユーザーから数字を入力してもらい、その数までの素数を求めるプロ グラムを実装してみよう。for文、while文、関数を使用して実装し、処 理時間の違いを比較してみよう。 3. ユーザーから文字列を入力してもらい、その中に含まれるアルファベッ トの個数を求めるプログラムを実装してみよう。for文、while文、辞書 型を使用して実装し、処理時間の違いを比較してみよう。 4. 石取りゲームを作成してみよう。プレイヤーとコンピューターが交互 に石を取り、最後に取った人が負けとなるルールで実装する。while文、 if文、ランダムモジュールを使用して実装してみよう。 5. シンプルな電卓を作成してみよう。ユーザーから数値と演算子を入力 してもらい、計算結果を表示するプログラムを実装してみよう。if文、 関数を使用して実装してみよう。 これらの課題を通じて、Pythonの制御構造について理解を深めることが できます。 ** 素数を求める(続) [#e6a093d5] - 受講生のプログラム例 -- その1 #code(python){{ for x in range(3,100): count = 0 for y in range(2,x+1): if x % y == 0: count += 1 if x == y and count == 1: print(x) }} -- その2~ #code(python){{ for x in range(3,100): count = 0 for y in range(2,x+1): if x % y == 0: count += 1 if count == 1: print(x) }} -- その3~ √x 以上の x の約数は調べないことで、スピードアップ~ count がゼロのときに出力。 #code(python){{ for x in range(3,100): count = 0 for y in range(2,x+1): if y > x ** 0.5: break if x % y == 0: count += 1 if count == 0: print(x) }} -- その4~ 1回でも約数が現れたら終了して、スピードアップ #code(python){{ for x in range(3,100): isPrime = True for y in range(2,x+1): if y > x ** 0.5: break if x % y == 0: isPrime = False break if isPrime: print(x) }} この他にも、素数を保存して、素数だけでチェックする方法が考えられる。 - [[プログラム例>https://colab.research.google.com/drive/1EBKwNRp9CcukZA8F2_NpA0Juh3g6FB0J#scrollTo=URH_1zZjMDuu]] - プログラムについてのメモ~ &ref(IMG_3033.jpg,,40%); ** アルファベットの文字数を数える [#f122ec00] - [[プログラム例>https://colab.research.google.com/drive/10w-Z7QWzXqdfKjsJcQf2_uCeoi5GXbAt#scrollTo=1PCNAnWvsAxI]] 辞書データの使い方, try except の使い方の例として使える。 ** 石取りゲーム [#n500e93f] - [[プログラム例>https://colab.research.google.com/drive/10w-Z7QWzXqdfKjsJcQf2_uCeoi5GXbAt#scrollTo=QVSvn30N84vS]]~ モジュールを使う例として使える。 ライブラリを使う例として使える。 ** 電卓 [#w6f39383] - [[プログラム例>https://colab.research.google.com/drive/10w-Z7QWzXqdfKjsJcQf2_uCeoi5GXbAt#scrollTo=YPceGBBVA723]]