首页 > 其他分享 >内置函数、迭代器、异常处理

内置函数、迭代器、异常处理

时间:2022-10-14 20:56:24浏览次数:57  
标签:__ 返回 内置 函数 迭代 对象 iter print

内置函数、迭代器、异常处理

目录

重要内置函数

zip
zip() 函数返回 zip 对象,它是元组的迭代器,其中每个传递的迭代器中的第一项配对在一起,然后每个传递的迭代器中的第二项配对在一起,依此类推。
如果传递的迭代器具有不同的长度,则项目数最少的迭代器将决定新迭代器的长度。
语法:zip(iterator1, iterator2, iterator3 ...)
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)]

filter
使用过滤器函数排除可迭代对象中的项目。
语法:filter(function, iterable)
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1)
print(list(res))
# [44, 55, 66, 77, 88]

sorted
sorted() 函数返回指定的可迭代对象的排序列表。
可以指定升序或降序。字符串按字母顺序排序,数字按数字排序。但无法对同时包含字符串值和数字值的列表进行排序。
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res) 
# [11, 12, 21, 22, 32, 53, 64, 76] 默认升序

常见内置函数

abs()  绝对值
返回数的绝对值
print(abs(-100))# 100
print(abs(100))# 100

all()  
如果可迭代对象中的所有项均为 true,则返回 True。否则返回False
print(all([0, 1, 2, 3]))# False
print(all([1, 2, 3, True]))# True

any()
如果可迭代对象中的任何项为 true,则返回 True。
print(any([0, None, '', 1]))# True
print(any([0, None, '']))# False

bin() 返回数的二进制版本。
oct() 把数转换为八进制。
hex() 把数字转换为十六进制值。
int() 返回整数。

bytes()  
转换成bytes类型
s1 = '周五了'
print(s1.encode('utf8'))
print(bytes(s1, 'utf8'))
# b'\xe5\x91\xa8\xe4\xba\x94\xe4\xba\x86'
# b'\xe5\x91\xa8\xe4\xba\x94\xe4\xba\x86'

callable()  
判断名字是否可以加括号调用
name = 'jason'
def index():
    print('from index')
print(callable(name))  # False
print(callable(index))  # True

chr() ord()  
基于ASCII码表做数字与字母的转换
print(chr(65))  # A
print(ord('A'))  # 65

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']

divmod()
当参数1除以参数2时,返回商和余数。
x = divmod(5, 2)
print(x)
# (2, 1);2为商,1为余数

enumerate()
获取集合(例如元组)并将其作为枚举对象返回。
x = ('apple', 'banana', 'cherry')
y = enumerate(x)
print(list( y))
# [(0, 'apple'), (1, 'banana'), (2, 'cherry')]

eval() exec()
s1 = 'print("哈哈哈")'
eval(s1)# 哈哈哈
exec(s1)# 哈哈哈
s2 = 'for i in range(100):print(i)'
eval(s2)  # 报错,只能识别简单的python代码,具有逻辑性的都不行
exec(s2)  # 1...99,可以识别具有一定逻辑性的python代码

hash()
哈希加密,一种加密方法
# 971221201782251763

id() 
返回对象的 id。
input() 
允许用户输入。
isinstance()
如果指定的对象是指定对象的实例,则返回 True。

map() 
返回指定的迭代器,其中指定的函数应用于每个项目。
max() 
返回可迭代对象中的最大项目。
min()
返回可迭代对象中的最小项目。

open()
打开文件并返回文件对象

pow()
返回 x 的 y 次幂的值。
print(pow(2, 2))# 4
print(pow(2, 3))# 8
print(pow(2, 4))# 16

range()
返回数字序列,从 0 开始且以 1 为增量(默认地)。
x = range(6)
for n in x:
  print(n)
#依次打印
0
1
2
3
4
5

round()四舍五入
将数字四舍五入为仅两个小数:
x = round(3.1415926, 2)
print(x)
# 3.14

sum()
对迭代器的项目进行求和。
print(sum([11, 22, 33, 44, 55, 66]))
# 231

zip()
zip() 函数返回 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)]

可迭代对象

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循环的本质
# h
# 一旦__next__取不到值 会直接报错

4.注意事项

  • 可迭代对象调用__iter__会成为迭代器对象,迭代器对象如果还调用__iter__不会有任何变化,还是迭代器对象本身。

for循环的本质

for 变量名 in 可迭代对象:
    循环体代码
"""
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获并处理
"""

异常处理

1、异常是指代码运行报错,俗语bug。
2、代码运行中一旦遇到异常会直接结束整个程序的运行,所以在编写代码时要尽可能避免。
3、当python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

1、异常分类

  • 语法错误:不允许出现,一旦出现要立即改正
  • 逻辑错误:允许出现,因为这种错误一眼发现不了,代码运行之后才可能会出现

2、异常结构

  • 错误位置
  • 错误类别
  • 错误详情

标签:__,返回,内置,函数,迭代,对象,iter,print
From: https://www.cnblogs.com/zhiliaowang/p/16792976.html

相关文章

  • 内置函数与可迭代对象、迭代器对象
    重要内置函数1.map映射map映射就是根据途共的函数对指定的序列做映射l1=[12,23,28,34,65]需求:元素全部自增6方法1:利用列表生成式defindex(n):returnn+6......
  • 内置函数与迭代对象
    今日内容总结重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常捕获/处理重要内置函数zipzip()函数用于将可迭代的对象作为参数,主要......
  • python基础-内置函数、可迭代对象、迭代器对象、异常捕获
    python基础-内置函数、可迭代对象、迭代器对象、异常捕获目录一、重要内置函数1.zip2.filter过滤3.sorted升序排序二、常见内置函数1.abs()绝对值2.all()3.any()4.bin二进......
  • excel 函数 常见错误
    本文 说明本文所述,称为错误值,即excel公式出错的值。实际案例中情况更为复杂,此处仅介绍错误值,以便了解常见错误值类型:#N/A#VALUE!#NAME?#REF!#NUM!#NULL!常见错误值#N/A找......
  • Pycharm一键选中多个东西(数据、函数等)进行修改、删除、替换
    Pycharm一键选中多个东西(数据、函数等)进行修改、删除、替换样例:1、Pycharm一键选中多个不同的东西(数据、函数、关键字等)进行修改替换操作办法:1)左手按住“Ctr”+“Shift”+......
  • 内置函数及迭代器
    内置函数及迭代器重要内置函数1.zipzip()接受一系列可迭代的对象作为参数,将对象中的对应的元素打包成以一个个tuple,zip()函数返回iterable(可迭代对象) """传入的参......
  • 函数内置方法与迭代器
    重要内置函数zip将多个可迭代对象组合起来,然后可以用列表一次性将结果存入列表、元组或者字典for循环可以把元素以此取出fliter特别需要注意到一点是在python2.7版......
  • 常见内置函数及迭代器相关基础
    昨日内容回顾算法简介及二分法算法是解决一类问题的逻辑方法。二分法是最简单的算法,主要用来查找有序数据列表中指定数据。三元表达式三元表达式适用于编写简单的......
  • 内置函数与迭代对象
    今日内容总结内置函数重要内置函数1.zip()将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,一般会用listuo输出为列表利用*......
  • 内置函数与迭代器
    内置函数与迭代器重要内置函数补充1.zip()拉链zip可以将两个列表内的数据值按照索引位置一一对应组合成元组eg:l1=[1,2,3,4]l2=[5,6,7,8,9]......