3桁の正の整数を乱数により10個発生させて表示し,次に逆順に表示するプログラムを作成しましょう.
Original: 295 389 972 400 873 211 259 641 687 887 Reversed: 887 687 641 259 211 873 400 972 389 295 |
insert メソッドを使用してリストを作る方法と,None を使う方法があります.解答例1
逆順に出力するのは,for 文とインデックスの組み合わせでできますし,教科書 p.181 の reversed 関数でもできます.
前問と同じように10個の3桁の乱数を表示し,次に数値の小さい順に表示するプログラムを作成しましょう.
Original: 872 495 413 232 510 374 297 396 931 364 Sorted: 232 297 364 374 396 413 495 510 872 931 |
教科書 p.72 で sorted 関数を扱いました.解答例
0 から 9 までの数字のどれかをランダムに5個発生させ,それらの数字に重複があるかどうかを判定するプログラムを作成しましょう.
5 0 8 0 1 Elements overlapped |
3 9 0 1 8 No overlap in elements |
in 演算子を使用します.また,スライス式を使って一致するかどうかを順に見ていきます.
サイコロを100回振ることを乱数によりシミュレートし,それぞれの目が何回出たかを数えるプログラムを作成しましょう.
4 2 6 6 4 1 2 2 2 3 5 5 5 1 1 4 6 1 2 5 5 1 6 3 6 2 1 2 6 3 5 3 3 4 1 5 6 6 6 3 6 4 3 4 5 1 5 5 2 2 4 2 4 2 4 1 6 3 2 4 3 3 2 1 6 5 4 5 3 1 4 3 4 4 3 4 2 5 6 5 3 2 1 3 1 1 5 4 5 5 5 5 2 2 5 5 6 6 4 2 1 2 3 4 5 6 14 18 15 17 21 15 |
教科書 p.173 にある count メソッドを使用して実現することもできますし,つかわない方法もあります.
じゃんけんをシミュレートするプログラムを作りましょう.以下のリストを使用すると,if 文を使用しないで出来ますので,やり方を考えてみましょう.
hand = ['Gu', 'Choki', 'Pa'] result = ['Aiko', 'Winner is you!', 'Winner is computer!'] |
You: Gu Computer: Gu Aiko You: Gu Computer: Choki Winner is you! |
剰余を使うことで if が不要になります.また,Python では,-1 を 3 で割った余りは 2 ですので簡単に処理が書けます.
0 から 51 までの数のどれか一つを乱数により発生させ,それに対応するトランプのカードを表示するプログラムを作ります.ここでも以下のリストを使用することで if 文を使用しないで作れます.
suite = ['Spade', 'Diamond', 'Heart', 'Club'] mark = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] |
数字とトランプの対応表 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
Spade | A | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | J | Q | K |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | |
Diamond | A | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | J | Q | K |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | |
Heart | A | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | J | Q | K |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | |
Club | A | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | J | Q | K |
Random number: 39 A of Club |