Python协程
迭代器
术语解释
迭代:迭代表示在原有已存在的事物上追加新的东西
迭代器:迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不能后退
作用
迭代器的存在可以改变传统数据调用的方式(先存后取,占用大量空间),而是变为存储数据生成的规则,这样极大的减少了对内存的消耗
可迭代对象
可迭代数据类型:
字符串、列表、元组、字典、集合
检查对象是否可迭代
1234# 利用isinstance(a, b)判断a对象是否由b类创建,是则返回True,否则返回Falsefrom collections.abc import Iterablelist_name = [1, 2, 3, 4]result = isinstance(list_name, Iterable)
12345678910111213141516171819# 判断一个对象是否可迭代(可迭代对象中必须包含__iter__私有方法)from collections.abc import Iterableclass Classmate(object): def ...
变量的使用和定义
变量的使用和定义知识点定义变量12345# 变量使用前必须赋值,赋值后的变量才会被创建# 程序执行完成后,就会从内存中清除变量# python解释器会自动的推导出变量的类型# python中变量区分大小写# 变量格式:变量名 = 变量值
变量的内容12345# 内存中存储变量时,会记录以下信息:# 变量的名称# 变量保存的数据# 变量存储数据的类型# 变量的地址(标识)
12# 查看变量的类型type(变量名)
变量的命名12# 为了保证代码可读性,= 号两边各保留一个空格# 如果局部变量名由多个单词组成,则每个单词都用小写字母,且单词与单词之间用_链接
变量的计算
变量的计算知识点输入&输出123# input传入的都是字符串类型变量名 = input(提示信息)print(输出信息)
数据转换
函数
说明
int(x)
将x转换为整数
float(x)
将x转换为浮点数
格式化输出
字符
含义
%s
字符串
%d
有符号十进制整数,%06d表示输出的整数显示位数,不足的地方用0表示
%f
浮点数,%.2f表示小数点后只显示两位
%%
输出%
1print("%s" % shuai)
关键字12import keywordprint(keyword.kwlist)
作业
在pycharm中创建文件test.py,编写如下需求:
提醒用户输入任意字符,提示语为:”请输入信息”
打印出用户输入的数据,并打印出其类型
在第一题的基础上,修改需求如下:
提醒用户输入数字1-9,提示语为:”请输入整数”
然后将用户输入的整数转换为整数类型,并输出
之后将用户输入的数字转换为小数类型,并格式化输出其数据
(问答)请根据如下列出的要求写出其对应的格式化输出字符是什么
小数点后 ...
变量的存储解读
变量高级知识点备注:变量、数据均保存在内存中,函数的参数传递、返回值都是靠引用传递的
引用1234# 在python中,变量和数据是分开保存的# 数据保存在内存中的一个位置,可以用id(变量名)查询到# 变量保存着数据在内存中的地址,这就叫做引用# 当对一个已存在的变量进行赋值时,本质上只是修改了该变量名对数据的引用
可变、不可变类型123456# 可变类型:列表、字典# 不可变类型:数字类型、字符串、元组# 字典的key:必须是不可变类型(数字类型、字符串、元组)# 可变意味着可以修改内存中数据的内容,而数字、字符串、元组无法修改。# 而列表、字典即使定义以后,依然可以修改其内存中存储的数据内容
科普:
python中,创建字典内容的数据时,会首先对键值对的key进行hash,以决定如何在内存中保存字典中的数据,便于后期的数据修改
hash:是python中内置的一个函数(hash(变量值)),允许接受一个不可变类型作为参数,然后返回一个整数(提取的数据的特征码)。通过hash得到的结果,如果是相同的输入,则得到相同的输出,反之得到不同的结果
作业
(问答)python中,变 ...
Python字典
字典知识点定义1234567# 字典用{}定义# 一个字典通常存储描述一个物体的相关信息diractory = { "key1":"值", "key2":['值'], # ...}
123456# 字典使用键值对存储数据,键值对之间用,分割# 键(key)是索引# 值(value)是数据# 键和值之间用:隔开# 键必须是唯一的# 值可以取任何数据类型,但键只能是字符串、数字、元组
取值1diractory["key值"]
增加、修改1234# 追加值diractory["新值的key"] = 值# 修改值diractory["修改的key"] = 值
删除12# pop:删除指定key值的数据diractory.pop("要删除的key")
统计1len(diractory)
合并字典12# update:将其它字典追加到当前字典中,若当前字典中的键值对已存在 ...
Python字符串
字符串知识点统计&定位123456# 统计字符串中字符的个数len(str_name)# 统计字符串中子字符串出现的次数str_name.count("字符串")# 定位字符串中子字符串出现的位置str_name.index("字符串")
判断类型
方法
说明
str_name.isspace()
判断是否只包含空格,返回true
str_name.isalnum()
若字符中至少有一个字符,且所有字符均为字母/数字,则返回true
str_name.isalpha()
若字符中至少有一个字符,且均为字母则返回true
str_name.isdecimal()
若字符中均为数字则返回true(全角数字)
str_name.isdigit()
若字符中只包含数字则返回true(全角数字、(1)、\u00b2)
str_name.isnumeric()
若字符中只包含数字则返回true(全角数字、汉字数字)
str_name.istitle()
若字符为**标题化(每个单词的首字母大写)**,则返回true ...
容器类型和公共方法
容器类型和公共方法知识点备注:容器指字符串、列表、元组、字典,因为他们都可以包裹其它的数据
内置函数
函数
作用
len(容器)
计算容器中元素的个数
del(容器)
删除变量
max(容器)
返回容器中的最大值,若是字典,只会返回key值
min(容器)
返回容器中的最小值,若是字典,只会返回key值
比较运算符
比较运算符同样适用于字符串、列表、元组的比较,但是不适用于字典
切片
方法
作用
容器[开始索引:结束索引:步长]
对容器中的数据进行切片操作,适用于字符串、列表、元组
运算符
运算符
作用
支持的数据类型
+
拼接两个容器的内容
字符串、列表、元组
*
将容器内容重复指定的次数
字符串、列表、元组
in
元素是否存在,操作字典时判断key
字符串、列表、元组、字典
not in
元素是否不存在,操作字典时判断key
字符串、列表、元组、字典
>, <, <=…
元素比较
字符串、列表、元组
完整for循环12345# else使用的场景:当我们遍历完容器后都没有找到需要的数据,此时 ...
局部和全局变量
局部、全局变量知识点局部变量12# 局部变量是定义在函数内部的变量,只能在函数内部进行调用# 函数执行完成后,函数内部的变量就会被系统回收掉(只是变量名回收了)
全局变量123# 在函数内部通过使用赋值语句尝试修改全局变量,只会创建一个与全局变量同名的局部变量,而无法修改全局变量的值# 如果希望在函数修改全局变量的值,则需要通过global关键字重新声明一个这个变量global [变量名]
12# 在开发时,可以将所有的全局变量定义在所有函数的上方# 全局变量的命名:最好以g_、gl_开头
代码结构:
作业
(问答)在函数内部创建的变量,在函数调用完成以后,其函数内部的变量会被回收,请问此处的变量回收是指什么
(问答)在python中,是无法对全局变量的赋值进行修改的,如果一定想要修改全局变量,其方式是什么
(问答)定义全局变量时,建议的命名方式是什么样的