【发布时间】:2014-10-26 21:09:15
【问题描述】:
我正在制作一个程序来从用户那里收集信息,并将其添加到文本文件中。
这是一个程序,将用于从许多申请人那里获取所述信息。
对于我收集的结果的线性度,我想随机提问。
我要问的是一种从列表中提取问题、请求输入、将输入存储在文本文件中,然后随机从列表中提取另一个问题的方法。
到目前为止,这是我的代码:
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。