重要内置函数

 #zip拉链 zip 函数是可以接收多个可迭代对象,然后把每个可迭代对象中的第i个元素组合在一起,形成一个新的迭代器,类型为元组。
l1 = [11, 22, 33]
l2 = ['a', 'b', 'c']
l3 = [1, 2, 3]
# 传统做法:
# 定义一个变量, 存储结果
# new_l = []
# for i in range(len(l1)):
# new_l.append((l1[i], l2[i]))
# print(new_l) res = zip(l1, l2, l3)
print(res) #<zip object at 0x0000023674FEFE00>
print(list(res)) # [(11, 'a', 1), (22, 'b', 2), (33, 'c', 3)] l1 = [11,22,33]
l2 = ['a', 'b', 'c', ]
l3 =[1, 2, 3, 4,5]
res =zip(l1,l2,l3)
print(list(res)) # [(11, 'a', 1), (22, 'b', 2), (33, 'c', 3)] # filter 过滤
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1) #先使用for循环,然后遍历出来的数字给x,然后再判断x
print(list(res)) # [44, 55, 66, 77, 88] # sorted 升序
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() 所有数据值对应的布尔值为True结果才是True, 否则返回False
print(all([0, 1, 2, 3])) #False
print(all([1, 2, 3, True])) # True
# 3.any() 所有数据值对应的布尔值有一个为True结果就是True 否则返回False
print(any([0, None, '', 1])) #True
print(any([0, None, ''])) #False
# 4.bin() oct() hex() int() 进制的转换
bin()转换为二进制 oct()转换为八进制 hex()转换为十六进制 int()转换为十进制
# 5.bytes() 转换成bytes类型
s1 = '今天周五'
print(s1.encode('utf8')) # b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94'
print(bytes(s1,'utf8')) # b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94'
# 6.callable() 判断名字是否可以加括号使用
用于检查一个对象是否是可调用的。如果返回 True,仍然可能调用失败;但如果返回 False,调用对象绝对不会成功
name = 'jason'
def index():
print('from index')
print(callable(name)) # False
print(callable(index)) # True 函数名可以
# 7.chr() ord()
基于ASCII码表做数字与字母的转换
chr(数字) 返回值是对应的字符
ord(字符) 返回值是对应的数字
print(chr(65)) # A
print(ord('A')) # 65
# 8.dir() 返回括号内对象能够调用的名字
print(dir('hello'))
# 9. divmod() 元组 第一个数据为整除数 第二个是余数
res = divmod(100, 2)
print(res) # (50, 0)
res = divmod(100, 3) # (33, 1)
print(res)
"""
总数据 每页展示的数据 总页码
100 10 10
99 10 10
101 10 11
"""
page_num, more = divmod(9999, 20)
print(divmod(99, 10)) # (9, 9 )
if more:
page_num += 1
print('总页码为:', page_num) # 总页码为: 500
# 10.enumerate() 枚举
返回一个元组,里面包含一个计数值(从 start 开始,默认为 0)和通过可迭代对象迭代获得的值
# 11.eval() 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'))
# 13.id() input() isinstance()
# 14.map() max() min()
# 15.open()
# 16.pow() 幂指数(次方)
print(pow(2, 2)) # 4
print(pow(2, 3)) # 8
print(pow(2, 4)) # 16
# 17.range()
# 18.round() 四舍五入 # 其实是五舍六入
print(round(98.3))
print(round(98.6))
# 19.sum()
print(sum([11, 22, 33, 44, 55, 66]))
# 20.zip()

可迭代对象

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__不会有任何变化 还是迭代器对象本身
s1 = 'hello'
res = s1.__iter__().__iter__()
# 没有任何作用和调用一次__iter__一样
count = 0
while count < 5:
print(res.__next__())
count += 1

for循环的本质

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

异常捕获/处理

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

