我如何每次运行程序时,都会将数据添加到对应的keys中,而不是重新创建一个dict啊?...

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

横汾路,寂寞当年箫鼓,荒烟依旧平楚。

大家好,我是Python进阶者。

一、前言

前几天在Python最强王者交流群【🇿 🇽 🇸】问了一个Python项目实战的问题,问题如下:请问,我如何每次运行程序时,都会将数据添加到对应的keys中,而不是重新创建一个dict啊。

25c8b759509cbdbc197adeeb16cb1563.png

二、实现过程

这里【东哥】基于粉丝的代码,做了一份修改,修改后的代码如下:

import json

def load_data():
    try:
        with open('user.json', 'r', encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        return {
            "用户名": [],
            "密码": [],
            "邮箱": []
        }

def login(data):
    print("欢迎来到图书管理系统注册页面~")
    while True:
        username = input("请输入用户名:\t")
        if len(username) < 5:
            print("用户名不能小于5位")
        else:
            if username not in data["用户名"]:  # 避免重复的用户名
                data["用户名"].append(username)
                email = input("请输入邮箱:\t")
                if email.endswith('@zxs.com'):
                    if email not in data['邮箱']:  # 避免重复的邮箱
                        data['邮箱'].append(email)
                        password = input("请输入密码:\t")
                        if len(password) >= 6:
                            data['密码'].append(password)
                            print(f"Tips: 恭喜{username}注册成功,请前往登录")
                            save(data)
                            break
                        else:
                            print("密码不能小于6位")
                    else:
                        print("邮箱格式错误,邮箱后缀必须是@zxs.com")
                else:
                    print("邮箱已存在,请使用其他邮箱注册")
            else:
                print("用户名已存在,请使用其他用户名注册")

def save(data):
    try:
        with open('user.json', 'w', encoding='utf-8') as f:
            json.dump(data, f, ensure_ascii=False, indent=4)
    except Exception as e:
        print("文件写入失败,请检查文件路径")

if __name__ == '__main__':
    data = load_data()  # 加载已有数据
    login(data)  # 调用登录函数

顺利地解决了粉丝的问题。

bb230dc9bd70af6ee238da84a72f5bc4.png

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一个Python项目实战的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【🇿 🇽 🇸】提出的问题,感谢【东哥】给出的思路,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

905d9948bcb039481dfc4454f982e1f6.png

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(Python进阶者微信:2584914241),应粉丝要求,我创建了一些ChatGPT机器人交流群和高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

83ece84df21085445098838d5220b76f.png

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

362e4a8af98deb87d122df10856a9a63.jpeg

------------------- End -------------------

往期精彩文章推荐:

670ffb5def15e4f89db7b56426908ddd.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 输出该字典。 示例输入: keys = [1, 2, 3, 4, 5] values = [10, 20, 30, 40, 50] 示例输出: {1: 10, 2: 20, 3: 30, 4: 40, 5: 50} 程序代码如下: ### 回答2: 编写程序,可以使用以下代码实现: ```python def create_dict(keys, values): dictionary = {} # 创建一个空字典 for i in range(len(keys)): key = keys[i] value = values[i] dictionary[key] = value # 将键值对添加到字典 return dictionary keys = [1, 2, 3, 4, 5] values = [10, 20, 30, 40, 50] result = create_dict(keys, values) print(result) # 输出结果:{1: 10, 2: 20, 3: 30, 4: 40, 5: 50} ``` 首先,我们定义一个函数`create_dict`,该函数接受两个参数`keys`和`values`,分别表示包含正整数的列表。 在函数,我们首先创建一个空字典`dictionary`。 接下来,我们使用`for`循环遍历`keys`列表,使用索引`i`来访问`keys`和`values`对应位置上的元素。 在循环,我们将`keys[i]`作为键,`values[i]`作为值,将键值对添加到字典`dictionary`。 最后,我们返回创建的字典`dictionary`。 在主程序,我们定义了两个包含正整数的等长列表`keys`和`values`。 然后,我们调用`create_dict`函数将`keys`和`values`作为参数传入,并将函数的返回值赋给变量`result`。 最后,我们打印`result`,即字典的内容。 运行程序,将得到字典`{1: 10, 2: 20, 3: 30, 4: 40, 5: 50}`作为输出结果。 ### 回答3: 编写程序的基本思路是首先获取输入的两个等长列表keys和values,然后使用一个循环遍历keys和values的对应位置,并将keys的正整数作为键,values对应位置上的正整数作为值,创建一个字典。 具体的代码如下: ```python keys = input("请输入包含正整数的列表keys,以空格分隔每个元素:").split() values = input("请输入包含正整数的列表values,以空格分隔每个元素:").split() # 检查输入的列表长度是否一致 if len(keys) != len(values): print("错误:输入的列表长度不一致") exit() # 创建一个空字典 dictionary = {} # 遍历keys和values的对应位置 for i in range(len(keys)): # 检查输入的是否为正整数 if not keys[i].isdigit() or not values[i].isdigit(): print("错误:输入的列表包含非正整数") exit() # 将keys的正整数作为键,values对应位置上的正整数作为值,添加到字典 dictionary[int(keys[i])] = int(values[i]) # 输出结果 print("创建的字典为:", dictionary) ``` 这段代码首先获取输入的两个列表keys和values,然后通过检查列表的长度来确保输入的两个列表长度一致。接下来,使用一个循环遍历keys和values的对应位置,并将正整数作为键值对添加到一个空字典。最后,输出创建的字典。 注意:为了简化代码,上述示例没有进行输入合法性的详细检查。实际应用,可能需要对用户输入进行更详细的验证和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值