我正在製作一個程序來收集用戶的信息,並將其添加到文本文件。 這是一個將用於從一些申請人獲得所述信息的程序。
對於我收集的結果的線性,我想隨機提問。{Python}使用迭代生成唯一整數
我在問什麼是從列表中拉出問題的方法,要求輸入,將輸入存儲在文本文件中,然後再問問題列表中的另一個問題。
這是到目前爲止我的代碼:
def ques():
global quesnum
for i in questions:
num = int(random.randint(0,len(questions)-1))
j = int(numbers.count(str(num)))
while j >= 1:
num = int(random.randint(0,len(questions)-1))
##DEBUG ONLY##
print('true')
break
else:
num = str(num)
numbers.append(num)
##DEBUG ONLY##
print('false')
num = int(num)
answer = input(str(quesnum) + '. ' + questions[num] + ': ')
answers.write(str(quesnum) + '. ' + questions[num] + ': ')
answers.write(answer + '\n')
quesnum = int(quesnum + 1)
錯誤:
一旦數字已經被使用它被添加到列表中。 如果已經使用了一個號碼,理想的情況是生成一個新號碼並使用該號碼。
我看不到我的代碼中有任何錯誤,並且據我所見,它應該可以正常工作。
任何人都可以指出一個修復或建議一個更好的方法來做到這一點?我已經找到答案,建議使用random.sample()
,但我已經嘗試過這一點,並且無法正常工作。
在此先感謝。
我強烈建議不要使用'global',如果一個函數需要一個值作爲參數傳入它。 – IanAuld 2014-10-26 21:26:23