栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础 迭代器,生成器,模块,包,异常捕获

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础 迭代器,生成器,模块,包,异常捕获

文章目录
      • 一、迭代器
          • 迭代器(iter)是容器型数据类型;
          • 创建迭代器方法:
          • 迭代器的查操作
      • 二、生成器
          • 生成器是容器型数据类型,用于创建数据
          • 创建生成器 - 调用带有 yield关键字的函数
          • 定义生成器对应的函数
      • 三、模块
          • python中一个py文件就是一个模块
          • 使用原则:先导入再使用 (导入的模块名要符合变量命名要求)
          • 导入模块
          • 导入模块时选择性执行代码
      • 四、包
  • 包就是包含__init__.py文件的文件夹
          • 1.包用来管理py文件,对py文件按照特定的方式进行分类。
          • 2.使用方式:
      • 五、异常捕获
          • 执行程序的过程中,如果出现异常,会中断程序的执行(让程序提前结束)
          • 异常捕获 - 当程序出现异常时,不崩溃,可以接着往后执行。

一、迭代器
  1. 迭代器(iter)是容器型数据类型;

    print()无法查看迭代器元素,无法用len获取元素个数

    迭代器取元素需按顺序从上往下,依次取出,无法放回迭代器

  2. 创建迭代器方法:
    1. 用iter将其他序列转换成迭代器
    1. 创建生成器
    	i2 = iter([10, 20, 30, 40])
    print(i2)
    # print(len(i2))
    
  1. 迭代器的查操作

    当元素从迭代器中获取,被获取元素即被取出,无法放回。

    1. 获取单个元素: next(迭代器)

       print(next(i1))
      
    2. 遍历

      for x in i1:
          print(f'x:{x}')
      
    3. 迭代器转换成序列

      i3 = iter('hello')
      result = list(i3)
      print(result)
      
二、生成器
  1. 生成器是容器型数据类型,用于创建数据

    print()生成器无法查看元素,不支持len操作
    生成器获取元素需按顺序从上往下,依次取出,无法放回生成器。

  2. 创建生成器 - 调用带有 yield关键字的函数

生成器保存的并不是数据本身,而是产生数据的算法。

如果被调用的函数的函数体中有yield,调用函数的时候不会执行函数体,也不会获取函数返回值,而是得到一个生成器对象 (函数调用表达式的值就是生成器)

  1. 定义生成器对应的函数

执行函数体会遇到几次yield对应的生成器就可以创建多少个数据;

​ yield后面的值就是生成器获取的数据元素

def func2():
    yield 100
    yield 200
    yield 300


gen2 = func2()
print(next(gen2))
三、模块
  1. python中一个py文件就是一个模块
  2. 使用原则:先导入再使用 (导入的模块名要符合变量命名要求)
  3. 导入模块
    • import 模块名

    • from 模块名 import 变量1,变量2,…

    • from 模块名 import *

    • import 模块名 as 新模块名 ----(导入模块并对模块重命名)

    • from 模块名 import 变量1 as 新变量1, 变量2 as 新变量2, …

      -------(对导入的变量重命名)

    import test1
    from test1 import a, func1
    from test1 import *
    import test1 as t1
    from test1 import a, name as tname
    
  4. 导入模块时选择性执行代码

    方法:在被导入的模块中添加指定的if语句,

    (if __name__ == '__main__')
    

    将不需要被别的模块执行的代码放入到这个if语句中

#模块调用内以下for循环不会被执行
if __name__ == '__main__':
    for x in range(10):
        download_film(f'电影{x}')
四、包 包就是包含__init__.py文件的文件夹 1.包用来管理py文件,对py文件按照特定的方式进行分类。 2.使用方式:
# 1) import 包名  -导入指定的包,导入后可以通过'包名.xxx'的方式使用__init__.py文件中所有内容
# 2) import 包名.模块名  - 导入指定包中的指定模块(文件夹可用)
# 3) from 包名 import 模块名1,模块名2,...
# 4) from 包名.模块名 import 变量1, 变量2,...
===== 直接导入包 ======
import fileManager
fileManager.create_file()
print(fileManager.m)

===== 直接导入包中的模块 =====
import fileManager.operateFile
import files.test2

fileManager.operateFile.open_file()
fileManager.operateFile.close_file()

===== 直接导入包中的模块,然后重命名 =====
import fileManager.operateFile as file
file.close_file()
file.open_file()

===== 直接导入包中指定多个模块 =====
# from fileManager import operateFile, operateJsonFile as json
# operateFile.open_file()

# ===== 导入指定包名中指定模块中的指定内容 =====
# from files.test2 import x, func2
# print(x)
# func2()
五、异常捕获
  1. 执行程序的过程中,如果出现异常,会中断程序的执行(让程序提前结束)

    exit() - 让程序正常退出

  2. 异常捕获 - 当程序出现异常时,不崩溃,可以接着往后执行。

    注意:不要滥用异常捕获。如果是因为使用者使用不当导致程序出现异常,又希望在出现异常程序可以继续执行才使用异常捕获。

    结构1 - 捕获所有异常
    try:
    代码段1(需要捕获异常的代码段)
    except:
    代码段2(捕获到异常需要执行的代码段)

    执行过程:先执行代码段1,如果出现异常直接马上执行代码段2;如果没有出现异常,就不执行代码段2

    结构2 - 捕获指定异常
    try:
    代码段1(需要捕获异常的代码段)
    except 异常类型:
    代码段2(捕获到异常需要执行的代码段)

try:
    age = int(input('请输入年龄:'))        # ValueError
    if age >= '18':
        print('成年!')
    else:
        print('未成年!')
except:
    print('年龄输入有误!')

# age = int(input('请输入年龄:'))
thon
try:
    age = int(input('请输入年龄:'))        # ValueError
    if age >= '18':
        print('成年!')
    else:
        print('未成年!')
except:
    print('年龄输入有误!')

# age = int(input('请输入年龄:'))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1034830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号