函数名 迭代器 任意表达式 插入表达式 等操作

函数名的作用

1.函数名的内存地址

def func():
    print("呵呵")
print(func)

结果: <function func at 0x1101e4ea0>

2.函数名可以赋值给其他变量

def func():
    print("呵呵")
    print(func)
a = func    # 把函数当成一个值赋值给另一个变量

a()     # 函数调用 func()
结果:
呵呵
<function func at 0x0000025089261E18>

3.函数名可以当做容器类的元素

def func1():
    print("呵呵")
def func2():
    print("呵呵")
def func3():
    print("呵呵")
def func4():
     print("呵呵")

lst = [func1, func2, func3]
for i in lst:
     i()
结果:
呵呵
呵呵
呵呵

4.函数名可以当做函数的参数

def func():
    print("吃了么")
def func2(fn):
    print("我是func2")
    fn()    # 执行传递过来的fn
    print("我是func2")
func2(func)     # 把函数func当成参数传递给func2的参数fn.
结果:
我是func2
吃了么
我是func2

5.函数名可以作为函数的返回值

def func_1():
    print("这里是函数1")
    def func_2():
        print("这里是函数2")
    print("这里是函数1")
    return func_2
fn = func_1()
# 执行函数1.  函数1返回的是函数2, 这时fn指向的就是上面函数2
fn()    # 执行func_2函数
结果:
这里是函数1
这里是函数1
这里是函数2

任意表达式

num = "alexmeetwusir"
print(f"全部大写:{num.upper()}")
结果:
全部大写:ALEXMEETWUSIR

插入表达式

def func(a,b,c):
    d = a*b*c
    return d
print(f"最终结果为" + f"{func(5,5,5)}")
结果:
最终结果为125

可迭代对象

  1. 在python中,但凡内部含有__iter__方法的对象,都是可迭代对象。
如何查看呢?
示例:
sum = "sjkfhs"
print(dir(sum)) 通过dir查看,如果输出列表内有iter方法就是可迭代对象

2.什么是可迭代对象?

 从字面意思来说:可迭代对象就是一个可以重复取值的实实在在的东西。
? 从专业角度来说:但凡内部含有__iter__方法的对象,都是可迭代对象。
? 可迭代对象可以通过判断该对象是否有__iter__方法来判断。
?
? 可迭代对象的优点:
? 可以直观的查看里面的数据。
?
? 可迭代对象的缺点:
? 1.占用内存。
? 2.可迭代对象不能迭代取值(除去索引,key以外)。

迭代器

1.**在python中,内部含有__Iter__方法并且含有__next__方法的对象就是迭代器。**

2.迭代器的优点与缺点

迭代器的优点:
? 节省内存,迭代器在内存中相当于只占一个数据的空间:因为每次取值都上一条数据会在内存释放,加载当前的此条据。
? 惰性机制, next一次,取一个值,绝不过多取值。
? 有一个迭代器模式可以很好的解释上面这两条:迭代是数据处理的基石。扫描内存中放不下的数据集时,我们要找到种
? 惰性获取数据项的方式,即按需一次获取一个数据项。这就是迭代器模式。

迭代器的缺点:
? 不能直观的查看里面的数据。
? 取值时不走回头路,只能一直向下取值。

3.迭代器的惰性机制,操作一次返回一个值,下次操作继续从上次位置向下执行。

示例:
l1 = [1, 2, 3, 4, 5, 6]
obj = iter(l1)

for i in range(2):
    print(next(obj))

for i in range(2):
    print(next(obj))

for i in range(2):
    print(next(obj))
结果:
第一次输出结果1,2
第二次输出结果1,2,3,4
第三次输出结果1,2,3,4,5,6      如果再加入一个for循环就会报错,因为列表中元素只到6.

4可迭代对象与迭代器对比

我们今天比较深入的了解了可迭代对象与迭代器,接下来我们说一下这两者之间比较与应用:
? 可迭代对象:
? 是一个私有的方法比较多,操作灵活(比如列表,字典的增删改查,字符串的常用操作方法等),比较直观,但是占用内存,而且不能直接通过循环迭代取值的这么一个数据集。
? 应用:当你侧重于对于数据可以灵活处理,并且内存空间足够,将数据集设置为可迭代对象是明确的选择。

? 迭代器:
? 是一个非常节省内存,可以记录取值位置,可以直接通过循环+next方法取值,但是不直观,操作方法比较单一的数据集。
? 应用:当你的数据量过大,大到足以撑爆你的内存或者你以节省内存为首选因素时,将数据集设置为迭代器是一个不错的选择。(可参考为什么python把文件句柄设置成迭代器)。

