B站python爬虫课程笔记(Q16-)

  下面是学习的网址:

​​​​​​【Python+爬虫】

16、捕捉异常try&except语句的一些问题

1)一些常见的异常类型

IndexError索引错误ZeroDivisionError除零错误
FileNotFindError找不到文件错误TypeError类型错误
KeyError键错误ValueError值错误
IndentationError缩进错误ImportError导入模型错误
ArithmeticError计算错误SyntaxError语法错误
AttributeError属性错误............

对于我这个初学者,出现最多的应该是SyntaxError语法错误了,不是忘记冒号,就是忘记语法应该怎么用了。

2)try&except的使用

我也贴上我自己有注释的代码:

try:  # 下面缩进写可能会出现错误的地方user_weight = float(input("请输入您的体重(单位:斤):"))user_height = float(input("请输入您的身高(单位:厘米):"))user_BMI = (user_weight / 2) / ((user_height / 100) ** 2)
except ValueError:  # except后面直接加可能出现的错误类型,这个错误类型必须显示为一个独特的颜色,这里为值错误类型print("输入不为合理数值,请重新运行程序,并输入正确的数字。")
except ZeroDivisionError:  # 此处为除零错误类型print("身高不能为零,请重新运行程序,并输入正确的数字。")
except:print("发生了未知错误,请重新运行程序。")
else:print("您的BMI值为" + str(user_BMI))  # 都没有错误的话输出BMI值
finally:print("程序运行结束")# 无论是否有错误,最终输出都会打印这一句话

 对于第三个except后面没有跟错误类型,PyCharm是会有警告的,但是没有影响,因为它默认后面是需要填一个错误类型的。

 17、测试Bug的一些问题

1)assert断定函数的使用

"assert + 布尔值表达式",用这种方法来测试用例,但是缺点是一行报错就会中止(AssertionError断言错误),后面的用例也就不能测试了。

2)unittest单元测试库的一些问题

下图是unittest。TestCase类的常见测试方法:

 !!!这一部分实在是太难了,建议多看看原视频,我贴上UP主的代码。

# 这是实现代码
class ShoppingList:"""初始化购物清单,shopping_list是字典类型,包含商品名和对应价格例子:{"牙刷": 5, "沐浴露": 15, "电池": 7}"""def __init__(self, shopping_list):self.shopping_list = shopping_list"""返回购物清单上有多少项商品"""def get_item_count(self):return len(self.shopping_list)"""返回购物清单商品价格总额数字"""def get_total_price(self):total_price = 0for price in self.shopping_list.values():total_price += pricereturn total_price
# 这是测试代码
'''
注意:此文件是针对以下类的测试文件。
你可以在此文件同一文件夹下新建shopping_list.py,并复制以下内容到该文件:class ShoppingList:"""初始化购物清单,shopping_list是字典类型,包含商品名和对应价格例子:{"牙刷": 5, "沐浴露": 15, "电池": 7}"""def __init__(self, shopping_list):self.shopping_list = shopping_list"""返回购物清单上有多少项商品"""def get_item_count(self):return len(self.shopping_list)"""返回购物清单商品价格总额数字"""def get_total_price(self):total_price = 0for price in self.shopping_list.values():total_price += pricereturn total_price
'''import unittest
from shopping_list import ShoppingListclass TestShoppingList(unittest.TestCase):def setUp(self):self.shopping_list = ShoppingList({"纸巾": 8, "帽子": 30, "拖鞋": 15})def test_get_item_count(self):self.assertEqual(self.shopping_list.get_item_count(), 3)def test_get_total_price(self):self.assertEqual(self.shopping_list.get_total_price(), 55)

 要测试的时候需要在终端输入: python -m unittest 回车。

此处的shopping_list实现代码的文件名Shoppinglist是需要测试的对象,如定义的函数等。

为了避免后面重复编写相同的开头测试语句,在定义类的第一个函数运用了setUp(self)

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

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

相关文章

「Linux系列」了解下Linux yum(包管理工具)

