模块导入D11

一、异常捕获

异常捕获方式:

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("不能为负数")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣100】198.打家劫舍

添加链接描述 题目翻译&#xff1a; 选择一个nums[i]时&#xff0c;nums[i-1]和nums[i1]就不能选找出这个数组中最大的和 思路&#xff1a; dp[i]&#xff1a;在打劫到第i家时&#xff0c;能获取的最大金额dp[i]max(dp[i-1]nums,dp[i]) class Solution:def rob(self, nums: …

MySQL 存储过程(超详细)

一、什么是存储过程&#xff1f; 存储过程可称为过程化SQL语言&#xff0c;是在普通SQL语句的基础上增加了编程语言的特点&#xff0c;把数据操作语句(DML)和查询语句(DQL)组织在过程化代码中&#xff0c;通过逻辑判断、循环等操作实现复杂计算的程序语言。换句话说&#xff0c…

K倍区间(蓝桥杯)

文章目录 K倍区间题目描述前缀和数学优化代码部分解释 K倍区间 题目描述 给定一个长度为 N的数列&#xff0c;A1,A2,…AN&#xff0c;如果其中一段连续的子序列 Ai,Ai1,…Aj 之和是 K的倍数&#xff0c;我们就称这个区间 [i,j]是 K倍区间。 你能求出数列中总共有多少个 K倍区…

上海雷卯可以解决YPbPr/ YCbCr接口 ESD/EOS静电浪涌问题

YPbPr /YCbCr 接口传输的是视频信号&#xff0c;不传输音频信号。YPbPr 和 YCbCr 都是视频信号的颜色编码格式&#xff0c;多应用于机顶盒&#xff08;Set-top box&#xff09;,TV电视&#xff0c;投影仪&#xff0c;游戏机和DVD播放器。 YPbPr&#xff1a;是一种模拟视频接口…

05-调用API

上一篇&#xff1a; 04-JNI函数 调用 API 允许软件供应商将 Java VM 加载到任意本地应用程序中。供应商可以提供支持 Java 的应用程序&#xff0c;而无需链接 Java VM 源代码。 5.1 概述 下面的代码示例说明了如何使用调用 API 中的函数。在这个示例中&#xff0c;C 代码创建了…

Discuz论坛网站报错Discuz!Database Error(0)notconnect的解决办法

运营服务器大本营有段时间了&#xff0c;在运营期间遇到两次Discuz&#xff01;Database Error&#xff08;0&#xff09;notconnect报错&#xff0c;和你们分享遇到Discuz报错的解决办法&#xff0c;希望可以帮助到你。 首先网站报错&#xff08;0&#xff09;notconnect&…

【Web】浅聊Java反序列化之C3P0——JNDI注入利用

目录 简介 原理分析 EXP 前文&#xff1a;【Web】浅聊Java反序列化之C3P0——URLClassLoader利用 【Web】浅聊Java反序列化之C3P0——不出网Hex字节码加载利用 简介 出网的情况下&#xff0c;这个C3P0的Gadget可以和fastjson&#xff0c;Snake YAML , JYAML,Yamlbeans , …

如何防御udp攻击

UDP Flood是互联网上最经典的DDoS&#xff08;Distributed Denial of Service&#xff09;攻击之一。攻击者在短时间内向目标设备发送大量的UDP报文&#xff0c;导致链路拥塞甚至网络瘫痪。一般的UDP报文由攻击工具伪造&#xff0c;通常在数据段具备相同的特征&#xff0c;另一…

【嵌入式高级C语言】9:万能型链表懒人手册

文章目录 序言单向不循环链表拼图框架搭建 - Necessary功能拼图块1 创建链表头信息结构体 - Necessary2 链表头部插入 - Optional3 链表的遍历 - Optional4 链表的销毁 - Necessary5 链表头信息结构体销毁 - Necessary6 获取链表中节点的个数 - Optional7 链表尾部插入 - Optio…

网站开发之旅:从概念到实现

在我成为一名专业的网站开发者的过程中&#xff0c;我有幸参与了多个激动人心的项目。其中&#xff0c;一个我印象尤为深刻的经历是&#xff0c;开发一个名为“文案推荐网”的主题网站&#xff08;www.zimeiti.love&#xff09;。这个项目不仅让我深入了解了网站开发的各个方面…

excel常用操作备忘

目录 快捷键基础数据透视图统计某列的值出现的频数 数据有效性数据分列运算符顺序文本匹配中的通配符错误的类型&#xff08;常与IF嵌套使用&#xff09;函数RANK(num, ref, [order])MID(str, start, len)逻辑函数混合函数选取整列AVERAGEIF(range, criteria, average_range)TR…

mvp矩阵变换及世界坐标到屏幕坐标的实现

MVP矩阵是一种用于将对象的局部坐标(Model)转换到裁剪空间(Clip Space)的变换矩阵。MVP代表了Model-View-Projection,是由三个矩阵的组合构成的。 Model矩阵(M):模型变换用于将对象的局部坐标(模型空间或对象空间)转换到世界坐标系中。Model矩阵包括了平移、旋转、缩…

【软件测试面试】银行项目测试面试题+答案(一)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题&#xff1…

Unity类银河恶魔城学习记录9-2 P83 Explosive crystal源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Crystal_Skill_Controller using System.Collections; using System.Colle…

【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用

目录 一、Linux编译器-gcc/g1.1 gcc/g 使用方法1.2 程序的翻译过程1.3 链接 -- 动静态链接特点及区别 二、Linux调试器-gdb2.1 背景2.2 使用方法 三、Linux项目自动化构建工具-make/Makefile3.1 背景3.2 原理3.3 项目清理 一、Linux编译器-gcc/g 1.1 gcc/g 使用方法 格式&…

如何在Windows系统部署Jellyfin Server并实现公网访问内网影音文件

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

本地yum源的配置

①在根目录下&#xff0c;执行"mkdir /iso"创建本地yum源文件夹 ②使用SSH工具&#xff0c;将操作系统iso文件上传到iso目录下 ③mount /iso/xxx.iso /mnt ④cd /mnt ⑤cp -arp * /iso ⑥umount /mnt ⑦cd /etc/yum.repos.d ⑧mv *.repo *.repo.bak 把…

用BIO实现tomcat

一、前言 本课程的难度较高&#xff0c;需要将Servlet原理和IO课程全部学完。 二、当前项目使用方式 (1).自定义servlet 自定义servlet需要实现WebServlet并且实现name和urlMapping 重启进行访问 http://localhost:8090/myServlet (2).自定义html 重启进行访问 http://loc…

项目的搭建与配置

vue create calendar_pro 选择如下配置选项 安装 vue3 支持 vue add vue-next package.json 关闭 eslint 检测。 vue.config.js 配置跨域同源策略。 const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,devServe…

VSCode无法用ctrl+鼠标滚轮调整字体大小了

VSCode (Visual Studio Code) 中使用 Ctrl 鼠标滚轮来调整字体大小的功能通常是由 VSCode 的设置控制的。如果你发现这个功能不再工作&#xff0c;你可以尝试以下几个步骤来恢复或检查这个设置&#xff1a; 检查是否有冲突的快捷键或扩展&#xff1a; 打开 VSCode 的快捷键编辑…