一、字典的定义 dict:
-
dictionary
(字典) 是 除列表以外Python
之中 最灵活的数据类型
- 字典同样可以用来 存储多个数据,通常用于存储 描述一个 物体 的相关信息
- 和列表的区别 :
- 列表 是 有序 的对象集合
- 字典 是 无序 的对象集合
- 字典用 {} 定义
- 字典使用 键值对 存储数据,键值对之间使用
,
分隔
- 键
key
是索引
- 值
value
是数据
- 键 和 值 之间使用
:
分隔
- 键必须是唯一的
- 值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组
二、常用方法(功能:增删改查)
序号 |
分类 |
关键字 / 函数 / 方法 |
说明 |
1 |
查询 |
字典[key] |
查询key对应的vlaue,key不存在报错 |
|
|
字典.get(key) |
查询key对应的vlaue,key不存在,默认值=None |
|
|
字典.get(key,default) |
查询key对应的vlaue,key不存在,默认值=default的值 |
|
|
字典.keys() |
返回字典中所有的key(list类型) |
|
|
字典.values() |
返回字典中所有的value(list类型) |
|
|
字典.items() |
返回字典中所有的键值对(list类型) |
2 |
添加/修改 |
字典[key]=value |
key在原字典存在,则是修改,否则是添加操作 |
|
|
字典.update(新字典) |
新字典key存在是修改,否则是添加操作 |
3 |
删除 |
字典.pop(key) |
通过key删除键值对,并返回被删除key对应的value |
|
|
字典.clear() |
清空字典 |
|
|
del 字典[key] |
常规删除数据手段,不属于字典 |
4 |
统计 |
len(字典) |
统计字典的长度 |
三、字典相关函数:
- hash():不是为字典设计,可以判断对象是否可以作为字典的键
- hash() 可以判断对象是否可以作为字典的键:
四、练习:模拟用户登录信息系统
需求
- 支持新用户注册(添加),新用户名和密码注册到字典中
- 支持老用户登陆(查询),用户名和密码正确提示登陆成功
- 主程序通过循环询问,进行何种操作,根据用户的选择,执行注册或是登陆操作
# 数据源
user = {"zs": "123", "ls": "213"}
# 注册函数
def register():
# 1.从键盘输入用户名
# 2. 判断该用户是否可用
# 2.1 如果被注册:提示用户对应信息
# 2.2 如果没有注册:输入密码
# 3. 将用户名密码添加到字典当中
username = input("请输入用户名:\n")
if username not in user.keys():
password = input("请输入密码:\n")
user[username] = password
print("注册成功!")
else:
print(f"注册失败!用户名{ username}已存在...")
# 登录函数
def login():
username = input("请输入用户名:\n")
password = input("请输入密码:\n")
if (username, password) in user.items():
print("登录成功")
print(user.get(username))
else:
print("登录失败")
# 显示选择方式行数
def show_menu():
while True:
xz = input("0.注册 1.登录 2.退出 请选择(0/1/2) :\n")
if xz not in ["0", "1", "2"]:
print("无效输入,请重新输入!")
continue
elif xz == "0":
register()
elif xz == "1":
login()
else:
break
# 初始化入口
if __name__ == '__main__':
show_menu()