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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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;关键词批量提取视频的解析 用户可以通过输入关键…

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;计算符…

一维小波包的分解与重构程序深入学习——Matlab

绘制上述图的matlab程序为&#xff1a; clear all; close all; load noisdopp; xnoisdopp; wptwpdec(x,3,db1,shannon) %返回小波包树&#xff0c;设置采用的熵为shannon plot(wpt); %% 学习目标&#xff1a;一维小波包的分解和重构深入学习 %% 获取小波树上某个节点的小…

代码随想录day21(1)二叉树:平衡二叉树(leetcode110)

题目要求&#xff1a;判断一棵树是否为平衡二叉树 思路&#xff1a;递归地比较左右子树&#xff0c;只要有一棵子树不满足条件就说明这棵树不是平衡二叉树。本题采用迭代法较为复杂。 leetcode实战&#xff1a; 代码实现&#xff1a; 递归&#xff1a; 迭代&#xff1a;

python失物招领系统-安卓-flask-django-nodejs-php

对于本失物招领 的设计来说&#xff0c; 它是应用mysql数据库、安卓等技术动态编程以及数据库进行努力学习和大量实践&#xff0c;并运用到了 建设中在整个系统的设计当中&#xff0c;具体根据网上失物招领的现状来进行开发的&#xff0c;具体根据用户需求实现网上失物招领网络…

Java 设计模式系列:行为型-状态模式

简介 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;允许一个对象在其内部状态改变时改变其行为。状态模式中类的行为是由状态决定的&#xff0c;在不同的状态下有不同的行为。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂…

[Labtools 27-1429] XML parser encountered a problem in file

平台&#xff1a;Vivado2108.3 最近在使用vivado的debug过程中发现&#xff0c;编译好工程后打开open hardware manager出现如下错误。 [Labtools 27-1429] XML parser encountered a problem in file E:/githome/xxxx/hw_1/hw.xml at line 1 : XML character encoding not su…

智能合约语言(eDSL)—— 使用rust实现eDSL的原理

为理解rust变成eDSL的实现原理&#xff0c;我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力&#xff0c;使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…

机器人离散化阻抗控制

机器人离散化阻抗控制是一种控制策略&#xff0c;它结合了阻抗控制的思想与离散化方法&#xff0c;以实现对机器人运动与外力之间动态关系的精细调节。这种控制方法旨在使机器人在与环境交互时能够表现出期望的阻抗特性&#xff0c;从而实现对接触力和位置的精确控制。 在离散…

STM32—控制蜂鸣器(定时器)

目录 1 、 电路构成及原理图 2 、编写实现代码 main.c tim_irq.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 定时器中断是利用定时器的计数功能&#xff08;向上计数或向下计…

算法---二分查找练习-3(山脉数组的顶峰索引)

山脉数组的顶峰索引 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 初始化两个指针 left 和 right&#xff0c;分别指向数组的起始位置和结束位置。 进入循环&#xff0c;循环条件为 left < right。 在每次循环中&…

Visual Studio - 添加快捷键图标

Visual Studio - 添加快捷键图标 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize2. Toolbars3. Commands -> Debug4. Add Command...References 1. Text Editor Toolbar Options -> Add or Remove Buttons -> Customize 2. Toolbars B…