模块导入D11

本文详细介绍了Python中的异常捕获机制,包括try...except...的不同用法,模块和包的概念,以及模块的导入、分类和命名规则。同时,通过实例展示了如何在实际场景中处理用户输入异常和进行BMI计算,以及如何根据__name__判断代码执行条件。
摘要由CSDN通过智能技术生成

一、异常捕获

异常捕获方式:

1) try...except...

2)try...except Exception as e

3)try...except ValueError...

4)try...except(indexError,KeyError)  分组

5)try...except...finally...

抛出异常方式:raise

二、模块导入

1、什么是模块:.py文件就是模块(实际上.pyc .pyo 【so dll动态库】)

什么是包:包含了__init__.py的模块的文件夹(目录)就是

2、模块和包的作用:为了组织管理代码

3、模块的导入方式

from ... import ... :可以简化模块调用

import ... :可以导入模块;也可以导入包 路径.路径.模块名 路径从项目根目录开始

模块导入:使用其他模块里面的函数,变量,类等就叫模块导入。

4、模块分类:内置模块;第三方模块;自定义模块

5、__name__ 当前文件的模块名

通过模块导入形式运行的,__name__就是模块名

直接运行的文件,__name__就是固定的:__main__

if __name__ == "__main__":

    print("......")

    #测试代码

扩展:

from ... import *  从模块当中导入所有的代码 可能会和这个模块里的函数重名

from ... import sth as other  取别名,避免重名

模块导入的搜索路径:

import sys

print(sys.path)

附带代码:

# 导入系统模块
import datetime
import os

# 导入第三方模块
import pytest
from openpyxl import Workbook

# 导入自定义模块
from local_module import local_class


# 在代码的最下方
def main():
    """
    注释
    """
    pass


# 根据 __name__ 判断是否执行下方代码
if __name__ == "__main__":
    main()

上期答案:

# !/usr/bin/python3
# Author: wuyi
# --*--coding: utf-8 --*--
# @Time: 2020/11/26 13:52
# @file: t_11异常捕获.py

"""
异常作业
1. 异常捕获的语法是什么样的?    请列举你会的错误类型。
2. 输入用户的体重身高,计算 bmi, (规则前面作业有)
考虑异常情况
3.编写如下程序
优化去生鲜超市买橘子程序
a.收银员输入橘子的价格,单位:元/斤
b.收银员输入用户购买橘子的重量,单位:斤
c.计算并且 输出 付款金额
新需求:
d.使用捕获异常的方式,来处理用户输入无效数据的情况
"""

# 1. 异常捕获的语法是什么样的?    请列举你会的错误类型。
# IndexError: list index out of range 下标索引超出序列边界
# ZeroDivisionError: division by zero
# TypeError: unsupported operand type(s) for /: 'int' and 'str' 传入的对象类型与要求不符
# IndentationError: unexpected indent
# NameError: name 'a' is not defined 使用一个还未赋予对象的变量
# SyntaxError: invalid syntax 代码逻辑语法出错,不能执行;不能去捕获
# KeyError: 'k' 试图访问字典中不存在的键
# ValueError: could not convert string to float: 't' 传入一个不被期望的值,即使类型正常
# ImportError:无法导入模块或包
# IOError:输入输出异常。文件操作

# try 要运行的有可能发生异常的代码:
#     代码
# except 异常:
#    出现异常的时候要执行的操作(运行的代码),记录日志


# 2. 输入用户的体重身高,计算 bmi, (规则前面作业有)
# 题目:输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数
# a.例如:一个65公斤的人,身高是1.62m,则BMI为 :  65 / 1.62 ** 2 = 24.8
# b.根据BMI指数,给与相应提醒
# 低于18.5: 过轻 18.5-25:   正常 25-28:      过重 28-32:      肥胖 高于32:   严重肥胖
# 考虑异常情况
# def bmi(height, weight):
#     bmi = weight / height ** 2
#     if bmi < 18.5:
#         return "过轻"
#     elif 18.5 <= bmi <= 25:
#         return "正常"
#     elif 25 <= bmi <= 28:
#         return "过重"
#     elif 28 <= bmi <= 32:
#         return "肥胖"
#     elif bmi > 32:
#         return "严重肥胖"
#
#
# height = "a"
# weight = "b"
# try:
#     print(bmi(height, weight))
# except ZeroDivisionError:
#     print("height 不能为0")
# except TypeError:
#     print("必须输入2个数字类型")


# 3.编写如下程序
# 优化去生鲜超市买橘子程序
# a.收银员输入橘子的价格,单位:元/斤
# b.收银员输入用户购买橘子的重量,单位:斤
# c.计算并且 输出 付款金额
# 新需求:
# d.使用捕获异常的方式,来处理用户输入无效数据的情况

price = input("请输入橘子单价:")
weight = input("请输入橘子重量:")

try:
    price = float(price)
    weight = float(weight)
except ValueError:
    print("必须输入2个数字类型")

if price >= 0 and weight > 0:
    print(price*weight)
else:
    raise ValueError("不能为负数")
    # 有负数
    # 重新输入
    # raise ValueError("不能为负数")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值