鱼C论坛

 找回密码
 立即注册
查看: 2234|回复: 10

键值对错误

[复制链接]
发表于 2020-8-23 11:01:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def deal_card(find_dict):
    print(find_dict)
    action_str = input("请选择要执行的操作 "
                       "[1] 修改  [2] 删除  [0] 返回上级菜单")
    if action_str == "1":
        find_dict["name"] = input_card_info(find_dict["name"], "姓名 【回车不修改】:")
        find_dict["phone"] = input_card_info(find_dict["phone"], "电话【回车不修改】:")
        find_dict["qq"] = input_card_info(find_dict["qq"], "QQ【回车不修改】")
        find_dict["email"] = input_card_info(find_dict["email"], "邮箱【回车不修改】:")
        print("修改名片成功")
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除名片")
为什么我在pycharm里面运行这个模块后说find_dict["qq"] = input_card_info(find_dict["qq"], "QQ【回车不修改】")里面的‘qq’键值错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-23 11:02:28 | 显示全部楼层
发完整代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-23 11:07:59 | 显示全部楼层



发下完整代码看看


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-23 23:09:10 | 显示全部楼层
# 搜索名片
        elif action_str == "3":
            cards_tools.sousuo_mingpian()
def sousuo_mingpian():
    """搜索名片"""
    print("-" * 50)
    print("搜索名片")
    # 提示用户要输入的姓名
    zhao_mingzi = input("请输入搜索姓名")

    # 遍历名片列表查询搜索姓名,如果没有查询到,需要提示用户
    for card_dict in card_list:
        if card_dict["name"] == zhao_mingzi:
            print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
            print("=" * 50)
            print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (card_dict["name"],
                                                  card_dict["phone"],
                                                  card_dict["QQ"],
                                                  card_dict["email"]))
            #  针对找到名片记录执行修改和删除的操作
            deal_card(card_dict)
            break
    else:
        print("^" * 50)
        print("没有找到%s名片" % zhao_mingzi)
        print("^" * 50)


def deal_card(find_dict):
    print(find_dict)
    action_str = input("请选择要执行的操作 "
                       "[1] 修改  [2] 删除  [0] 返回上级菜单")
    if action_str == "1":
        find_dict["name"] = input_card_info(find_dict["name"], "姓名 【回车不修改】:")
        find_dict["phone"] = input_card_info(find_dict["phone"], "电话【回车不修改】:")
        find_dict["qq"] = input_card_info(find_dict["qq"], "QQ【回车不修改】")
        find_dict["email"] = input_card_info(find_dict["email"], "邮箱【回车不修改】:")
        print("修改名片成功")
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除名片")


def input_card_info(dict_value, tip_massage):
    # 提示用户输入内容
    result_str = input(tip_massage)
    # 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:
        return result_str
    # 如果用户不输入内容,返回字典中原有的值
    else:
        return dict_value
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-23 23:10:40 | 显示全部楼层
Ygh6688 发表于 2020-8-23 23:09
# 搜索名片
        elif action_str == "3":
            cards_tools.sousuo_mingpian()

这是显示错误的代码地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-24 07:28:39 | 显示全部楼层
Ygh6688 发表于 2020-8-23 23:10
这是显示错误的代码地方

没有测试数据?如果有,把数据发一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-24 09:11:17 | 显示全部楼层
1q23w31 发表于 2020-8-24 07:28
没有测试数据?如果有,把数据发一下

我是萌新也不太清楚这个是不是测试数据

Traceback (most recent call last):
  File "/home/python/桌面/06_名片管理/card_main.py", line 19, in <module>
    cards_tools.sousuo_mingpian()
  File "/home/python/桌面/06_名片管理/cards_tools.py", line 85, in sousuo_mingpian
    deal_card(card_dict)
  File "/home/python/桌面/06_名片管理/cards_tools.py", line 100, in deal_card
    find_dict["qq"] = input_card_info(find_dict["qq"], "QQ【回车不修改】")
KeyError: 'qq'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-24 11:21:33 | 显示全部楼层
本帖最后由 1q23w31 于 2020-8-24 11:24 编辑
Ygh6688 发表于 2020-8-24 09:11
我是萌新也不太清楚这个是不是测试数据

Traceback (most recent call last):


哪个是主函数?,你是怎么运行的?,这不是全部代码吧,如果两篇以上代码,请用网盘传一下,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-24 23:13:00 | 显示全部楼层
1q23w31 发表于 2020-8-24 11:21
哪个是主函数?,你是怎么运行的?,这不是全部代码吧,如果两篇以上代码,请用网盘传一下,

链接:https://pan.baidu.com/s/1q7PrQIbC2xn50XFo8WCIaA
提取码:thdz
我是在虚拟机ubantu上运行的,麻烦大佬了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-26 10:27:44 | 显示全部楼层
Ygh6688 发表于 2020-8-24 23:13
链接:https://pan.baidu.com/s/1q7PrQIbC2xn50XFo8WCIaA
提取码:thdz
我是在虚拟机ubantu上运行的, ...

def deal_card(find_dict):
    print(find_dict)
    action_str = input("请选择要执行的操作 "
                       "[1] 修改  [2] 删除  [0] 返回上级菜单")
    if action_str == "1":
        find_dict["name"] = input_card_info(find_dict["name"], "姓名 【回车不修改】:")
        find_dict["phone"] = input_card_info(find_dict["phone"], "电话【回车不修改】:")
        find_dict["qq"] = input_card_info(find_dict["qq"], "QQ【回车不修改】")
        find_dict["email"] = input_card_info(find_dict["email"], "邮箱【回车不修改】:")
        print("修改名片成功")
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除名片")
这个是输出错误的主函数
elif action_str == "3":
            cards_tools.sousuo_mingpian()
这个是用来调用输出错误函数工具
其他的地方能正常运行,唯独这个函数说我里面的键值‘qq’错误
实在是麻烦大佬了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 12:13:49 | 显示全部楼层
https://fishc.com.cn/thread-178980-1-1.html
新帖已回复

应该是qq改成QQ就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 03:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表