Python快速入门(六)高级函数2:字典、字符串、for语法
前言:继续上一章《 Python快速入门(五)高级函数1:列表、del关键字、元组》的高级函数,这次主要是字典的定义、基本使用、遍历,字符串的定义、遍历、统计、判断、查找和替换、文本对齐、拆分和拼接等
1.字典的定义
- 字典:是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的。
代码:
fly = {"name": "fly",
"age": 18,
"gender": True,
"height": 180,
"weight": 70.5}
print(fly)
输出:
2.字典的基本使用
- 主要分取值、增加/修改、删除。
- 注意1:在取值的时候,如果指定的key不存在,程序会报错!
- 注意2:在增加/修改的时候,如果key不存在,会新增键值对如果key存在,会修改已经存在的键值对
- 注意3:在删除指定键值对的时候,如果指定的key不存在,程序会报错.
代码:
fly_dict = {"name": "飞"}
# 取值
print(fly_dict["name"])
# 增加/修改
fly_dict["age"] = 18
fly_dict["name"] = "小飞"
print(fly_dict)
# 删除
fly_dict.pop("name")
print(fly_dict)
输出:
3.字典的其他操作
- 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
代码:
fly_dict = {"name": "飞", "age": 20}
# 统计键值对数量
print(len(fly_dict))
# 合并字典
temp_dict = {"height": 180.5, "age": 20}
fly_dict.update(temp_dict)
print(fly_dict)
# 清空字典
fly_dict.clear()
print(fly_dict)
输出:
4.字典的遍历
- 注意:迭代遍历字典,变量k是每一次循环中,获取到的键值对的key。
代码:
fly_dict = {"name": "飞","qq": "123456","phone": "10086"}
for k in fly_dict:
print("%s---%s" % (k, fly_dict[k]))
输出:
5.字典的应用场景
- 使用多个键值对,存储描述一个物体的相关信息,可以描述更复杂的数据信息。
- 将多个字典 放在一个列表中然后再进行遍历。
代码:
card_list = [
{"name": "fly1",
"qq": "12345666",
"phone": "10086"},
{"name": "fly2",
"qq": "54321000",
"phone": "10010"}
]
for card_info in card_list:
print(card_info)
输出:
6.字符串定义和遍历
代码:
str1 = "hello python"
print(str1)
print(str1[2])
for char in str1:
print(char)
输出:
7.字符串统计
- 注意:如果使用index方法传递的子字符串不存在,程序会报错!
代码:
hello_str = "hello hello"
# 统计字符串长度
print(len(hello_str))
# 统计某一个小(子)字符串出现的次数
print(hello_str.count("llo"))
print(hello_str.count("abc"))
# 某一个子字符串出现的位置
print(hello_str.index("llo"))
输出:
8.字符串判断
代码:
# 判断空白字符
space_str = " \t\n\r"
print(space_str.isspace())
# 中文数字
num_str = "一千零一"
print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())
输出:
9.字符串查找和替换
代码:
hello_str = "hello world"
# 判断是否以指定字符串开始
print(hello_str.startswith("Hello"))
# 判断是否以指定字符串结束
print(hello_str.endswith("world"))
# 查找指定字符串
# 注意:index同样可以查找指定的字符串在大字符串中的索引
print(hello_str.find("llo"))
# 注意:index如果指定的字符串不存在,会报错
# 注意:find如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))
# 替换字符串
# 注意:replace方法执行完成之后,会返回一个新的字符串
# 注意:不会修改原有字符串的内容
print(hello_str.replace("world", "python"))
print(hello_str)
输出:
10.字符串文本对齐
- 先使用strip方法去除字符串中的空白字符
- 再使用center方法居中显示文本
代码:
poem = ["\t\n登鹳雀楼",
"王之涣",
"白日依山尽\t\n",
"黄河入海流",
"欲穷千里目",
"更上一层楼"]
for poem_str in poem:
print("|%s|" % poem_str.strip().center(10, " "))
输出:
11.字符串拆分和拼接
代码:
poem_str = "登鹳雀楼\t 王之涣 \t 白日依山尽 \t \n 黄河入海流 \t\t 欲穷千里目 \t\t\n更上一层楼"
print(poem_str)
# 拆分字符串
poem_list = poem_str.split()
print(poem_list)
# 合并字符串
result = " ".join(poem_list)
print(result)
输出:
12.for语法
- 注意:如果循环体内部使用break退出了循环,else 下方的代码就不会被执行。
代码:
for num in [1, 2, 3, 4]:
print(num)
if num == 3:
break
else:
print("不会执行!")
print("循环结束")
输出:
13.遍历字典的列表
代码:
students = [
{"name": "fly1"},
{"name": "fly2"}
]
# 在学员列表中搜索指定的姓名
find_name = "fly"
for stu_dict in students:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到---%s" % find_name)
# 如果已经找到,应该直接退出循环,而不再遍历后续的元素
break
else:
print("抱歉没有找到 %s" % find_name)
print("循环结束")
输出:
结束!下节再见!!!