目录
一、str字符串
1. 字符串的概念
2.字符串的特点
3. 定义字符串
4. 获取字符串中的某个元素
5. 遍历字符串
6. 字符串的常用方法
6.1 判断
6.2 转换
6.3 查找
6.4 切割
6.5 去空白
7. 小案例【用户名和密码合法校验】
8. 常用方法中 isdecimal() 和 isdigit() 的区别
isdigit():
isdecimal():
总结:
二、set集合
1. 集合的概念
2. 集合的特点
3. 集合的创建
4. 集合的应用
5. 集合的常用方法
6. 集合的遍历
三、dict字典
1. 字典的概念
2. 字典的定义
3. 字典增删改查
4. 字典的遍历
一、str字符串
1. 字符串的概念
- 字符串是由多个字符组成的序列 - 是编程语言中表示文本的数据类型
2.字符串的特点
- 字符串是不可变的 - 字符串是可以被索引的 - 字符串是可以被切片的 - 字符串是可以被重复的 - 字符串是可以被连接的 - 字符串是可以被格式化的
3. 定义字符串
# 1. 定义字符串
# 定义字符串的三种方式
# 1. 使用双引号
string_both = "hello world"
# 2. 使用单引号
string_single = 'hello world'
# 3. 使用三引号
string_three = """
hello world
"""
4. 获取字符串中的某个元素
语法: 字符串[索引]
# 语法: 字符串[索引]
# 2.1 找到字符串中第一个元素
print(string_both[0])
# 2.2 找到字符串中最后一个元素
print(string_both[-1])
# 2.3 找到字符串中第二个元素
print(string_both[1])
# 2.4 找到字符串中倒数第二个元素
print(string_both[-2])
5. 遍历字符串
for i in string_both:
print(i)
6. 字符串的常用方法
6.1 判断
- isalnum() 判断是否为字母或数字 - isalpha() 判断是否为字母 - isdecimal() 判断是否为数字 - isdigit() 判断是否为数字 - isspace() 判断是否为空白 - startswith() 判断是否以某个字符串开头 - endswith() 判断是否以某个字符串结尾
示例代码:
# 4.1 判断
# 4.1.1 判断是否为字母或数字
print(string_both.isalnum())
# 4.1.2 判断是否为字母
print(string_both.isalpha())
# 4.1.3 判断是否为数字
print(string_both.isdecimal())
# 4.1.4 判断是否为数字
print(string_both.isdigit())
# 4.1.5 判断是否为空白
print(string_both.isspace())
# 4.1.6 判断是否以某个字符串开头
print(string_both.startswith("hello"))
# 4.1.7 判断是否以某个字符串结尾
print(string_both.endswith("world"))
6.2 转换
- lower() 转换为小写 - upper() 转换为大写 - capitalize() 首字母大写 - title() 首字母大写,其他单词首字母大写 - swapcase() 大写转小写,小写转大写
示例代码:
# 4.2 转换
# 4.2.1 转换为小写
print(string_both.lower())
# 4.2.2 转换为大写
print(string_both.upper())
# 4.2.3 首字母大写
print(string_both.capitalize())
# 4.2.4 首字母大写,其他单词首字母大写
print(string_both.title())
# 4.2.5 大写转小写,小写转大写
print(string_both.swapcase())
6.3 查找
- find() 查找某个字符串的位置 - rfind() 查找某个字符串的最后位置 - index() 查找某个字符串的位置,如果没有则报错 - rindex() 查找某个字符串的最后位置,如果没有则报错 - count() 查找某个字符串出现的次数
示例代码
# 4.3 查找
# 4.3.1 查找某个字符串的位置
print(string_both.find("hello"))
# 4.3.2 查找某个字符串的最后位置
print(string_both.rfind("hello"))
# 4.3.3 查找某个字符串的位置,如果没有则报错
print(string_both.index("hello"))
# 4.3.4 查找某个字符串的最后位置,如果没有则报错
print(string_both.rindex("hello"))
# 4.3.5 查找某个字符串出现的次数
print(string_both.count("hello"))
6.4 切割
- split() 切割字符串
示例代码:
# 4.4 切割
# 4.4.1 切割字符串
print(string_both.split(" "))
6.5 去空白
- strip() 去除两端空白 - lstrip() 去除左端空白 - rstrip() 去除右端空白
示例代码:
# 4.5 去空白
# 4.5.1 去除两端空白
print(string_both.strip())
# 4.5.2 去除左端空白
print(string_both.lstrip())
# 4.5.3 去除右端空白
print(string_both.rstrip())
7. 小案例【用户名和密码合法校验】
需求 ● 用户名和密码格式校验程序 ● 要求从键盘输入用户名和密码,分别校验格式是否符合规则 ○ 如果符合,打印用户名合法,密码合法 ○ 如果不符合,打印出不符合的原因,并提示重新输入 ● 用户名长度6-20,用户名必须以字母开头 ● 密码长度至少6位,不能为纯数字,不能有空格 分析: 1.从键盘输入用户名(需要while循环) 2.长度6-20 3.必须字母开头 4.输入密码(while循环) 5.密码长度至少6位 6.不能为纯数字 7.不能有空格
代码实现:
# 5. 小案例:用户名和密码合法校验
# 校验用户名
while True:
username = input("请输入用户名:")
# 判断用户名的长度是否在 6 - 20 之间
if 6 <= len(username) <= 20:
# 判断用户名首字符是否是字母
if username[0].isalpha():
print("合格")
break
else:
print("用户名首字符必须是字母")
else:
print("密码长度不正确")
# 校验密码
while True:
password = input("请输入密码:")
# 判断密码的长度
if 6 <= len(password):
# 密码不能为纯数字
if not password.isdecimal():
# 密码不能有空格
if " " not in password:
print("合格")
break
else:
print("密码不能有空格")
else:
print("密码不能为纯数字")
else:
print("密码长度至少是6位")
运行结果:
8. 常用方法中 isdecimal() 和 isdigit() 的区别
isdigit():
这个方法检查字符串是否只包含数字字符。 它基于ASCII字符集,因此只识别0-9之间的字符为数字。 对于其他Unicode数字字符(如全角数字或其他语言的数字字符),isdigit() 会返回 False。
isdecimal():
这个方法也是检查字符串是否只包含数字字符,但是它更加宽松。 它识别任何Unicode数字字符,包括全角数字、罗马数字、分数和其他语言的数字字符。 基本上,只要字符在Unicode中被归类为数字,isdecimal() 就会返回 True。
总结:
如果你想检查一个字符串是否只包含ASCII数字(0-9),那么使用 isdigit()。
如果你想检查一个字符串是否包含任何Unicode数字字符,那么使用 isdecimal()。但是,要注意其可能存在的行为差异,并确保它在你的应用场景中表现如预期。
二、set集合
1. 集合的概念
- 集合是一种无序不重复元素的聚合,本质是一种数据结构。 - 集合常用于存储一组数据,但不关心数据的顺序。
2. 集合的特点
- 集合中的元素都是唯一的,不能出现重复的数据。 - 集合中的元素是无序的,没有添加顺序。
3. 集合的创建
- 创建空集合:set() - 创建有元素的集合:{元素1, 元素2, ...}
示例代码:
# 1.set集合的创建
# 1.1 创建空集合
s1 = set()
print(s1)
# 1.2 创建有元素的集合
s2 = {"张三", "李四", "王二", "麻子", "赵能"}
print(s2)
4. 集合的应用
- 去重:去除列表中的重复数据。
示例代码:
# 2.set集合的应用
# 2.1 去重
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(l1)
5. 集合的常用方法
- 添加元素:add() - 删除元素:remove()、discard()、pop() - 判断元素是否存在:in、not in - 获取集合元素个数:len() - 清空集合:clear() - 并集:union() - 交集:intersection() - 差集:difference() - 对称差集:symmetric_difference() - 集合转换为元组:tuple() - 集合转换为列表:list()
示例代码:
# 3.set集合的常用方法
# 3.1 添加元素
s1.add("张三")
s1.add("李四")
s1.add("王二")
s1.add("麻子")
s1.add("赵能")
print(s1)
# 3.2 删除元素
s1.remove("麻子") # 删除元素,如果元素不存在,报错
s1.discard("赵能") # 删除元素,如果元素不存在,不报错
print(s1.pop()) # 随机删除元素,并返回删除的元素 如果集合为空,报错
print(s1)
# 3.3 判断元素是否存在
print("麻子" in s2)
print("赵六" in s2)
# 3.4 判断元素是否不存在
print("麻子" not in s1)
print("张三" not in s1)
# 3.5 获取集合元素个数
print(len(s1))
# 3.6 清空集合
s1.clear()
print(s1)
# 3.7 并集
s3 = {6, 7, 8, 9, 10}
s4 = {1, 2, 3, 4, 5}
print(s3.union(s4))
# 3.8 交集
print(s3.intersection(s4))
# 3.9 差集
print(s3.difference(s4))
# 3.10 对称差集
print(s3.symmetric_difference(s4))
# 3.11 集合转换为元组
print(tuple(s3))
# 3.12 集合转换为列表
print(list(s3))
6. 集合的遍历
- 遍历集合:for item in 集合:
示例代码:
# 4.set集合的遍历
for item in s6:
print(item)
三、dict字典
1. 字典的概念
dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型,类型为dict ● 字典同样可以用来存储多个数据 ● 字典使用键值对存储数据
2. 字典的定义
语法格式: 字典 = {key1: value1, key2: value2, key3: value3} 注意: ● 字典的键必须是唯一的 ● 字典的键必须是不可变对象 ● 字典的键可以是数字,字符串,元组 ● 字典的键可以是任意数据类型
示例代码:
# 1. 字典的定义
dic = {"name": "张三", "age": 18, "gender": "男", "phone": "18888888888"}
3. 字典增删改查
对于添加和修改来说,key没有就是添加,key有就是修改 ● 添加 dict[key] = value ● 修改 dict[key] = value ● 查询 dict[key] ● 删除 ● 删除元素 并且不返回删除元素的值 如果删除不存在会报错 del dict[key] ● 删除元素 并且返回删除元素的值 如果删除不存在会报错 dict.pop(key) ● 清空 ● 清空字典 dict.clear()
示例代码:
# 2. 字典增删改查
# 2.1 添加
dic["address"] = "北京"
print("添加成功", dic)
# 2.2 修改
dic["name"] = "李四"
print("修改成功", dic)
# 2.3 查询
print("查询成功", dic["name"])
# 2.4 删除
# poo() pop 删除元素 并且返回删除元素的值 如果删除不存在会报错
dic.pop("name")
print("pop删除成功", dic)
# del 删除元素 并且不返回删除元素的值 如果删除不存在会报错
del dic["age"]
print("del删除成功", dic)
# clear 清空字典
dic.clear()
print("clear清空成功", dic)
运行结果:
4. 字典的遍历
● 遍历字典的key for key in dict: print(key) for key in dict.keys(): print(key) ● 遍历字典的value for value in dict.values(): print(value) for value in dict: print(dict[value]) ● 遍历字典的key-value for key, value in dict.items(): print(key, value) for key in dict: print(key, dict[key])
示例代码:
# 3. 字典的遍历
dic = {"name": "张三", "age": 18, "gender": "男", "phone": "18888888888"}
# 3.1 遍历字典的key, 下面两种方法同等
for key in dic:
print("key:", key)
for key in dic.keys():
print("key:", key)
# 3.2 遍历字典的value, 下面两种方法同等
for value in dic.values():
print("value:", value)
for value in dic:
print("value:", dic[value])
# 3.3 遍历字典的key-value, 下面两种方法同等
for key, value in dic.items():
print("key:", key, "value:", value)
for key in dic:
print("key:", key,"value:", dic[key])