文章目录 一、yum简介二、yum语法1. 基本语法2. 常用选项(options) 三、yum常用命令1. 安装软件包2. 更新软件包3. 卸载软件包4. 搜索软件包5. 列出软件包6. 查看软件包信息7. 清理缓存8. 检查可用更新9. 自动应答yes案例代码案例1:安装Apach…

4.netsh wlan 查看无线网卡的属性?如何查看电脑支持WIFI5还是WIFI6?如何查看曾经电脑连过的WIFI密码呢?

目录 (1)netsh命令简介和用途 (2)netsh(针对网络接口)命令 1.netsh wlan set tracing mode=yes(开启无线追踪日志) 2.netsh wlan show drivers 查看电脑无线网卡属性(重点)支持WIFI6还是WIFI5

微信小程序 canvas层级过高覆盖原生组件

一、背景 微信小程序中使用signature第三方插件完成签名效果&#xff0c;但真机调试时发现canvas层级过高遮挡了按钮 二、具体问题 问题原因&#xff1a;签名后点击按钮无法生效 问题代码&#xff1a; <template><view class"sign_page" v-cloak>&l…

创建一个针对单个问题的GPT风格语言模型

标题&#xff1a;为单一问题创建类似GPT的语言模型 正文&#xff1a; 中国的研究人员开发了一种经济高效的方法&#xff0c;用于创建类似GPT-3的自然语言处理系统&#xff0c;同时避免了训练大规模数据集所需的时间和金钱成本——这一趋势日益增长&#xff0c;否则可能会将这…

51单片机学习笔记7 串转并操作方法

51单片机学习笔记7 串转并操作方法 一、串转并操作简介二、74HC595介绍1. **功能**&#xff1a;2. **引脚**&#xff1a;3. **工作原理**&#xff1a;4. 开发板原理图&#xff08;1&#xff09;8*8 LED点阵&#xff1a;&#xff08;2&#xff09;74HC595 串转并&#xff1a; 三…

Android Kotlin版封装EventBus

文章目录 Android Kotlin版封装EventBus代码封装添加依赖库定义消息类定义常量值定义注解定义工具类 使用在Activity中在Fragment中发送事件 源码下载 Android Kotlin版封装EventBus 代码封装 添加依赖库 implementation("org.greenrobot:eventbus:3.3.1")定义消息…

AIGC从入门到精通

目录 1. 概述 2. 一键起飞 2.1 webui 2.2 基础用法​​​ 2.3 必装插件 2.4 Stable Diffusion WebUI Forge 2.5 ComfyUI 2.6 Fooocus 2.7 diffusers 3 LoRA 3.1 原理 3.2 训练流程和准备 3.3 上手训练 4. 深入原理 4.1 使用教程 4.2 原理 4.3 训练阶段 4.4 …

蓝桥杯刷题|03普及-真题

[蓝桥杯 2017 省 B] k 倍区间 题目描述 给定一个长度为 N 的数列&#xff0c;​,,⋯&#xff0c;如果其中一段连续的子序列 ​,,⋯ (i≤j) 之和是 K 的倍数&#xff0c;我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗&#xff1f; 输入格式 …

Unix运维_FreeBSD-13.1临时环境变量设置(bin和include以及lib)

Unix运维_FreeBSD-13.1临时环境变量设置(bin和include以及lib) 在 FreeBSD 系统上设置用户环境变量可以通过编辑用户的 Shell配置文件 来实现。 cshrc 与 csh_profile 的区别: cshrc: 每个脚本执行前都执行一遍这个脚本。 csh_profile: 根据不同使用者用户名, 会先去其 home…

unity专题(1)背景图片的设置

众所周知&#xff0c;游戏是需要背景图片的。 假如说&#xff0c;我们下载了一个标准的1920*1080的背景图片&#xff0c;现在我们需要把他放游戏里并填满窗口&#xff0c;怎么做呢&#xff1f; 第一步、导入图片 直接将图片拖到Project窗口下的Assets目录&#xff0c;就算成…

Spark 3.5.0 特性速览

