在Python中添加错误消息以及命令

时间:2017-09-27 22:11:28

标签: python

#!/usr/bin/env python3

import csv

# a file in the current directory
FILENAME = "contacts.csv"

def write_contacts(contacts):
with open(FILENAME, "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(contacts)

def read_contacts():
    contacts = []
    with open(FILENAME, newline="") as file:
    reader = csv.reader(file)
    for row in reader:
        contacts.append(row)
return contacts

def list_contacts(contacts):
    for i in range (len(contacts)):
    contact= contacts[i]
    print(str(i+1) +"."+ contact[0])
   print()


 def view_contact(contacts):
    pos = int(input("Number: "))
    if not (pos-1)in range(len(contacts)):
    print(str(pos) + ' not in list, try again')
    view(contacts)
    return
   contact = []
   print(name + email + phone+".\n")
   print()

 def delete_contact(contacts):
    index = int(input("Number: "))
    contact = contacts.pop(index -1)
    write_contacts(contacts)
    print(contact[0]+" was deleted.\n")





 def add_contact(contacts):
    name=input("Name: ")
    email=input("Email: ")
    phone=input("Phone number: ")
    contact= []
    contact.append(name)
    contact.append(email)
    contacts.append(contact)
    write_contacts(contacts)
    print(name + " was added.\n")




 def display_menu():
    print("Contact Manager")
    print()
    print("COMMAND MENU")
    print("list - List all contacts")
    print("view  - View a contact")
    print("add  - Add a contact")
    print("delete- Delete a contact")
    print()
    print()


def main():
   display_menu()
   contacts = read_contacts()
    while True:
      command = input("Command: ")
      if command.lower() == "list":
           list_contacts(contacts)
       elif command.lower()== "view":
          view_contact(contacts)           
       elif command.lower()== "add":
           add_contact(contacts)
        elif command.lower()== "delete":
           delete_contact(contacts)                
           break
        else:
            print("Not a valid command. Please try again.\n")
       print("Bye!")

  if __name__ == "__main__":
  main()

这是我所有的代码。我试图找出当用户输入无效但无法正常工作的数字时,如何使删除和查看命令显示错误消息。我还试图在用户选择特定号码表格列表时查看联系人,然后该列表将显示所选号码的电子邮件名称和电话号码。我现在卡住了

我得到的错误是

赛道(最近一次呼叫最后一次):   ,第93行,in     主要()   ,第81行,主要     view_contact(联系人)  ,第32行,在view_contact中     视图(触点) NameError:未定义名称“view”

1 个答案:

答案 0 :(得分:0)

我认为你没有一个良好的开始使用追加到cvs的列表,无论如何是你的例子。

  1. 您可以使用 删除 从列表中删除您的联系人,请参阅列表示例:here
  2. 当用户从列表中选择一个特定号码时,只需通过踩到号码手机阅读,因为您添加:name + email + phone。
  3. 添加错误消息,请使用:尝试除了最后