内置函数及for循环原理

python中常见内置函数

  • python常见内置函数
  • 可迭代对象
  • 迭代器对象
  • for 循环的本质

python中的内置函数

python中的内置函数非常的多,这里主要介绍常用的一部分

序号 内置函数名 功能
1 abs() 求绝对值
2 all() , any() 判断容器类型中所有的数据值对应的布尔值是否为Ture
3 bin(),oct(), hex, 进制转换
4 int() 进制转换,其他进制转十进制
5 bytes() 类型转换
6 Callable() call在IT专业名词中翻译成调用
7 chr(),ord() 依据ASCII码表实现字符与字符的转换
8 dir() 获取对象内部可以通过句点符获取的数据
9 divmod() 获取除法之后的整数和与数
10 enumerate() 枚举
11 eval(),exec() 能够识别字符串中python代码并执行
12 hash() 对数据进行hash加密,返回一串哈希值
13 help() 查看帮助信息
14 Isinstance(123,int) True
15 isinstance(123, str) False
16 pow() 幂指数
17 round() 四舍五入
  • 可迭代对象
  1. 迭代就是更新换代,每次迭代都需要基于上一次的结果
    比如说我们手机上的软件更新,其实这就是迭代的过程
# 代码实现

1. 
while True:
    print('123')
""""
这里不属于是迭代的过程,每次内容都是一样的
""""

2.
n = 0
while True:
    print(n)
    n += 1
"""
这里n就属于在不停地迭代,这个循环就相当于迭代的过程,每次都是基于上一次的结果执行
"""
  • 如何判断可迭代对象

内置有__iter__方法的都叫做可迭代对象
内置的含义: 可以通过句点符直接点出来的东西都叫做内置
XXX_ 针对双下划线开头双下滑线结尾的方法统一读:双下XXX

可迭代对象含义:可以被for循环的对象就是可迭代对象

数据类型 是否可迭代
int 整型 整型不是可迭代对象
float 浮点型 浮点型不是可迭代对象
str 字符串 字符串是可迭代对象
list 列表 列表是可迭代对象
dict 字典 字典是可迭代对象
tuple 元组 元组是可迭代对象
set 集合 集合是可迭代对象
bool 布尔值 布尔值不是可迭代对象
文件 文件是可迭代对象
  1. 判断迭代器对象
    内置有__iter__和next的对象都称为迭代器对象
  2. 可迭代对象于迭代器对象的关系
    可迭代对象调用__iter__方法之后就会变成迭代器对象
    迭代器对象调用__iter__方法无论多少次还是迭代器对象本身
  3. 迭代器对象迭代取值
# 当前res就是一个迭代器对象,可是使用__next__对这个res进行取值,但是需要注意如果迭代器对象里的值被取完了还要继续取就会报错

1. 迭代器之字符串取值
res = 'wesley'.__iter__()
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())

2. 迭代器之字典取值
#  字典取值只取键,同样需要先调用__iter__将转成迭代器对象再使用__next__取值,相同的是如果超出取值范围同样会报错

d1 = {'name': 'wesley',
      'pwd': 123
      }
res = d1.__iter__()
print(res.__next__())
print(res.__next__())
  • 中途练习
以知列表:
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
"""
# 需求:不使用for循环 依次打印出列表中所有的数据值
"""

#  1.先将列表变成迭代器对象
res = l1.__iter__()
#  2.统计列表长度
length = len(l1)
#  3. 定义结束条件
count = 0
#  4. 开始循环取值
while count < length:
    print(res.__next__())
    count += 1

拓展

  • 迭代器的反复使用
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
print(l1.__iter__().__next__())
print(l1.__iter__().__next__())

"""
这里是每一次都是转为迭代器对象然后再取值,这样就可以重复使用
"""
  • 针对双下方法
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = iter(l1)
print(next(res))

iter(11)  相当于l1.__iter__()
next(res) 相当于res.__next__()

  • 迭代器对象特殊地方

可迭代对象。迭代对象,通过答应无法直接看出来
相当于工厂,需要数据直接要就可以了,这个机制及比较节省内存

语法结构
	for 变量名 in 可迭代对象:
			for循环体代码
1. for会自动将in后面的数据调用__iter__()变成迭代器对象
2. 之后每次循环调用__next__()取值
3. 最后没有值__next__()会报错 for能够制动处理该错误,让循环结束
  • 异常捕获和处理

    
    1.异常
    	异常就是代码运行报错 行业俗语叫bug
    	代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中药尽可能避免
    2.异常分类
    	语法错误
        	不允许出现 一旦出现立刻改正 否则提桶跑路
    	逻辑错误
        	允许出现的 因为它一眼发现不了 代码运行之后才可能会出现
    3.异常结构
    	错误位置
     	错误类型
     	错误详情
    
posted @ 2025-03-13 11:43  樵夫-  阅读(18)  评论(0)    收藏  举报