介绍 Spark 3系列已经发布了第六版3.5.0&#xff0c;目前最新3.5.1。 使用最广泛的大数据可扩展计算引擎。数以千计的公司&#xff0c;包括 80% 的财富 500 强企业&#xff0c;都在使用 Apache Spark。来自业界和学术界的 2000 多名开源项目贡献者。 Apache Spark 3.5.0 是…

抖音视频爬虫提取工具界面|视频批量下载软件

抖音视频爬虫界面解析 一&#xff1a;概述 抖音视频爬虫是一款功能强大的工具&#xff0c;主要提供关键词批量提取视频和单独视频提取的功能&#xff0c;并支持提取后的视频下载操作。 二&#xff1a;功能解析 2.1&#xff1a;关键词批量提取视频的解析 用户可以通过输入关键…

c++分数计算器

定制魏:QTWZPW,获取更多源码等 目录 题目与要求 类声明 构造函数 核心算法实现说明 效果测试 加法测试 减法测试 乘法测试 ​编辑 除法测试 总结 完整代码 题目与要求 定义一个整数类。 定义一个分数类,由整数类派生。能对分数进行各种计算和输入/输出。 (1)定…

压敏电阻的工艺结构原理及选型参数总结

🏡《总目录》 目录 1,概述2,工作原理3,结构特点3.1,材料特性3.2,芯片结构3.3,封装结构4,工艺流程4.1,材料准备4.2,制备电极4.3,陶瓷材料涂布4.4,高温烧结5,选型参数5.1

Kotlin中单例模式和Java的对比浅析

前言 单例模式&#xff0c;一直以来是我们在日常开发中最常用的一种设计模式&#xff0c;更是面试中非常重要&#xff0c;也非常容易被问到的问题。在日常开发中&#xff0c;大家常用的语言还是Java&#xff0c;但今天我给大家带来的是在Kotlin语言中&#xff0c;单例模式是怎…

计算机服务器中了faust勒索病毒怎么办?Faust勒索病毒解密工具流程

在科技技术飞速发展的今天&#xff0c;网络计算机技术也得到了极大发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;越来越多的企业利用网络开展各项工作业务&#xff0c;许多企业离开了网络几乎很难运转&#xff0c;这也导致了企业越来越重视网络安全问题。近日&a…

第二证券策略:股指预计维持震荡格局 关注汽车、半导体等板块

第二证券指出&#xff0c;方针组合拳齐下&#xff0c;商场蓄势待起&#xff0c;短期指数或向上挑战3100点&#xff0c;低位业绩板块、叠加AI或是3月商场主要出资主线&#xff0c;尽管商场情绪高涨&#xff0c;但不主张情绪化追涨&#xff0c;究竟上方还有压制&#xff0c;放量打…

2024.3.19

1.哈希表 代码&#xff1a; #include"hash.h"//申请结点 node_p create_node(int data) {node_p new (node_p)malloc(sizeof(node));new->data data;return new; } //存入哈希表 void insert(node_p H[],int key) {//数据要存入哈希表中指定下标的位置int i …

【Mysql数据库基础03】分组函数(聚合函数)、分组查询

分组函数(聚合函数&#xff09;、分组查询 1 分组函数1.1 简单的使用1.2 是否忽略null值1.3 和关键字搭配使用1.4 count函数的详细介绍1.5 练习 2 分组查询Group by2.1 简单的分组查询2.2 练习 3 格式投票:yum: 1 分组函数 1.1 简单的使用 COUNT(expression)&#xff1a;计算符…

《C++新经典对象模型》之第6章 对象构造语义学

《C新经典对象模型》之第6章 对象构造语义 6.1 继承体系下的对象构造6.1.1 对象的构造顺序6.1.2 虚函数6.1.3 构造函数中对虚函数的调用06.01.cpp 6.2 对象复制语义学与析构函数语义学6.2.1 对象的默认复制行为6.2.2 拷贝赋值运算符与拷贝构造函数6.2.3 禁止对象的拷贝构造和赋…