首页 > 其他分享 >内置函数与迭代器

内置函数与迭代器

时间:2022-10-14 19:24:25浏览次数:45  
标签:__ 内置 函数 迭代 对象 res iter print

目录

一.重要内置函数

1.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)]

"""补充:
	和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函数会直接返回列表,而不是返回 zip 对象。但是,返回的列表或者 zip 对象,其包含的元素(都是元组)是相同的。"""

2.filter

filter函数(过滤器),筛选方式是采用传入的函数, 去循环数据组中每一个数据,然后将结果为Ture的添加到结果列表中,filter()返回的结果是一个新的列表

l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, 11)
print(list(res))
# [44, 55, 66, 77, 88]

3.sorted

与sort()的使用方法类似,默认是升序

l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res)
# [11, 12, 21, 22, 32, 53, 64, 76]

二.常见内置函数了解

1.abs() 绝对值

print(abs(-100))  # 100
print(abs(100))  # 100

2.all()

对条件进行判断,如果给定的条件里面都对就返回Ture,否则就返回False

print(all([0, 1, 2, 3]))
print(all([1, 2, 3, True]))

3.any()

所有数据值对应的布尔值,有一个为True结果就是True 否则返回False

print(any([0, None, '', 1]))  # Ture
print(any([0, None, '']))  # False

4.bin()、oct()、hex()、int()

这些是进制转换到函数:二进制,八进制,十六进制,十进制

5.bytes()

转换成bytes类型

s1 = '今天周五,明天周六'
print(s1.encode('utf8'))
print(bytes(s1, 'utf8'))

6.callable()

判断名字是否可以加括号调用

name = 'jason'
def index():
	print('from index')
print(callable(name))  # Fallse
print(callable(index))  #Ture

7.chr() ord()

基于ASSCII码表做数字与字母的转换·

print(chr(65))  # A
print(ord('A'))  #65

8.dir()

返回括号内对象能够调用的名字

print(dir('hello'))
# ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

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()

能够识别字符串中的python代码并执行

eval只能执行一些简单的python代码,具有逻辑性的都不行

exec可以识别具有一定逻辑性的python代码

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 映射

max 返回最大值

min 返回最小值

15.open()

用于打开一个文件

16.pow()

幂指数(次方)

print(pow(2, 2))  # 4
print(pow(2, 3))  # 8
print(pow(2, 4))  # 16

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.异常
异常就是代码运行报错 行业俗语叫bug
代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中药尽可能避免
2.异常分类
语法错误
不允许出现 一旦出现立刻改正 否则提桶跑路
逻辑错误
允许出现的 因为它一眼发现不了 代码运行之后才可能会出现
3.异常结构
错误位置
错误类型
错误详情

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

相关文章

  • 常用内置函数+可迭代对象,迭代对象
    目录常用内置函数+可迭代对象,迭代对象重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质常用内置函数+可迭代对象,迭代对象重要内置函数zip()#拉链,可有多个......
  • 迭代对象与迭代器对象,for本质 异常捕捉
    可迭代对象可迭代对象对象内置有双下iter(__iter__)方法的都可以称为可迭代对象。#内置方法就是我们在.调出来的可迭代对象范围分为两种一种是不可迭代对象,一种是......
  • php函数复习
    $c=(array)json_decode(@$_GET['c']);//数组里面包含元素m:2023n是array的元素个数为0第0个元素是arrayif(is_array($c)&&!is_numeric(@$c["m"])&&$c["m"]>2022)......
  • ALV DMEO 02:REUSE_ALV_GRID_DISPLAY 使用函数填充 FIELDCAT
    以下是纯顾问群~QQ群 :SAP干货铺,  群号:775662808所有群管理严格,严格禁止一切外来链接、招聘、广告等垃圾信息!如果您觉得这篇干货文章有用,请帮忙转载、分享给更多人,谢谢~......
  • 17、python函数篇 内置函数、迭代器对象、异常的捕获和处理
    目录一、重要内置函数1、zip()2、filter()3、sorted()二、常见内置函数1、abs()2、all、any()3、bin、oct、hex、int()4、bytes()5、callable()6、chr、ord()7、dir()8、d......
  • 重要内置函数,常见内置函数,可迭代对象,迭代器对象,for循环本质,异常捕获
    重要内置函数#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(......
  • 可迭代对象、迭代器对象、异常捕获
    可迭代对象、迭代器对象、异常捕获可迭代对象可迭代对象都有一个特点,对象内置__iter__方法,可以通过dir(对象)查看,也可以通过pycharm,在变量名后点一下.查看有没有这个内置......
  • 函数的内置方法
    今日内容回顾重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常捕获/处理今日内容详解重要内置函数1.zip:拉链,可以把多个列表里的数据一一对应组......
  • python常见内置函数
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环内部原理异常处理今日内容详细重要内置函数zipl1=[11,22,33,44,55]l2=['jaso......
  • 内置函数
    重要内置函数1.zip#拉链 可以对多个数据合并并且组成一个元组如果数据多了则会被丢弃#代码举例:#l1=[11,22,33,44,55]#l2=['jason','kev......