実現したいこと
宝くじのようなシステムで、何回目ですべての数字が一致するかを調べるシステムを作成しているのですが、前述の条件を満たすまでは延々とランダムな数字を生成するように動いてほしいです。
前提
python初学者です。
基礎の勉強として、宝くじのようなシステムを作っています。
最初に1~43の中から好きな番号を6つ入力し、当選番号は1~43の中でランダムな数字が6つ生成されます。
自分の番号と当選番号がすべて一致していない場合は、再度ランダムで番号が6つ生成されるようなイメージです。その工程を番号がすべて一致するまで繰り返すようなプログラムを組みたいのですが、下記コードですと当選番号が毎回生成されずに、ずっと同じ番号で繰り返されてしまいます。
whileの中で関数の"rand"、変数の"tosen"を呼び出さなくてはいけないと考えているのですが、どのように呼び出せばいいのか分からない状態です。
初歩的な質問で恐縮ですがご教授いただければ幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1import random 2 3t = 0 4 5#数字が重複しない処理 6def rand(a, b, k): 7 ns = [] 8 while len(ns) < k: 9 n = random.randint(a, b) 10 if not n in ns: 11 ns.append(n) 12 return ns 13 14me = list(map(int,input ('1~43の数字を6つ入力:').split())) 15tosen = rand(1,43,6) 16 17def takara(): 18 print('あなたの番号:'+str(me)) 19 print('当選番号:'+str(tosen)) 20 21while True: 22 takara() 23 t=t+1 24 print(str(t)) 25 26 if len(set(me)&set(tosen)) == 6: 27 break 28 29print(str(t)+'回目で当たりました')
試したこと
while文の中に"rand(1,43,6)"や"tosen"を追記してみましたが結果は変わらずでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/06/30 07:41
2023/06/30 08:50
2023/07/03 01:28
2023/07/03 01:40