合法标识
1.以下划线 或者字母开头
2. 可以有字母数字 下划线
3.不能与python关键字相同
所有关键字
import keyword#关键字模块
keywork.kwlist#所有关键字列表
keyword.iskeyword("abc")#abc是否在关键字里面
import keyword
print("yhl" in keyword.kwlist)
print("None" in keyword.kwlist)
print(keyword.kwlist)
内建模块
builtins.py
字符串格式化
%s
f字符串
name,age="yhl",22
str01="name: %s,age: %s" % (name,age)
print(str01)
str02=f"name{name},age{age}"
print(str02)
判断开头字符串
s1.startswitch('he')#是否以he开头
s1.endswitch('hh')#是否以hh结尾
s1.islower()#是否小写
s1.isupper()#是否是大写
s1.lstrip()#清楚左边的空白字符
s1.rstrip()清除右边的空白字符串
s1.strip()清楚左右两边空白字符
s1.split(".")指定以.切割 返回的结果是列表
"-----".join()连接 以-----连接
b="tar.gz.yhl"
c=b.split(".")
print(c)
print("+++++++++++++++++++++++++++++++++++++++++++===")
print("******".join(c))
列表增加元素
a.append(元素)
a.insert(索引位置,元素)
a.extend(新列表) a.append([100,200]) a.extend([100,200])
extend会把列表拆开 在逐个添加进去尾部 append会当作一个整体添加进去
列表增加元素
a.remove(元素)
a.pop()弹出列表尾部的元素,并将删除的元素返回(末尾淘汰)
a.pop(位置索引)
del a[1]通用删除方式,直接删除下标为1 的元素
a.clear() 清空列表
列表的统计排序
list.count(obj) # obj出现的次数
a.reverse()#反转 a[::-1]也可实现反转
a.sort()#排序,默认升序
a.sort(reverse=True)降序
a=[2,1,4,3,5]
a.sort()
print(a)
a.reverse()
print(a)
元组tuple
通过()创建 列表是[] 字典是{}
元组是有序的 不可变得类型
一般存储不应该被修改的一系列值
如果创建的是一个单个元素的元组 需要在单个元素后面加一个逗号
tuple02=("123")
tuple03=("123",)
print(tuple02,type(tuple02))
print(tuple03,type(tuple03))
#结果: 123 <class 'str'>
#('123',) <class 'tuple'>
字典dict
除列表外最灵活的 {}来表示
列表是有序的 字典是无序的
字典用来存储多个数据 描述一个物体的相关信息
主要用于数据查询
存储的是一个键值对
键是唯一的(描述性信息)不可变
默认值 =NONE 可自定义缺口
字典[key] 若key不存在会报错
字典.get()如果字典中有这个键则返回值 不存在返回定义的default的值
score={"a":123,"b":456}
print(score["b"])
print(score.get("c","xxxx")) 默认None 我们这里添加一个自己的提示就好
字典.keys() #获取所有键列表
字典.values() #获取所有值列表
字典.items() #获取所有键值列表
返回的是一个列表
print(score.keys())
print(score.values())
print(score.items())
#返回的是一个列表
字典的添加/修改
字典[key]=value key在原字典有则修改 没有则添加
字典.update(新字典)key在原字典存在则修改 ,没有则添加
字典.pop(key) 根据key删除kv对 并将该key对应的value返回
字典的删除
del 数据 常规删除方式
字典.clear 清空字典
通过字典登录注册的案例
userdb={"zs":"123","ls":"456"}
#注册
def register():
user=input("输入用户名:")
if user not in userdb.keys():
passwd = input("输入密码:")
userdb[user]=passwd
print("用户添加成功")
else:
print("用户名已存在啊请重新输入")
#验证登录
def login():
user = input("输入用户名:")
passwd= input("输入密码:")
#if user in userdb.keys() and userdb.get(user) == passwd:
if (user,passwd) in userdb.items():
print("用户登录成功")
register()
else:
print("用户登录失败")
#菜单
def show_menu():
while 1:
print("1.登录\n2.注册\n3.退出")
n=input("请输入你选择的事情:")
if n not in ["1","2","3"]:
print("按照套路出牌")
elif n=="1":
login()
elif n=="2":
register()
else:
print("bye~!")
break
if __name__ == '__main__':
show_menu()
总结
列表
有序:顺序索引 切片
可变
增(append insert extend)
删(remove pop del clear)
改( 定位 修改 list01[1]=15)
翻转 (reverse 排序sort sort(reverse=True))
元组
不可变的列表
有序 顺序索引 切片
不可变 不能进行增删改查
单个元素后面需要加,
字典-------以空间换时间
key特性(无序 不能重复 必须是不可变的元素)
无序 字典[key] 字典.get(。。。)
可变:
增加/修改:字典 [key]=value 字典.update(...)
删除 pop del clear
你需要知道
1 获取字典adict['name']的值,如果没有找到,则返回'Not Found'
adict.get("name","Not Found")
2 遍历字典adict,通过两种方法取出字典的key和value。
for i in adict:
print(f"{i}:{adict[i]}")
for item in adict.items():
print(f"{item[0]}: {item[1]}")
3 aset和bset是两个可变集合,举例说明什么是交集、并集和差补。
& | -
4 ('hello')是哪种数据类型
字符串
5 列表根据不同的分类方式,都属于哪些类型?
按照存储模型 属于容器类
按照更新模型 属于可变
按照访问模型 序列类型