-1
我試圖從兩個隨機選擇的列表中獲取常見元素的數量,如您在本文後面的代碼中所見。如何獲得隨機函數的固定值?
的一個問題是
print(count_matching_numbers(generate_numbers(), draw_winning_numbers()))
上述打印功能的結果是基於哪個DEF。打印一個內部功能獨立地選自
def generate_numbers():
result = random.sample(range(1, 46), 6)
result.sort()
return result
或
def draw_winning_numbers():
win = generate_numbers()
for i in win:
bonus = random.randint(1, 45)
bonus not in win
win.append(bonus)
return win
簡而言之生成輸出,否,我想獲得的隨機函數的一固定的輸出。 我該怎麼做才能解決問題?
預先感謝您!
import random
def generate_numbers():
result = random.sample(range(1, 46), 6)
result.sort()
return result
def draw_winning_numbers():
win = generate_numbers()
for i in win:
bonus = random.randint(1, 45)
bonus not in win
win.append(bonus)
return win
def count_matching_numbers(list1, list2):
return len(set(list1) & set(list2))
print(generate_numbers())
print(draw_winning_numbers())
print(count_matching_numbers(generate_numbers(), draw_winning_numbers()))
你可以一)硬編碼值,或者b)設置隨機種子 –
@PaulH:或c)使用'unittest.mock()'並修補'sample'和'randint'來返回預定義的數字。雖然不如設定種子那麼簡單。 –
但最重要的是,OP不應該兩次調用函數。改用變量。 –