美文网首页
函数 四

函数 四

作者: 吃可爱长大鸭 | 来源:发表于2021-02-06 15:08 被阅读0次

三元表达式

#常规方案
def max2(x,y):
    if x > y:
        return x
    else:
        return y
res=max2(10,20)
print(res)
三元表达式
x=10
y=20

res=x if x > y else y
print(res)


res='OK' if False else 'No'
print(res)

列表生成式

列表生成式
l=[]
for i in range(10):
    if i > 4:
        l.append(i**2)

l=[i**2 for i in range(10) if i > 4]
print(l)

迭代器

'''
1. 什么是迭代器
    什么是迭代?
        迭代是一个重复的过程,但是每次重复都是基于上一次重复的结果而继续
        #下列循环知识单纯的重复
        while True:
            print(1)

        # 基于索引的迭代取值
        l=['a','b','c']
        i=0

        while i < len(l):
            print(l[i])
            i+=1
    什么是迭代器?
        迭代取值的工具



2. 为什么要用迭代器
    迭代器
        优点
            1. 提供一种不依赖索引的迭代取值方式
            2. 更节省内存
        缺点:
            1. 不如按照索引的取值方式灵活
            2. 取值一次性的,只能往后取,无法预测值的个数

3. 如何用迭代器
    可迭代的对象:str\list\tuple\dict\set\文件对象
        但凡内置有__iter__方法的对象都称之为可迭代对象

    迭代器对象: 文件对象
        既内置有__iter__方法又内置有__next__方法的对象都称之为迭代器对象


    调用可迭代对象下__iter__方法,会有一个返回值,该返回值就是内置的迭代器对象
'''
d={'k1':111,'k2':222,'k3':333}

iter_d=d.__iter__()
# print(iter_d)

try:
    print(iter_d.__next__())
    print(iter_d.__next__())
    print(iter_d.__next__())
    print(iter_d.__next__())
except StopIteration:
    print('取值完毕')
'''
#for循环的底层原理:
# 1. 调用in后面那个值/对象的__iter__方法,拿到一个迭代器对象iter_obj
# 2. 调用迭代器对象iter_obj.__next__()将得到的返回值赋值变量名k,循环往复直到取值完毕抛出异常StopIteration
# 3. 捕捉异常结束循环

生成器

生成器就是一种自定义的迭代器

如何得到生成器?
    但凡函数内出现yield关键字,再去调用函数不会立即执行函数体代码,会得到一个返回值,该返回值就是生成器对象,即自定义的迭代器
'''
总结yield:
1. 提供一种自定义迭代器的解决方案
2. yield & return
   相同点: 都可以返回值,返回值没有类型限制\个数限制
   不同点: return只能返回一次值,yield却可以让函数暂停在某一个位置,可以返回多次值
def func():
    print('first')
    yield 1
    print('second')
    yield 2
    print('third')
    yield 3


g=func()
# print(g)

res1=next(g)
print(res1)

res2=next(g)
print(res2)

res3=next(g)
print(res3)

next(g)

函数的递归调用与二分法

'''
1. 函数的递归调用:
    在调用一个函数的过程又直接或者间接地调用该函数本身,称之为递归调用

    递归必须满足两个条件:
        1. 每进入下一次递归调用,问题的规模都应该有所减少
        2. 递归必须有一个明确的结束条件
# 以下递归只是单纯的重复,没有意义
# def func():
#     print(1)
#     print(2)
#     print(3)
#     func()
#
# func()

# def bar():
#     print('from bar')
#     foo()
#
# def foo():
#     print('from foo')
#     bar()
#
# foo()
    递归有两个明确的阶段:
        1. 回溯
        2. 递推
'''
def binary_search(list1,find_num):
    print(list1)
    if len(list1) == 0:
        print('not exist')
        return
    mid_index=len(list1) // 2
    if find_num > list1[mid_index]:
        # in the right
        binary_search(list1[mid_index + 1:],find_num)
    elif find_num < list1[mid_index]:
        # in the left
        binary_search(list1[:mid_index],find_num)
    else:
        print('find it')

binary_search(nums,203)

如何区分python文件的两种用途

def f1():
    print('f1')

def f2():
    print('f2')

if __name__ == '__main__':
    f1()
    f2()

# print(__name__)
# 当文件被当作执行文件执行时__name__的值为__main__
# 当文件被当作模块导入时__name__的值为模块名mmm

相关文章

  • 四、函数

    函数 函数是 JavaScript 应用程序的基础,它帮助你实现抽象层,模拟类,信息隐藏和模块。在 TypeScr...

  • 四,函数

    四、函数的使用 函数的基本使用[图片上传失败...(image-b2c144-1555236216120)] 函数...

  • 函数 四

    三元表达式 列表生成式 迭代器 生成器 函数的递归调用与二分法

  • SQL常用单行方法

    一、字符函数 二、数字函数 三、日期函数 四、其他函数 五、流程控制函数 六、分组函数

  • 函数

    函数的分类,分别有四种函数、递归函数、匿名函数。 四种函数函数根据有没有参数,有没有返回值,可以相互组合,一共有4...

  • excel四舍五入函数视频-excel中INT函数视频和exce

    excel四舍五入函数视频 excel中INT函数视频 excel的row函数视频 excel四舍五入函数视频-e...

  • MYSQL基础函数

    一、数学函数 二、字符串函数 三、日期时间函数 四、系统信息函数 五、加密函数

  • 四、SQL函数④(其他函数)

    类型转换 隐式转换:数据库系统自动将字符串类型转换为整数类型显式转换:使用类型转换函数转换。使用类型转换函数不仅可...

  • Python小白学习进行时---函数(三)(2018-06-23

    一、函数变量 二、匿名函数 三、递归函数 四、函数的调用过程 五、使用函数模块 一、函数变量 1、函数名就是函数类...

  • swift基础语法(函数)

    一、函数的基本使用 二、函数的使用注意 --- 参数名 三、函数的使用注意 --- 函数类型 四、函数嵌套

网友评论

      本文标题:函数 四

      本文链接:https://www.haomeiwen.com/subject/fghotltx.html