这个想法是函数“search()”应该以客户的名字和客户列表作为参数,并检查客户是否在 customer.txt 中(然后返回 True)或不在(然后返回 False)。
规范是:1)取一个客户的名字和一个客户列表(writeData(),customer.txt生成的列表)作为参数 2)检查name是否在列表中 3)如果是,返回True ; 如果不是,则返回 False。
目前,
1) 每当我在菜单中输入 S 时,它都会告诉我缺少两个必需的位置参数
回溯(最近一次调用最后一次):
cdman()
File "test.py", line 55, in cdman
menu()
File "test.py", line 24, in menu
search()
TypeError: search() missing 2 required positional arguments: 'name' and 'filename'
2)如果我在shell中简单地调用“search()”,它会在首先调用“cdman()”之前和之后显示“名称”搜索“未定义”
3)如果我在文件中有名称“ Jacob Walker ”并尝试搜索它,它会突出显示 Walker 并说无效语法
def cdman():
def menu():
print('*------------------------*')
print('| Customer Database Menu |')
print('*------------------------*\n')
choice = input('D: Create/Update Customer Data\nR: Display Database\nS: Search for User\nE: End Program\n')
if choice == 'D':
writeData()
menu()
elif choice == 'S':
search()
menu()
elif choice == 'R':
readData()
menu()
elif choice == 'E':
print('PROGRAM TERMINATED')
def writeData():
while True:
database = open('customer.txt', 'a')
name = input('Name: ')
if name == '-1':
database.close()
return False
else:
id_num = input('ID: ')
database.write('Name: ' + name + ' ')
database.write('ID: ' + id_num + '\n')
def readData():
database = open('customer.txt', 'r')
for line in database:
print(line)
def search(name, filename):
if name in open(filename).read():
print('True')
else:
print('False')
menu()
cdman()
慕姐8265434
相关分类