首页 > 其他分享 >重要内置函数、常见内置函数(了解)、可迭代对象、迭代器对象、for循环原理、异常捕获

重要内置函数、常见内置函数(了解)、可迭代对象、迭代器对象、for循环原理、异常捕获

时间:2023-03-03 17:13:40浏览次数:35  
标签:__ 内置 函数 迭代 对象 res print

目录

一、重要内置函数

1. zip

说白了就是压缩几组数据值,说细了就是将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,一般会用listdict方法输出为对应的类型,当对象为多个的时候,会根据数据值最少的那个参数为输出的个数,多余的部分就不会输出了

# 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中的xrangepython3range作用一样

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. 在明显没有错误的代码不要被捕捉
"""

标签:__,内置,函数,迭代,对象,res,print
From: https://www.cnblogs.com/oiqwyig/p/17176287.html

相关文章

  • day12-递归与高阶函数
    一、递归#衔尾蛇#递归特点#1,函数内部调用自己#2,必须要有出口实例1:#有规律循环打印1-9deffunc(start,stop):   print(start) #9   ifstart==......
  • Python实现迭代器(__next__和__iter__)
    一、简单示例死循环classFoo:def__init__(self,x):self.x=xdef__iter__(self):returnselfdef__next__(self):self......
  • 基本内置类型
    C++基本内置类型有:算术类型和空类型(void),空类型不对应具体的值下表列出了C++标准规定的尺寸最小值(所谓的尺寸就是该类型所占的比特数),同时允许编译器赋予这些类型更大的尺......
  • 轻松玩转makefile | 函数的使用
    前言在上一篇文章中,尽管使用了变量和模式,但还是有不够好的地方,在Makefile中要指明每一个源文件,我们接下来利用函数对其进行优化,并介绍其他常用的一些函数。依旧是以fun.c......
  • 如何写出漂亮的构造函数 option funciton
    1. Golang里面没有构造函数,但是Golang却可以像C++一样实现类似继承、构造函数一样等面向对象编程的思想和方法Golang里面要实现相关的构造函数定义可以通过通过new来创建......
  • SQLite的ROUND函数的坑和解决方案
    今天使用sqlite的round函数对数据进行四舍五入处理,但遇到了以下问题,如图所示: 为什么结果不一样,不得而知,但我找到了解决方案,同大家分享一下。首先在c#中创建自定义函数[......
  • 《SQL基础》14. 存储过程 · 存储函数
    目录存储过程基本语法变量系统变量用户定义变量局部变量if判断参数case判断while循环repeat循环loop循环游标条件处理程序存储函数存储过程存储过程是事先经过编译并存......
  • 15 Djaong内置权限
    Djanog中的权限是通过auth组件来实现的,在Djanog默认注册的app中,auth就是了INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.co......
  • 箭头函数
    箭头函数箭头函数是传统函数表达式的简写方式,它简化了函数的编写,也带来了一些限制导致在一些场景下它无法使用。特点:箭头函数没有自己的this,无法通过call、apply、bind......
  • 个人觉得好用的工具函数(如把数字转成千分位逗号分隔)
    //js数字每三位加逗号(千分位格式)美元格式3位一个逗号  handleUs(val){   //eg:2536995--->2,536,995爽得一匹   returnval.toLocaleString()......