李青山 发表于 2021-9-2 16:07:33

格式化字符数是四个,定义的字典中也有key值,但运行报格式字符串没有足够的参数

# 无限循环,由用户主动决定什么时候推出循环
import cards_tools
while True:

    # TODO 显示功能菜单
    cards_tools.show_menu()

    action_str = input("请选择希望执行的操作:")
    print("您选择的操作是【%s】" % action_str)

    # 1,2,3针对名片的操作
    if action_str in ["1", "2", "3"]:

      # 新增名片
      if action_str == "1":
            cards_tools.new_card()

      # 显示全部名片
      elif action_str == "2":
            cards_tools.show_all()

      # 修改名片
      elif action_str == "3":
            cards_tools.search_card()
      # pass

    # 0 退出系统
    elif action_str == "0":

      print("欢迎再次使用【名片管理系统】")

      break

      # 如果开发程序时不希望立刻编写分支内部的代码,可以使用
      # pass关键字,表示一个占位符,能够保证程序的代码结构
      # 正确,代码运行时,pass不会只想任何操作
      # pass
    else:
      print("您输入的内容不正确,请重新输入")



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 记录所有的名片字典
# 此文件名为cards_tools
card_list = []


def show_menu():

    """显示欢迎界面功能菜单"""

    print("*" * 50)
    print("欢迎使用【名片管理系统】v 1.0\n")
    print("1.新增名片")
    print("2.显示全部名片")
    print("3.修改名片\n")
    print("按0推出系统")
    print("*" * 50)


def new_card():

    """新增名片"""
    print("-" * 50)
    print("新增名片")

    # 1.提示用户输入名片的详细信息
    name_str = input("请输入姓名:")
    qq_str = input("请输入QQ号码:")
    phone_str = input("请输入电话号码:")
    emily_str = input("请输入邮箱:")

    # 2.使用用户输入的信息建立一个名片字典
    card_dict = {
      "name": name_str,
      "QQ": qq_str,
      "phone": phone_str,
      "emily": emily_str
    }

    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    print(card_list)

    # 4.提示用户添加成功
    print("%s名片添加成功!" % name_str)


def show_all():

    """显示所有名片"""
    print("-" * 50)
    print("显示所有名片")

    # 打印表头
    for name in ["姓名", "电话", "QQ", "邮箱"]:
      print(name, end="\t\t")

    print("")

    # 打印分割线
    print("=" * 50)

    # 遍历名片列表依次输出字典
    for card_dict in card_list:
      # print(card_dict)
      print("%s\t\t%s\t\t%s\t\t%s" %# 此行代码报错
            card_dict["name"],
            card_dict["phone"],
            card_dict["QQ"],
            card_dict["email"])


def search_card():

    """修改名片"""
    print("-" * 50)
    print("修改名片")

逃兵 发表于 2021-9-2 16:22:27

少打个括号
email 都打错了
      print("%s\t\t%s\t\t%s\t\t%s" %# 此行代码报错
            (card_dict["name"],
            card_dict["phone"],
            card_dict["QQ"],
            card_dict["email"]))

李青山 发表于 2021-9-2 17:13:37

逃兵 发表于 2021-9-2 16:22
少打个括号
email 都打错了

好的,谢谢,已改正
页: [1]
查看完整版本: 格式化字符数是四个,定义的字典中也有key值,但运行报格式字符串没有足够的参数