我正在尝试编写一个程序,该程序将从列表中随机拾取一个名称(从.txt文件导入,其中一行有一个名称)。然后我想将该名称保存在另一个文件中。收到一个名字后,程序会询问用户是否想要另一个名字(另一个名字)。理想情况下,当拾取所有名称时,程序将重新启动以从头开始随机获取名称。有关我应该比较列表的信息,但我认为现在这对我来说太难了。
import random
#Open the files which contains the list of names
#I created a list from that file
file1 = open('Employees.txt', 'r')
listEmployee = file1.readlines()
listEmployee[0]
#open the empty list, to be ready to be filled with the
#futur picked up names
file2 = open('tested.txt', 'r')
listTested = []
#I created a loop:
#It will pick up a random name, then ask the user if he want to continu or quit
again = 1
while again == 1:
if again == 1:
employee = random.choice(listEmployee)
print ('The employee selected is: ' +(employee)+ '\n')
#write the name of the employee in the file
with open('tested.txt', 'a') as file:
file.writelines(str(employee)+'\n')
again = int(input('Select another employee: press 1 \nOr quit, press: 2 '))
print('')
#if the user press 2 : quit the program
elif again == 2:
quit()
#if the user doesnt press 1 or 2
elif again != 1 or again != 2:
again = int(input('Please select 1 or 2: \nSelect another employee: press 1 \nQuit, press: 2 \n'))
print ('')
它有点工作,但程序可能仍会连续选择两次相同的名称(这是我想要避免的)。
所以现在,当我运行该程序时,它会给我一个名字并询问我是否要选择其他名称或退出该程序。如果我选择另一个名字,它可能会给我一个相同的名字,或者一个已经被选中的名字,即使我的名单中的所有名字之前都没有被选中(对不起,我想成为尽可能清楚。)
所以我阅读(并收到一些建议)关于使用shuffle方法,但是当我尝试使用它时,它会随机返回整个列表,而不仅仅是一个名称。