重要内置函数、常见内置函数、可迭代对象、迭代器对象、for循环的本质、异常捕获处理的更多相关文章

  1. 迭代器,for循环本质,生成器,常用内置方法,面向过程编程

    一.迭代器 1.迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 2.迭代器给你提供了一种不依赖于索引取值的方式 3.可以迭代取值的对象:字符串,列表,元组,字典 ...

  2. python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem

    常见内置函数 内置函数:在类的内部,特定时机自动触发的函数 示例1:setattr.getattr.delattr class Person: # def __init__(self, name): ...

  3. Jmeter系类(32) - JSR223(2) | Groovy常见内置函数及调用

    常见内置函数及调用 获取相关函数 获取返回数据并转换为String字符串 prev.getResponseDataAsString() 例子 String Responsedata = prev.ge ...

  4. python常见内置函数总结

    简单的内置函数 len    求长度 min   求最小值 max  求最大值 sorted  排序 reversed   反向 sum   求和 进制转换 bin   转为二进制 oct   转为八 ...

  5. python生成器对象&常见内置函数

    内容概要 异常捕获(补充) for循环本质 生成器 yield 和 return优缺点 笔试题 常用内置函数 内容详细 一.异常捕获补充 try: print(name) except NameErr ...

  6. python函数: 内置函数

    forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解 ...

  7. python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04

    多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...

  8. Python基础之函数:5、内置函数、迭代器对象、异常的捕获和处理

    目录 一.重要内置函数 1.zip() 2.filter() 3.sorted() 二.常见内置函数 1. abs() 2.all.any() 3.bin.oct.hex.int() 4.bytes( ...

  9. Python基础之函数:4、二分法、三元表达式、生成/推导式、匿名函数、内置函数

    目录 一.算法简介之二分法 1.什么是算法 2.算法的应用场景 3.二分法 二.三元表达式 1.简介及用法 三.各种生成式 1.列表生成式 2.字典生成式 3.集合生成式 四.匿名函数 五.常见内置函 ...

  10. [Hive - Tutorial] Built In Operators and Functions 内置操作符与内置函数

    Built-in Operators Relational Operators The following operators compare the passed operands and gene ...

随机推荐

  1. Yarn上运行spark-shell和spark-sql命令行

    spark-shell On Yarn spark-shell \ --master yarn-client \ --executor-memory 1G \ --num-executors 10 s ...

  2. Java 多线程:线程池

    Java 多线程:线程池 作者:Grey 原文地址: 博客园:Java 多线程:线程池 CSDN:Java 多线程:线程池 工作原理 线程池内部是通过队列结合线程实现的,当我们利用线程池执行任务时: ...

  3. Sublime Text简单使用方法

    一.新建和保存文件 一.点击文件,选择新建文件或者快捷键Ctrl+N 二.另存文件,选择保存位置,这里项目的命名以.py为后缀 二.保存代码 快捷键Ctrl+S,上方文字出现小圆点表示未保存 三.运行 ...

  4. LFS(Linux From Scratch)构建过程全记录(三):下载所需的软件包

    写在前面 本文将记录构建LFS的过程中,下载软件包的全过程 准备下载的路径 注意请确保$LFS已经设置完毕 我们需要创建一个文件夹,地址为$LFS/sources,用于保存对应的源码 输入的指令如下: ...

  5. 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!

    GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...

  6. 从EDR的火热看安全产品的发展

    从EDR的火热看安全产品的发展 2021年4月8日23:13 当开始写这篇博客时,外面正是护网进行得如火如荼的时候.作为一个产品经理,在吃瓜的同时,也在思考着安全产品的发展.这几年一些看得到的变化在深 ...

  7. 使用Jumpserver堡垒机管理MySQL应用

    第一步,添加系统用户 资产管理,系统用户,创建<数据库协议>MySQL 用户名和密码填写实际可以访问数据库的用户名和密码 第二步,添加应用 应用管理,数据库 主机和端口填写可以访问数据库的 ...

  8. rook-ceph说明

    cluster.yaml文件 文件中有几个地方要注意: dataDirHostPath: 这个路径是会在宿主机上生成的,保存的是ceph的相关的配置文件,再重新生成集群的时候要确保这个目录为空,否则m ...

  9. Jenkins 运行权限问题

    yum安装的Jenkins 配置文件默认位置/etc/sysconfig/jenkins 默认jenkins服务以jenkins用户运行,这时在jenkins执行maven脚本时可能会发生没有权限操作 ...

  10. 记录Gerrit2.8.4环境迁移、安装、配置以及问题解决

    转载自:https://cloud.tencent.com/developer/article/1010629 说到gerrit,没听说的同学可能会感到比较陌生,那么先来copy一段关于gerrit的 ...