我正在尝试制作一个程序,该程序将从文件中随机拾取名称。将询问用户是否要再次捡起另一个(按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
根据代码打印pickFrom
是一个列表,当您在打印中引用它时,需要使用[]调用它。将其更改为pickFrom[y]