python 学习第七天

python 学习第七天,第1张

概述一生成器#函数内但凡出现yield关键字,再调用函数不会执行函数体代码,会得到一个生成器对象#生成器就是一种自定义的迭代器#yiledvsretunrn:#相同点:返回值层面一样#不同点:return只能返回一次值函数就立即结束,而yiled可以返回多次值#案例deffunc():print('01

一 生成器

# 函数内但凡出现yIEld关键字,再调用函数不会执行函数体代码,会得到一个生成器对象# 生成器就是一种自定义的迭代器# yiled vs retunrn:# 相同点:返回值层面一样# 不同点:return只能返回一次值函数就立即结束,而yiled可以返回多次值# 案例def func():    print('01')    yIEld 1    print('02')    yIEld 2    print('03')    yIEld 3abc = func()res1 = next(abc)  # 01res2 = next(abc)  # 02res3 = next(abc)  # 03

二 生成式

# 1.列表生成式names = ['a', '1', 'b', 'c', '6', '7', '8']# new_1 = []# for name in names:#     if not name.isdigit():#         new_1.append(name)new_1 = [name for name in names if not name.isdigit()]print(new_1)# 2.字典生成式res = {i: i ** 2 for i in range(5)}print(res)# 3.集合生成式res = {i for i in range(5)}print(res)# 4.生成器表达式res = (i for i in range(5))print(next(res))

三 面向过程编程

# 面向过程编程是一种编程思想or编程范式# 优点:复杂的问题流程化、进而简单化# 缺点:牵一发而动全身,扩展性差

四 函数递归调用

# 函数递归调用:函数嵌套调用的一种特殊形式# 指的是调用函数的过程中直接或间接的调用自己# 案例def f1():    print('from f1')    f1()# 实际上递归的过程分两阶段:# 1.回溯:向下一层一层调用# 2.递推:向上一层一层返回def age(n):    if n == 1:        return 18    return age(n - 1) + 10res = age(5)print(res)

五 二分法

# 将找的值分为两份,取中间值# 案例nums = [5, 10, 20, 30, 40, 50, 60, 70, 80]find_num = 40def search(find_num, nums):    print(nums)    if len(nums) == 0:        print('not exists')        return    mID_index = len(nums) // 2    if find_num > nums[mID_index]:        new_nums = nums[mID_index + 1:]        search(find_num, new_nums)    elif find_num < nums[mID_index]:        new_nums = nums[:mID_index]        search(find_num, new_nums)    else:        print('find it')search(60, nums)

六 匿名函数

achIEvement = {    'xm': 90,    'xh': 95,    'xf': 100,}print(max(achIEvement,key=lambda k:achIEvement[k]))print(min(achIEvement,key=lambda k:achIEvement[k]))print(sorted(achIEvement))

七 模块的使用

'''1. 什么是模块(模块是一系列功能的集合体)模块分为四种类别:    a.一个py文件就可以是一个模块    b.包:就是一个存放有__inint__.py文件的文件夹    c.使用c编写并链接到python解释器的内置模块    d.已被编译为共享库或DLL的C或C++扩展模块三种来源:    a.python内置(import time)    b.第三方的库    c.自定义的库2. 为何要用模块    1.提升开发效率    2.解决代码冗余问题3.如何要用模块    学习自定义库(记懂创造又知道模仿)'''#首次导入模块发生三件事(模块spam.py)#1.会触发spam.py运行,产生一个模块的名称空间#2.运行spam.py的代码,将运行过程中产生的名字都丢掉模块名称空间中#3.在当前执行文件的名称空间中拿到一个名字spam,该名字就是指向模块的名称空间

八 import,from import

#import ATM import start(导入比较准确,但每次都得加前缀)#from ATM import start(可以节省时间,但容易冲突)#导模块可以导入多个,用逗号隔开。from ATM import *导入模块用*可以全导里面的名字

九 循环导入问题

#循环导入要把名字往前提#循环导入问题最好的解决办法就是尽量不用循环导入

十 模块的搜索路径

# 优先级(1.内存,2.内置 3.sys.path:强调sys.path是以执行程序为准的)
总结

以上是内存溢出为你收集整理的python 学习第七天全部内容,希望文章能够帮你解决python 学习第七天所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1187650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存