重要内置函数、常见内置函数(了解)、可迭代对象、迭代器对象、for循环原理、异常捕获
一、重要内置函数
1. zip
说白了就是压缩几组数据值,说细了就是将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,一般会用
list
或dict
方法输出为对应的类型,当对象为多个的时候,会根据数据值最少的那个参数为输出的个数,多余的部分就不会输出了
# zip
l1 = [11,22,33,44,55]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1,2,3,4,5]
res = zip(l1,l2,l3)
print(list(res))
# [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3), (44, 'jerry', 4), (55, 'tony', 5)]
l1 = [11,22,33]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4]
res = zip(l1, l2, l3)
print(list(res))
# [(11, 'jason', 1), (22, 'kevin', 2),(33, 'oscar', 3)]
当我们使用zip方法压缩后还可以解压,使用方法为:zip(*+变量名):
aa = [(1,2), (2,3), (3,4)]
a, b = zip(*aa)
print(a)
print(b)
(1,2,3)
(2,3,4)
2. filter
filter
函数是筛选的意思:此函数会将可迭代对象中的每一位元素作为参数传递到func
中,如果结果为True
,则将此元素添加到结果列表中,filter
()返回的结果是一个新的列表
表现形式:filter(func,iterable)
其中func
为函数名,可为lambda
匿名函数,iterable
为可迭代对象
# filter
l1 = [11,22,33,44,55,66,77,88]
res = filter(lambda x: x > 40, l1)
print(list(res))
# [44,55,66,77,88]
这里
filter
函数在匿名函数的作用下达成的功能是判断列表l1中的值,如果根据匿名函数的条件得出这个数据值大于40就把记录到结果中用res
输出结果
3.sorted
sort
方法大家一定很眼熟,他是列表的升序排列,到了内置函数sorted
中也一样的作用
表现形式:sorted(iterable,key=None,rever=False)
iterale
-可迭代对象
key
-主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取决自于可迭代对象中,指定可迭代对象中的一个元素来进行排序,(说白了就是弄个函数加了条件)
reverse
-排序规则,reverse
=True
降序,reverse = False
升序(默认)
# sorted
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res) # 默认升序
# [11,12,21,22,32,53,64,76]
下面是key加入函数的例子:
b = {1: 'ab', 2:'degg', 4:'ght',9:'d'}
res1 = sorted(b.items(), key=lambda i: i[0]) # 指定按字典里面的键排序
print(res1)
[(1,'ab'),(2,'degg'),(4,'ght'),(9,'d')]
res2 = sorted(bitems(), key=lambda i: len(i[1])) # 指定按字典里面的value长度排序,默认从小到大
print(res2)
[(9, 'd'), (1, 'ab'), (4, 'ght'),(2, 'degg')]
res3 = sorted(b.items(), key=lambda i: len(i[1]), reverse=True) # 指定按字典里的value长度排序,同时进行翻转,即按value的长度从大到小排序
print(res3)
[(2, 'degg'), (4, 'ght'). (1, 'ab'), (9, 'd')]
二、常见内置函数(了解)
1.abs
abs
的作用很好理解,就是把数值变成绝对值,也就是变成正数
print(abs(-100))
print(abs(100))
# 100
# 100
2.all
对条件进行判断,如果给定的所有条件都对就返回
True
,否则就返回False
,可以和and
的作用放一起记忆
3.any
对条件进行判断,如果给定的条件里面有一个对就返回
True
,都错的时候返回False
,可以和or
的作用放一起记忆
4.bytes
相当与
encode
的作用,对给定的数据值进行编码,会转换成bytes
(二进制类型)
s1 = '今天周五 内容也很简单'
print(s1.encode('utf8'))
print(bytes(s1, 'utf8'))
# b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94 \xe5\x86\x85\xe5\xae\xb9\xe4\xb9\x9f\xe5\xbe\x88\xe7\xae\x80\xe5\x8d\x95'
# b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94 \xe5\x86\x85\xe5\xae\xb9\xe4\xb9\x9f\xe5\xbe\x88\xe7\xae\x80\xe5\x8d\x95'
5.bin、oct、hex、int
进制转换的函数,分别是:二进制、八进制、十六进制、十进制
6.callable
用于判断这个变量名加了括号是不是就能调用了,返回的结果是布尔值
name = 'jason'
def index():
print('form index')
print(callable(name)) # False
print(callable(index)) # True
7、chr、ord
根据
ASCII
对应的数值或是根据字符对应的数据值返回结果,chr
是根据数值返回字符,ord
是根据字符返回数据值
8、dir
我们可以通过这个函数查看括号内的对象能调用的方法或函数
print(dir('hello'))
9、divmod
对数值进行整除,并且可以获得余数
res = divmod(100, 2)
print(res) # (50, 0)
res = divmod(100, 3)
print(res) # (33, 1)
前面的结果时整除的结果,后面是余数
10、enumerate
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般结合for循环使用(可以人为指定下表开始的数据值):
print(list(enumerate(["a", "b", "c"])))
[(0, 'a'), (1, 'b'), (2, 'c')]
11、eval和exec
两种函数都是一个作用:把字符串的代码运行
其中eval
只能运行一些简单的代码
exec
可以运行复杂一些的代码,比如开个for
循环
s1 = 'print("哈哈哈")'
eval(s1)
exec(s1)
s2 = 'for i in range(100):print(i)'
eval(s2) # 只能识别简单的python代码 具有逻辑性的都不行,这里会报错
exec(s2) # 可以识别具有一定逻辑性的python代码
12、hash
使用哈希算法对数据值进行加密
print(hash('jason'))
# 6504587676088172780
13、id、input、isinstance
id
返回对象的唯一标识符,标识符是一个整数(返回对象的内存地址)
input
用于接收外界输入的信息
isinstance
判断一个对象是否是一个已知的类型,类似type()
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
14、map、max、min
map(函数名, 要遍历的数据) # 内部本质就是for循环,再记住两个参数的位置和作用
max # 求出列表中最大值
# l = [1, 2, 10, 30, 5, 6, 7, 8]
# print(max(l))
min # 求出最小值
# print(min(l))
15、open
> 用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写,在之前问文本编辑知识点可以找到详细操作方法,这里就举个例子:
```python
with open() as f1:
pass
f2 = open()
16、pow
返回
xy
(x的y次方) 的值
pow(x, y[, z])
17、range
之前讲for循环的时候介绍过,作用是生成一个工厂,生成数据,python2和python3中的作用有所区别
python2
中的xrange
和python3
的range
作用一样
18、round
对数值进行四舍五入,但是不太准确,可能是五舍六入
19、sum
sum(list)
: 求取list
元素的和
三、可迭代对象
1.可迭代对象
对象内置有__iter__方法的都称为可迭代对象
"""
1.内置方法 通过点的方式能够调用的方法
2.__iter__ 双下iter方法
"""
2.可迭代对象的范围
不是可迭代对象
int float bool 函数对象
是可迭代对象
str list dict tuple set 文件对象
3.可迭代的含义
"""
迭代:更新换代(每次更新都必须依赖上一次的结果)
eg:手机app更新
"""
可迭代在python中可以理解为是否支持for循环
四、迭代器对象
1.迭代器对象
是由可迭代对象调用__iter__方法产生的
迭代器对象判断的本质是看是否内置有__iter__和__next__
2.迭代器对象的作用
提供了一种不依赖于索引取值的方式
正因为有迭代器的存在 我们的字典 集合才能够被for循环
3.迭代器对象实操
s1 = 'hello' # 可迭代对象
res = s1.__iter__() # 迭代器对象
print(res.__next__()) # 迭代取值 for循环的本质
一旦__next__取不到值 会直接报错
4.注意事项
可迭代对象调用__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身
五、for循环内部原理
for 变量名 in 可迭代对象:
循环体代码
"""
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获并处理
"""
六、捕捉异常
1. 什么是异常?
# 异常就是错误发生的信号,如果此信号不做处理,那么,从本行开始之后的代码都不能正常执行了
2. 异常
2.1 Traceback
2.2 XXXError
# 错误的类型
2.3 XXXError冒号后面的内容,报错的详细原因,我们主要看的也是这部分,大致定位错误的原因
3. 异常的种类
1. 语法错误
# 是坚决不允许的,遇到之后要立刻改正,否则,代码不能运行
2. 逻辑错误
# 是可以被允许的,但是,我们写逻辑的时候要尽可能的避免逻辑错误的发生
4. 常见的错误类型
NameError
IndexError
KeyError
ValueError
ZeroDivisionError
...
5. 如何捕捉异常
try:
被监测的代码
except 错误的类型1 as e:
错误处理,e:错误的原因
except 错误的类型2 as e:
错误处理,e:错误的原因
except 错误的类型3 as e:
错误处理,e:错误的原因
except 错误的类型4 as e:
错误处理,e:错误的原因
'''万能异常'''
try:
# print(username)
# print(1/ 0)
# l = [1,2,3,4]
# print(l[6])
d = {'a':1, 'b':2}
print(d['c']) #KeyError
except ZeroDivisionError as e:
print('')
except NameError as e:
print(123)
except IndexError as e:
print(123)
except Exception as e:
print(e) # name 'username' is not defined
"""
try except异常捕捉需要注意
1. try里面被监测的代码尽量少
2. 在明显没有错误的代码不要被捕捉
"""
重要内置函数、常见内置函数(了解)、可迭代对象、迭代器对象、for循环原理、异常捕获的更多相关文章
- 重要内置函数、常见内置函数、可迭代对象、迭代器对象、for循环的本质、异常捕获处理
重要内置函数 #zip拉链 zip 函数是可以接收多个可迭代对象,然后把每个可迭代对象中的第i个元素组合在一起,形成一个新的迭代器,类型为元组. l1 = [11, 22, 33] l2 = ['a' ...
- python进阶之路14 之函数内置方法、可迭代对象、异常捕获处理
重要内置函数 1.map() 映射 l1 = [1, 2, 3, 4, 5] # def func(a): # return a+1 res = map(lambda x:x+1, l1) print ...
- Python开发基础-Day11内置函数补充、匿名函数、递归函数
内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: divmod(a, b) #a.b为数字,a为除数,b ...
- python基础之内置函数补充、匿名函数、递归函数
内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数 ...
- 迭代器,for循环本质,生成器,常用内置方法,面向过程编程
一.迭代器 1.迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 2.迭代器给你提供了一种不依赖于索引取值的方式 3.可以迭代取值的对象:字符串,列表,元组,字典 ...
- python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
常见内置函数 内置函数:在类的内部,特定时机自动触发的函数 示例1:setattr.getattr.delattr class Person: # def __init__(self, name): ...
- Jmeter系类(32) - JSR223(2) | Groovy常见内置函数及调用
常见内置函数及调用 获取相关函数 获取返回数据并转换为String字符串 prev.getResponseDataAsString() 例子 String Responsedata = prev.ge ...
- python生成器对象&常见内置函数
内容概要 异常捕获(补充) for循环本质 生成器 yield 和 return优缺点 笔试题 常用内置函数 内容详细 一.异常捕获补充 try: print(name) except NameErr ...
- python函数: 内置函数
forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解 ...
- python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...
随机推荐
- 关于解决pip安装python第三方库超时的问题
直接换源下载 1. 设置超时时间,安装txt 文件内安装包 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-time ...
- 彻底理解Python中的闭包和装饰器(上)
什么是闭包 闭包(Closure)其实并不是Python独有的特性,很多语言都有对闭包的支持.(当然,因为Python是笔者除C/C++之外学习的第二门语言,所以也是第一次遇到闭包.)简而言之,闭包实 ...
- 深入理解Whitelabel Error Page底层源码
深入理解Whitelabel Error Page底层源码 (一)服务器请求处理错误则转发请求url StandardHostValve的invoke()方法将根据请求的url选择正确的Context ...
- 8、IDEA提交代码出现: Fetch failed fatal: Could not read from remote repository
转载自 第一步.确认Git公钥/密钥是否生成: 1. 首先查看本地是否生成git密钥,一般在C盘home目录下:[C:你自己的home目录\.ssh] 第二步:添加Git密钥: 右键->Git ...
- Codeforces Hello 2023 CF 1779 A~F 题解
点我看题 A. Hall of Fame 先把不用操作就合法的情况判掉.然后发现交换LL,RR,RL都是没用的,只有交换LR是有用的,这样可以照亮相邻的两个位置.所以我们就是要找到一个位置i,满足\( ...
- GitHub + Hexo 搭建个人博客网站
一.准备工作 1. GitHub + Hexo 的优势 Hexo 提供现成的模板和模块:github 的 pages 功能提供免费的服务器,零成本搭建属于自己的博客. 2. 需要了解的网站 githu ...
- python进阶之路10之函数
函数前戏 name_list = ['jason', 'kevin', 'oscar', 'jerry'] # print(len(name_list)) '''突然len不准用了''' # coun ...
- ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析
目录 建表语法 数据处理 汇总的通用规则 AggregateFunction 列中的汇总 嵌套结构数据的处理 资料分享 参考文章 SummingMergeTree引擎继承自MergeTree.区别在于 ...
- Openmp Runtime 库函数汇总(下)——深入剖析锁🔒原理与实现
Openmp Runtime 库函数汇总(下)--深入剖析锁原理与实现 前言 在本篇文章当中主要给大家介绍一下 OpenMP 当中经常使用到的锁并且仔细分析它其中的内部原理!在 OpenMP 当中主要 ...
- 最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]
前言 Proteus 是世界上唯一将电路仿真软件.PCB设计软件和虚拟模型仿真软件三合一的设计平台. Proteus 8.15 现已发布,本篇将带领大家安装此版本. 介绍 Proteus Proteu ...