错误:'list'对象不可调用

时间:2017-12-06 20:10:37

标签: python-3.x list compare

我正在尝试制作一个程序,它会从文件中随机选取一个名称。将询问用户是否想再次拿起另一个(按1)。 这些名字不能被提取两次。 一旦拿起,名称将存储在列表中,写入文件。 当拾取所有名称时,程序将能够从头开始重新启动。 我检查了其他类似的问题,但我仍然没有得到它......

from random import *

#import a list of name from a txt file
def getL1():
    l1 = open("Employees.txt", "r")
    list1 = []
    x = 0
    for line in l1:
        list1.append(line)
        x = x+1
    list1 = [el.replace('\n', '') for el in list1]

    #print("list" 1 :",list)

    return list1
#import an empty list (that will be filled by tested employees) during
#execution of the program
def getL2():
    l2 = open("tested.txt", "r")
    list2 = []

    for line in l2:
        list2.append(line)
    list2 = [el.replace('\n', '') for el in list2]

    #print("list 2 :",list2)
    l2.close()
    return list2


def listCompare():
    employees = getL1()#acquire first list from employee file
    tested = getL2()#acquire second list from tested file
    notTested = []# declare list to hole the results of the compare
    for val in employees:
        if val not in tested: #find employee values not present in tested
            #print(val) 
            notTested.append(val)#append value to the notTested list
    return notTested

def listCount():
    x=0
    employees = getL1()
    tested = getL2()
    for val in employees:
        if val not in tested:
            x = x+1

    return x
#add the names of tested employees the the second second file
def addTested(x):
    appendFile = open("tested.txt", "a")
    appenFile.write(x)
    appendFile.write('\n')
    appendFile.close()



def main():

    entry = 1
    while entry == 1:

        pickFrom = listCompare()
        if listCount() > 0:
            y = randint (0, (listCount ()-1))
            print ('\n' + "Random Employee to be tested is: ", pickFrom(y), "\n")
            addTested(pickFrom[y])
            try:
                entry = int(input("Would you like to test another employee? Enter 1:"))

            except:
                print("The entry must be a number")
                entry = 0
        else:
            print("\n/\ new cycle has begun")
            wipeFile = open("tested.txt", "w")

    print ("goodbye")
main()

我遇到的最后一个错误是:

Traceback (most recent call last):
  File "prog.py", line 78, in <module>
    main()
  File "prog.py", line 65, in main
    print ('\n' + "Random Employee to be tested is: ", pickFrom(y), "\n")
TypeError: 'list' object is not callable

1 个答案:

答案 0 :(得分:0)

根据代码打印pickFrom是一个列表,当您在打印中引用它时,需要使用[]调用它。将其更改为pickFrom[y]