値judgeは外因的に書き換えられることがないので、無限ループになります。
while judge is True:
main_list.append(rand_num)
この場合一度だけ処理が行われればいいので、if文で充分です。
Python
1import random
2
3max_num = 100
4
5for i in range(10):
6 main_list = []
7 for j in range(10):
8 rand_num = random.randint(0,max_num)
9 filter = rand_num + 10
10
11 if filter <= max_num:
12 main_list.append(rand_num)
ついでに
気になる点を列挙します。
外側のループが繰り返される度に上書きされます。
『もし〇〇ならば~、そうでなければ~』という排他的な条件の場合、if-else
が適しています。
- 条件式に xx is True が含まれていること
『「xxが真である」ことが真である』という意味になり冗長です。
Pythonでは変数の宣言はしなくて良いので、必要ないです。
ご不明な点はコメントにて遠慮なくご質問ください。
書いてみた
ちょっと要件が曖昧なので、かなり想像で埋めていますが、こんな感じでしょうか。
Python
1from random import randint
2
3def my_rand():
4 return randint(0, 100)
5
6main_list = []
7for i in range(10):
8 inner_list = []
9
10 for j in range(10):
11 num = my_rand()
12 if num <= 90:
13 inner_list.append(num)
14
15 main_list.append(inner_list)
16
17print(main_list)
実行結果 Wandbox
[
[69, 37, 17, 18, 81, 64, 22, 49, 34],
[36, 6, 15, 12, 25, 11, 28, 86, 82, 86],
[27, 14, 39, 70, 56, 84, 86, 38, 6, 67],
[34, 35, 26, 57, 23, 8, 25, 68, 10, 55],
[40, 13, 60, 33, 0, 8, 88, 60],
[21, 73, 16, 5, 84, 40, 15, 27, 6, 25],
[52, 32, 53, 79, 10, 49, 47, 64, 4, 87],
[46, 10, 68, 12, 26, 50, 70, 18, 56, 40],
[49, 80, 56, 90, 65, 60, 4, 34, 30],
[86, 60, 86, 80, 33, 21, 56, 46]
]
**註1: **見やすいように手動で成形しています。
**註2: **疑似乱数を用いているので、もちろん毎回結果は異なります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/22 18:04 編集
2018/03/22 18:28
2018/03/23 02:30
2018/03/23 04:13 編集
2018/03/23 04:15