Python日志11

模块包和异常学习总结

一、模块
  1. 认识模块

    • python中一个py文件就是一个模块
    • 分为系统模块和自定义模块:
      • 系统模块 — python自带的模块:functools、math、random、re、time、datetime、turtle
      • 自定义模块 —— 由程序员创建的模块
  2. 导入模块 —— 怎么在一个模块中去使用另一个模块中的内容

    • 前提:被使用模块的模块名必须符合变量名的要求(是标识符,不是关键字…)

    • 使用的内容(变量、函数、类)在另外一个模块中,使用之前必须先导入:

      • import 模块名 — 导入指定模块,导入后通过 ’‘ 模块名. ’‘ 的方式使用模块中所有的全局变量

        同时导入多个模块 — import 模块名1,模块名2,…

      • from 模块名 import 变量名1,变量名2,… — 导入后可以直接使用import后面所有的变量

      • **from 模块名 import *** — 导入指定模块,导入后可以直接使用模块中所有的全局变量

      • a. import 模块名 as 新模块名 — 重命名模块

        b. **from 模块名 import 变量名1,变量名2 as 新变量名2,… ** — 对变量重命名

      #导入方式1
      import demo1
      
      print(demo1.a1)
      print(demo1.name1)
      demo1.func1()
      
      import random
      print(random.randint(10, 20))
      
      同时导入两个模块
      import demo1, random
      
      #导入方式2
      from demo1 import a1, func1
      print(a1)
      func1()
      
      from random import randint
      print(randint(10, 20))
      
      #导入方式3
      from demo1 import *
      print(a1)
      print(name1)
      func1()
      
      #模块重命名
      import studentManagerSystem as SMS
      print(SMS.x)
      print(SMS.count)
      
      import demo1 as de
      demo1 = '测试'
      print(demo1)
      print(de.a1, de.name1)
      
      #变量重命名
      from demo1 import func1 as d_func1, name1, a1
      func1 = 'abc'
      d_func1()
      print(func1)
      print(name1)
      
  3. 导入的原理与阻止导入

    • 导入的原理:不管是通过import直接导入模块,还是通过from-import导入模块中的变量,原理都是进入指定模块,将模块中的代码全部执行一遍

    • 阻止导入:在被导入的模块中加入指定的if语句(main提示出的if语句)

      if  _ _ name  _ _  == ' _ _ main _ _':
      	需要被阻止导入的代码
      
二、包
  1. 什么是包

    包含 **_ _ init _ _ .py **文件的文件夹就是包

  2. 导入包中模块:

    • 方式一:import 包 . 模块 as 新的名字

      import package1.jsonfile as jsonfile
      jsonfile.read_json()
      
    • 方式二: .

      • from 包 import 模块1,模块2,…

      • from 包 import *

      from package1 import jsonfile, csvfile
      
      jsonfile.read_json()
      print(jsonfile.x, jsonfile.name)
      
      csvfile.write_data_to_csv()
      
    • 方式三:from 包 . 模块 import 变量1, 变量2,…

      from package1.jsonfile import read_json, name
      read_json()
      print(name)
      
      from package1.data.exceldata import xx
      print(xx)
      
    • 方式4:如果要使用包中 _ _ init _ _.py 中内容,直接用包去导入和使用

      from package1 import xx
      print(xx)
      
      import package1
      package1.open_file()
      print(package1.xx, package1.yy)
      
三、异常捕获
  1. 异常

    异常就是错误(程序报错 == 程序出现异常)

    如果执行程序的过程中出现异常,程序会直接结束,不会再接着往后执行

  2. 异常捕获

    • 异常捕获就是让程序在出现异常的时候不报错,并且程序可以继续执行

      什么时候需要异常捕获:出现异常原因不是代码错误,而是因为使用者操作不当导致的,又不想因此导致程序崩溃,就可以使用异常捕获

      语法1try:
          代码段1(需要捕获异常的代码段)
      except:
          代码段2(捕获到异常后会执行的代码)
      #执行过程︰先执行代码段1,执行过程中如果出现异常不报错马上执行代码段2,然后再执行后续的其他代码。如果没有代码段1没有出现异常,不执行代码段2,直接执行后续的其他代码。
      
      语法2try:
          代码段1(需要捕获异常的代码段)
      except 异常类型:
          代码段2(捕获到异常后会执行的代码)
          
      语法3 - 同时捕获多种异常,针对不同的异常做相同的处理
      try:
      	代码段1(需要捕获异常的代码段)
      except(异常类型1,异常类型2,...):
      	代码段2(捕获到异常后会执行的代码)
          
      语法4 - 同时捕获多种异常,针对不同的异常做相同的处理
      try:
      	代码段1(需要捕获异常的代码段)
      except异常类型1:
      	代码段11
      except异常类型2:
      	代码段22
      
      try:
          print('====')
          print({'a': 10}['b'])
          print('++++')
      except:
          print('出现了异常')
      
      
      try:
          age = int(input('请输入年龄(年龄是整数):'))
          print(age + '12')
      except:
          print('年龄输入有误!')
      
      try:
          age = int(input('请输入年龄(年龄是整数):'))
          print(age + '12')
      except ValueError:
          print('年龄输入有误!')
      
  3. 抛出异常 —— 主动让程序崩溃

    raise 异常类型

    raise IndexError
    
    class AgeError(Exception):
        def __str__(self):
            return '年龄的范围是0~150'
    
    
    age = int(input('请输入年龄(0~150):'))
    if age < 0 or age > 150:
        raise AgeError
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值