不定长参数:
*args 用来将参数打包成tuple给函数体调用, 输出结果以元组的形式展示
**kwargs 打包关键字参数成dict给函数体调用,输出结果以列表形式展示
匿名函数
lambda表达式
格式:
lambda 参数1, 参数2: 结果表达式
list = ['orange','apple','zoo','internationalization','blueberry']
print(sorted(list,key = lambda x:len(x)))
- 全局变量:global 变量
模块
- 定义:
为了解决难以维护的问题,可以把很多相似功能的函数分类,分别放到不同的文件中,这样每个文件所包含的内容相对较少。一个py文件就是一个模块
__name__属性
__main__是程序的入口, 当__name__ == '__main__'的时候, 表示自身调用函数, 不会被其他模块引入
导入第三方模块
- import XXX
- from XXX import xxx
- from XXX import * 效果等同于第一个
字符串
计算字符串长度:len()
字符串首字母大写:.capitalize()
字符串变大写:.upper()
字符串中查找子符串所在位置:.find().index()与find类似但找不到子串时会引发异常
检查字符串是否以指定的字符串开头:.startswith()
检查字符串是否以指定的字符串结尾:.endswith()
将字符串以指定的宽度居中并在两侧填充指定的字符:.center()
将字符串以指定的宽度靠右放置左侧填充指定的字符:.rjust()
检查字符串是否以字母构成:.isalpha()
检查字符串是否由数字构成:.isdigit()
检查字符串是否以数字和字母构成:.isalnum()
字符串修剪左右两侧空格:.strip()
分割字符串: 变量的数量要和分割后的数量对等, 不写分割条件则默认为空格
a,b,c = ‘23.45.06’.split(’.’)
例子
import requests
response = requests.get('http://news.baidu.com/')
response.encoding = 'utf-8'
HTML = response.text
for line in HTML.split('\n'):
if '<a' in line and 'http' in line:
splits = line.split('"')
for s in splits:
if 'http' in s and 'background-image' not in s:
print(s)
列表
- 定义: 以"[]"包裹的内容, 其中可以存放多个元素, 每个元素用逗号隔开, 其中的元素可以是不同的类型
特点:
- 列表是可变类型
- 列表中可以存放相同的元素
计算列表长度(元素个数):len()
添加元素:.append() .insert()
删除元素:.remove()
清空列表元素:.clear() 清除了列表中的元素, 列表仍然存在
获取列表中的元素(查):根据下标获取, 下标从0开始, 不能越界
- 用列表的生成表达式语法创建列表容器
用这种语法创建列表之后元素已经准备就绪所以需要耗费较多的内存空间
f = [x for x in range(1, 10)]
print(f)
例子
# 随机点名
import random
def Name ():
Names = ['zwk','zjj',gxj','wxm']
name = random.choice(Names)
print(name)
Name()
元组
- 定义: 一种有序的集合(元组中的元素不可以被增加,修改或删除)
特点:
- 与列表类似;
- 不可变类型, (元组中的元素不可以被增加,修改或删除);
- 使用小括号;
- 如果元组中的元素是可变类型, 则该元素的子元素可以修改
-
创建元组
空元组: tuple = ()
只有一个元素的元组::需要加上逗号:tuple = (23, ) -
在元组中查询元素
根据下标查询数据
格式:元组名[下标]
将列表转换成元组
fruits_list = ['apple', 'banana', 'orange']
fruits_tuple = tuple(fruits_list)
print(fruits_tuple)
将元组转换成列表
t = ('骆昊', 38, True, '四川成都')
person = list(t)
print(person)
集合
- 定义: 与字典类似, 一组key的集合, 没有value
特点:
- 无序;
- 不可重复;
- 可以用来去除重复的元素;
- 空的集合是字典类型;
- 不能直接修改其中的元素;
- 如果一个元素原来就在某个集合中, 则无法再次添加该元素
添加多个元素(更新): .update
删除元素(删): .remove
交集(&): 求相同部分
并集(|)::合并两个集合
字典
定义:
- 以"{}"包裹元素;
- 以key-value(键值对)的形式存储元素;
- 以key:value表示一个元素, 元素之间用逗号隔开
特点:
4. 字典本身是可变类型
5. 极快的查找速度;
6. key具有唯一性;
7. key具有无序性;
8. key需要不可变数据类型(字符串, 数字);
9. 当key重复的时候, 只保留一个, 自动舍弃其他值
在字典中添加元素(增)
格式:
字典名[key]=值
当key不存在的时候, 添加一个新元素
当key存在的时候, 则修改该key对应的值
在字典中删除元素(删):根据key来删除值
格式:
字典名.pop(key)
删除指定的元素, 如果key不存在则程序报错
在字典中查找元素(查)
通过key值获取:
格式:
字典名[key]
如果没有对应的key, 则程序报错
通过get的方式访问
格式:
字典名.get(key)
如果key不存在, 则返回None
遍历字典
dict1 = {'tom': 12, 'helen': 23, 'leo': 24}
for key in dict1:
print(key, dict1[key])
清空字典:.clear()
与list对比
list:插入和查询速度比较慢,随着元素个数的增加会对查找速度产生过大的影响;占用较小内存,内存浪费少
dict:插入和查询速度比较快,随着元素个数的增加不会对查找速度产生过大影响;占用较大内存,内存浪费多