原文地址:https://www.cnblogs.com/biyunfeng/p/11934616.html

时间: 2024-10-05 21:18:35

函数名 迭代器 任意表达式 插入表达式 等操作的相关文章

python 11 函数名 迭代器

今日内容大纲 global nonlocal 函数名的运用 新特性:格式化输出 迭代器: 可迭代对象 获取对象的方法 判断一个对象是否是可迭代对象 小结 迭代器 迭代器的定义 判断一个对象是否是迭代器 迭代器的取值 可迭代对象如何转化成迭代器 while循环模拟for循环机制 小结 可迭代对象与迭代器的对比 昨日内容回顾以及作业讲解 函数的参数: 实参角度:位置参数,关键字参数,混合参数. 形参角度:位置参数,默认参数,仅限关键字参数,万能参数. 形参角度参数顺序:位置参数,*args, 默认参

第十二天-函数名 迭代器

# 函数名的应用:# 函数名命名与变量相同# 函数名就是变量名,一个特殊的变量,与括号配合可以执行函数的变量,函数名存储的是函数的内存地址 # 函数名的内存地址 1 def func(): 2 print("哈哈") 3 4 print(func) # 打印结果:<function func at 0x000002BA13C199D8> 5 # 直接使用函数名得到的是函数名的内存地址 # 函数名可赋值给变量 1 def func(): 2 print("呵呵&qu

python_day04 函数嵌套 名称空间和作用域 闭包 装饰器 迭代器 生成器 列表解析 三元表达式 生成器表达式

本节课重要知识点内容如下: 函数嵌套 名称空间和作用域 闭包 装饰器 迭代器 生成器 列表解析 三元表达式 生成器表达式 1.函数嵌套 函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数 def bar(): print('from nbar')def foo(): print('from foo') bar()foo()def max2(x,y): if x > y: return x else: return ydef max4(a,

python入门基础-三元表达式、命名空间、作用域、函数名本质、闭包

1.三元表达式(三目运算式) #1 三元表达式(三目运算法) #格式为: 为真时的结果 if 判定条件 else 为假时的结果 #另外三元表达式只适合较为简洁的条件判定,较为复杂的判定建议不要用这种方式写代码,因为比较让他人难以理解. a = 10 b = 15 compare = a if a > b else b #谁大返回谁 print(compare) 2.命名空间(namespace) #2 命名空间(namespace) #命名空间是名称和对象的印象,也可以将命名空间理解成一个字典,

python 内置函数zip,map,三元,lambda表达式

#内置函数zip(),将多个可迭代对象(集合等)按照顺序进行组合成tuple元祖,放在zip 对象进行存储,: #当参数为空时候,返回空 #如果 zip() 函数压缩的两个列表长度不相等,那么 zip() 函数将以长度更短的列表为准; list_t1= [1,2,3] list_t2 =['apple','orange','banana'] list_t3 = [50,60,70,80] list_t4 = (500,600,700,800) list_z1 = zip(list_t1,list

第十一天 函数名的使用以及第一类对象, 闭包, 迭代器

本节主要内容: 1.函数名的使用以及第一类对象 2.闭包 3.迭代器 一.函数名的运用 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量 1.函数名的内存地址: 2.函数名可以赋值给其他变量 3.函数名可以当作容器类的元素(作为list元素) 4.函数名可以当作函数的 5.函数名可以作为函数的返回值 二.闭包 什么是闭包: 闭包就是内层函数, 对外层函数(非全局)的变量的引用. 叫闭包 在内存函数中调用了外层函数的变量,叫闭包.可以让一个局部变量常驻内存 使用__closur

python之函数名,闭包、迭代器

一.函数名的运用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量. 1,函数名的内存地址: def func(): print("呵呵") print(func) # 结果为:<function func at 0x00000000029299D8> 打印出func的内存地址 2,函数名可以赋值给其他变量: def func(): print("呵呵") a = func # 把函数当成一个变量赋值给另一个变量 a()

python函数名的应用、闭包和迭代器

一.函数名的应用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数变量. 1.函数名的内存地址 def func(): print("哈哈") print(func) #<function func at 0x000002750A7998C8> 2.函数名可以赋值给其他变量 def func(): print("哈哈") print(func) a = func #把函数当成一个变量赋值给另一个变量 a() #函数调用 fun

函数名的运用(第一类对象)以及闭包与迭代器

一.函数名的应用(第一类对象) 1.函数的命名规范和变量是一样的,函数名其实就是变量名. 2.函数名的内存地址 def func(): print("呵呵" print(func) 结果: <function func at 0x1101e4ea0> 3.函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调用 func() 结果: &