random.shuffle?从列表中随机拾取一次项目

时间:2017-12-08 12:50:54

标签: python-3.x random

我正在尝试编写一个程序,该程序将从列表中随机拾取一个名称(从.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方法,但是当我尝试使用它时,它会随机返回整个列表,而不仅仅是一个名称。

0 个答案:

没有答案