質問: randint(0,100) while len(numbers) < 10 : if n in numbers : continue numbers.append(n) print(numbers) ``` ### 試したこと インターネットで調べたり、理由を考えてみましたがわかりませんでした。
回答: 前提 n = randint(0,100) は、 **ランダムに決められた数がnに代入される**のであって、毎回nの値が変動するわけではありません。 本題 先に n = ... を置いた場合、ループ前にnの値が決定され、勝手に置き換えられることはありません。 その結果 n in numbers が常に真になる(同じ要素しか無い)ので無限ループします。 ループ中にnの値を更新したいのならば、ループ内に n = ... を置く必要があります。