当前位置: 首页 > news >正文

期末总复习(重点!!!)

一、第6章异常处理¶

1、什么是异常、什么是异常处理异常是指程序在运行过程中发生的错误事件,影响程序的正常执行。异常并不是一定会发生,默认情况下,程序运行中遇到异常时将会终止,并在控制台打印出异常出现的堆栈信息。异常处理是指程序设计时为了避免因异常而导致程序终止而做的一些额外操作。异常处理可以使得异常出现后,程序仍然可以执行。(2)、常见的异常错误

In [1]:

print(a)   #变量未定义的异常
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10324\4250713135.py in <module>
----> 1 print(a)   #变量未定义的异常NameError: name 'a' is not defined

In [2]:

print('OK'   #语法错误异常
  File "C:\Users\Administrator\AppData\Local\Temp\ipykernel_10324\3139688914.py", line 1print('OK'   #语法错误异常^
SyntaxError: unexpected EOF while parsing

In [3]:

list = [1,4,6,4]
list[10]     #下标索引异常
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10324\277762902.py in <module>1 list = [1,4,6,4]
----> 2 list[10]     #下标索引异常IndexError: list index out of range

In [4]:

10/0   #除数为0,执行除法异常
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10324\2083481908.py in <module>
----> 1 10/0   #除数为0,执行除法异常ZeroDivisionError: division by zero

In [6]:

a = input('a:')
10/a   #执行了类型不支持的操作 改为int(input('a:'))
a:12
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_10324\428881340.py in <module>1 a = input('a:')
----> 2 10/a   #执行了类型不支持的操作 改为int(input('a:'))TypeError: unsupported operand type(s) for /: 'int' and 'str'

2、如何处理异常

    Python中通常将可能发生异常的代码放在try语句中,如果发生异常则通过except语句来捕获异常并对做一些额外处理,如果没有发生异常则执行后面的else语句,最后执行finally语句做一些收尾操作。   Python中还提供了raise语句允许用户主动抛出异常,raise关键字后面需要提供一个异常实例或者异常类,如果传递的是异常类,则会调用无参数的构造方法来实例化对象。如果捕获到了异常,但是暂时不处理,可以直接通过raise语句抛出异常,此时raise关键字后面什么都不用写。

In [11]:

try:a = eval(input('请输入a:'))b = 10/a
except:if a==0:print('ZeroDivisionError,除数不能为0!')
else:print('b = ',b)print('表达式合法!')
finally:c = a+bprint('c = ',c)
请输入a:0
ZeroDivisionError,除数不能为0!
c =  1.0

In [12]:

B=[1,2, 3, 4,5]
try:a=b[10]   #(B和b应该一致)
except IndexError:print('IndexError') 
except:print('Error') 
else:print('OK') 
finally:print('Exit')
Error
Exit

In [13]:

def test(a,b):    #3、try... except...finally结构 try:c=a+b return cexcept Exception as e:print(e)     #打印异常信息 c=[] return c finally:c.append(5)print("finally子句")print("finally语句中的c=",c) print("函数执行结束!")test([2],[4])   #调用函数,传递参数
finally子句
finally语句中的c= [2, 4, 5]

Out[13]:

[2, 4, 5]

In [20]:

#实例:定义一个函数,验证密码字符串长度是不断为6-10, 不符合要求时抛出异常。(设置密码验证) 
def check_str(content):       #用raise抛出自定义异常 if (len(content)<6 or len(content)>12):raise ValueError('长度应在6-12位之间,当前长度为:'+str(len(content)))  #raise语句允许用户主动抛出异常else:print('长度符合要求!')#调用函数,不捕获异常(发生异常时,打印异常堆栈信息)
ss = input('请输入一个长度在6到12位之间的密码字符串:') 
check_str(ss)
请输入一个长度在6到12位之间的密码字符串:436457
长度符合要求!

二、第6章函数¶

1、参数类型¶
    可变长度参数是指函数定义时,无法确定参数的个数。例如系统中的 print函数,不知道用户需要打印多少个对象,此时将需要打印的内容定义为可变长度参数,根据调用者传递的实际参数来确定参数的长度。Python中可变长度参数有两种形式:*参数名和**参数名。(1)*参数名:表示该参数是一个元组类型,可接受多个实参,并将传递的实参依次存放到元组中,主要针对以位置传值的实参;(2)**参数名:表示该参数是一个字典类型,可接受多个实参,并将传递的键值对放到集合中,主要针对以关键字传值的实参。

In [27]:

def fun_1(a,*b):print('a = ',a)print('b = ',b)fun_1(10,10,20,8,20,60)   #b的值为元组
a =  10
b =  (10, 20, 8, 20, 60)

In [28]:

def fun_2(a,**b):print('a = ',a)print('b = ',b)fun_2(10,c=10,d=20,e=8,f=20,g=60)   #b的值为字典
a =  10
b =  {'c': 10, 'd': 20, 'e': 8, 'f': 20, 'g': 60}
2、变量作用域¶
    根据变量定义的位置,可将变量分为全局变量和局部变量。(1)全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作。如果有赋值语句,相当于创建了一个同名的局部变量;(2)局部变量:定义在函数内部的变量,只能在它被定义的函数中使用。在函数外面无法直接访问。(3)注意:当局部变量和全局变量同名时,在函数内部使用变量时,通常都是指局部变量,如果确实需要对全局变量进行修改,需要使用global关键字对变量进行声明,此时操作的就是全局变量了。

In [30]:

def fun_3():print(a)   #在函数内部访问全局变量a = 10
fun_3()
print(a)
10
10

In [31]:

def fun_4():a = 8   #在函数内部定义同名的局部变量print(a)a = 10
fun_4()
print(a)
8
10

In [34]:

def fun_5():global a   #在函数内部对全局变量操作(将局部变量转换成全局变量)a = 8   #给全局变量赋值print('局部变量a = ',a)a = 10   #相当于局部变量的实参
fun_5()
print('全局变量a = ',a)
局部变量a =  8
全局变量a =  8

In [33]:

def fun_6():a.append(12)   #在全局变量为可变序列时,可直接在函数内部对全局变量操作print(a)a = [1,2,3]
fun_6()
print(a)
[1, 2, 3, 12]
[1, 2, 3, 12]
3、特殊函数:¶
    匿名函数1ambda表达式:没有函数名字的临时使用的函数,可以将1ambda表达式看成是函数的简写形式。(1)lambda表达式的语法:lambda 参数列表:表达式(2)与函数区别:关键字不同:def、lambda;没有名称;参数列表不需要一对圆括号,只包含一个表达式,不能包含多条语句。(3)lambda表达式的主体是一个表达式,而不是一个代码块,在表达式中可以调用其它函数,并支持默认值参数和关键字参数,表达式的结果相当于函数的返回值。

In [39]:

#lambda表达式形式
lambda_func = lambda x:x * 2   #将lambda定义的函数赋值给一个变量print(lambda_func(5))
print(lambda_func("5"))#函数形式
def lambda_func(x):return x * 2print(lambda_func(5))
print(lambda_func("5"))
10
55
10
55

In [36]:

x = 2
y = 3
z = 7
x+y+z

Out[36]:

12

In [37]:

def test(x,y,z):return x+y+ztest(2,3,7)

Out[37]:

12

In [40]:

test = lambda x,y,z:x+y+z

In [41]:

test(2,3,7)

Out[41]:

12

In [49]:

teat2 = lambda x=4,y=6,z=12:x**2+y*2+z/3
teat2(4,6,12)

Out[49]:

32.0

三、数据结构¶

    1、元组:是不可变序列,不可修改里面的元素。元组中元素放在一对圆括号“()”中,并用逗号分隔,元素类型可以不同。注意:当元组中只包含一个元素时,元素后面的逗号不能省略,否则系统会将其看做是其他数据类型。2、列表:是有序可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号隔开,元素的类型可以不同。3、字符串:由字符组成的一个不可变序列,和元组作用类似,也支持索引、切片、重复、合并等操作。4、字典:无序的映射类型,由若干”键(key):值(value)”组成,“键”和“值”之间用冒号隔开,所有“键值对”放在一对大括号“{}”内,并用逗号分隔。其中“键”必须为不可变类型,在同一个字典中,“键”必须是唯一的,但“值”可以重复。5、集合:是无序可变不重复的,不支持索引、切片等操作。元素放在一对大括号“{}”中,并用逗号分隔,元素类型可以不同,但集合中元素不能重复。集合中不能包含可变元素,例如列表。注意:不能直接通过a={} 创建空集合,此时创建的是一个空字典。可通过循环遍历集合中的所有元素。
1、列表切片:列表对象[start:end:step]

相关文章:

期末总复习(重点!!!)

一、第6章异常处理 1、什么是异常、什么是异常处理异常是指程序在运行过程中发生的错误事件&#xff0c;影响程序的正常执行。异常并不是一定会发生&#xff0c;默认情况下&#xff0c;程序运行中遇到异常时将会终止&#xff0c;并在控制台打印出异常出现的堆栈信息。异常处理…...

input 获取焦点后样式的修改

一、实现目标 1.没有获取焦点时样子 2.获取焦点时 代码&#xff1a; <input class"input"placeholder"请输入关键字" input"loadNode" />css .input {border-radius: 14px;border:1px solid #e4e4e4;margin: 5px;margin-top: 10px;wi…...

持续集成交付CICD:Jenkins使用GitLab共享库实现自动上传前后端项目Nexus制品

目录 一、实验 1.GitLab本地导入前后端项目 2.Jenkins新建前后端项目流水线 3.Sonarqube录入质量阈与质量配置 4.修改GitLab共享库代码 5.Jenkins手动构建前后端项目流水线 6.Nexus查看制品上传情况 7.优化代码获取RELEASE分支 8.优化Jenkins流水线项目名称 一、实验 …...

50mA、24V、超低 IQ、低压降稳压器

一、Description The TPS715 low-dropout (LDO) voltage regulators offer the benefits of high input voltage, low-dropout voltage, low-power operation, and miniaturized packaging. The devices, which operate over an input range of 2.5 V to 24 V, are stable wit…...

【Python测试开发】文件上传操作

先写一个上传页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文件上传</title><link href"http://dcn.bootcss/bootstrap/3.3.0/css/bootstrap.min.css" rel"styleshee…...

深兰科技AI医疗健康产品获3000台采购订单

12月6日&#xff0c;武汉某企业与深兰科技签署协议&#xff0c;一次性采购3,000台深兰科技AI生理健康检测仪——扁鹊。 深兰科技AI生理健康检测仪——扁鹊是深兰科技推出的人体生理指标检测产品。基于AI生物技术、融合互联网医疗及AIoT技术&#xff0c;深兰科技AI生理健康检测仪…...

金鸣表格文字识别的图片转word,模块不同,效果有何差异?

金鸣表格文字识别系统可以将图片等格式的文件转为word&#xff0c;而且有好几种输出word的方式&#xff0c;那么&#xff0c;它们都有什么区别呢&#xff1f; 一、表格识别模块输出的word。可以输出文本和表格混合格式的word&#xff0c;比较适合有表格样式的图片转换识别&…...

Qt Creator设置IDE的字体、颜色、主题样式

Qt是一款开源的、跨平台的C开发框架&#xff0c;支持Windows、Linux、Mac系统&#xff0c;从1995发布第一版以来&#xff0c;发展迅猛&#xff0c;最开始是用于Nokia手机的Symbian(塞班)系统和应用程序开发&#xff0c;现在是用于嵌入式软件、桌面软件(比如WPS、VirtualBox)、A…...

SpringBootWeb入门、HTTP协议、Web服务器-Tomcat

目录 一、SpringBootWeb入门 二、HTTP协议 HTTP-请求协议 HTTP-响应协议 HTTP-协议解析 三、Web服务器-Tomcat 服务器概述 Tomcat 一、SpringBootWeb入门 直接基于SpringFramework进行开发&#xff0c;存在两个问题&#xff1a;配置繁琐、入门难度大 通过springboot就…...

【Jenkins】Centos环境安装Jenkins(通过rpm安装)

在Centos操作系统中通过rpm安装Jenkins 参考官网 https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos 1、下载安装Jdk17 下载安装 # 更新您的系统&#xff0c;不一定需要 # sudo yum -y update # 安装将用于下载 Java 17 二进制文件的 wget 命令行工具。 s…...

华为数通---配置基本QinQ示例

QinQ简介 定义 QinQ&#xff08;802.1Q-in-802.1Q&#xff09;技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能&#xff0c;可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag&#x…...

利用poi实现将数据库表字段信息导出到word中

研发文档对于开发人员来说都不陌生了&#xff0c;而研发文档里重要的一部分就是表结构设计&#xff0c;需要我们在word建个表格把我们数据库中的表字段信息填进去&#xff0c;表多的话靠我们手动去填非常累人&#xff01;&#xff01;&#xff01; 因此作为开发人员可不可以写…...

深入浅出分析kafka客户端程序设计 ----- 生产者篇----万字总结

前面在深入理解kafka中提到的只是理论上的设计原理&#xff0c; 本篇讲得是基于c语言的kafka库的程序编写&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 首先要编写生产者的代码&#xff0c;得先知道生产者的逻辑在代码上是怎么体现的 1.kafka生产者的逻辑 …...

粗到细语义(Coarse-to-Fine Semantics)

粗到细语义&#xff08;Coarse-to-Fine Semantics&#xff09;是一种深度学习模型的设计方法&#xff0c;它通过逐步细化的方式来理解文本中的语义信息。这种方法通常用于文本分类、情感分析、问答等任务中。 在粗到细语义中&#xff0c;模型首先从整体上理解文本的大致意思&a…...

小程序开发实战案例四 | 小程序标题栏如何设置

上一期我们了解了 小程序底部导航栏 的实现效果&#xff0c;今天一起来了解下如何设置小程序标题栏&#xff5e; 基础标题栏 小程序标题栏主要包含返回、标题、收藏、菜单、收起 5 个模块&#xff0c;其中能够调整的部分只有标题和背景色。 另外 IDE上无法展示收藏按钮&#…...

Flutter在Visual Studio Code上首次创建运行应用

一、创建Flutter应用 1、前提条件 安装Visual Studio Code并配置好运行环境 2、开始创建Flutter应用 1)、打开Visual Studio Code 2)、打开 View > Command Palette。 3)、在搜索框中输入“flutter”&#xff0c;弹出内容如下图所示&#xff0c;选择“ Flutter: New Pr…...

如何用ChatGPT分析恶意软件?

自从我们进入数字化时代以来&#xff0c;恶意软件就一直是计算机应用系统的“心腹大患”。事实上&#xff0c;每一次技术进步都会为恶意行为者提供更多的工具&#xff0c;使得他们的攻击行为更具破坏性。不过&#xff0c;如今生成式人工智能的崛起&#xff0c;似乎让一直以来的…...

【Axure高保真原型】能增删改的树形表格

今天和大家分享能增删改的树形表格的原型模板&#xff0c;包括展开、折叠、增加、修改、删除表格内容&#xff0c;那这个原型模板是通过中继器制作的&#xff0c;所以使用简单&#xff0c;只需要填写中继器表格&#xff0c;即可自动生成对应的树形表格。这个模板最高支持6级树形…...

前端打包工具之Webpack5

前端打包工具之Webpack5 什么是打包工具打包工具的作用常见的打包工具一、Webpack1、什么是[webpack](https://webpack.docschina.org/concepts/)2、webpack本身的功能是有限的3、webpack基本使用&#xff1a;基于本身功能只解析JS资源4、webpack配置4.1、entry&#xff08;入口…...

linux设置环境变量

linux设置环境变量 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; Linux设置环境变量&#xff1a;打造个性化开发环境 在Linux系统中&#xff0c;环境变量是一项…...

告别默认视图:5个CloudCompare点云可视化高级技巧(颜色映射、尺寸分级、OpenGL优化)

告别默认视图&#xff1a;5个CloudCompare点云可视化高级技巧&#xff08;颜色映射、尺寸分级、OpenGL优化&#xff09; 在三维点云处理领域&#xff0c;可视化效果直接影响数据分析的深度与决策效率。CloudCompare作为开源点云处理利器&#xff0c;其默认视图设置往往难以满足…...

大型知识竞赛的技术保障:构建服务器、网络与备用方案的坚实堡垒

&#x1f3d7;️ 大型知识竞赛的技术保障&#xff1a;构建服务器、网络与备用方案的坚实堡垒稳定 高效 安全 让技术成为竞赛的隐形支撑&#x1f3af; 引言&#xff1a;技术保障是竞赛成功的基石一场成功的大型知识竞赛&#xff0c;其精彩纷呈的背后&#xff0c;离不开一套周…...

别让电流倒灌毁了你的MCU!手把手教你用肖特基二极管和MOS管搞定电平转换电路

嵌入式系统电平转换电路设计实战&#xff1a;阻断电流倒灌的5种硬件方案 当3.3V单片机需要驱动5V传感器时&#xff0c;或者5V逻辑器件要与1.8V处理器通信时&#xff0c;电平转换电路就成了系统稳定的关键屏障。去年我在工业控制器项目中就曾遇到一个典型问题&#xff1a;当5V外…...

【最新 v2.7.5 版本安装包】OpenClaw 零基础部署秘籍,无需命令零代码一键安装轻松搞定

&#x1f680; OpenClaw 一键安装包&#xff5c;一键部署甩掉复杂环境配置 &#x1f4cc; 适配信息 适配系统&#xff1a;Windows10/11 64 位 当前版本&#xff1a;v2.7.5&#xff08;虾壳云版&#xff09; ✨ 核心优势 全程可视化操作&#xff0c;不用命令行、不用手动配置…...

如何高效使用Umi-OCR:免费离线文字识别工具实用指南

如何高效使用Umi-OCR&#xff1a;免费离线文字识别工具实用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库…...

Context-Mode:基于React Context的模式化状态管理新范式

1. 项目概述&#xff1a;一个为现代前端开发量身定制的状态管理新范式 最近在重构一个中后台项目时&#xff0c;我又一次陷入了状态管理的泥潭。组件间层层传递的 props 像一团乱麻&#xff0c;全局 store 里塞满了各种不相关的数据&#xff0c;每次修改一个状态都得小心翼…...

别再手动敲空格了!用LaTeX的\parskip命令一键搞定论文段落间距(附局部调整技巧)

LaTeX段落间距精修指南&#xff1a;从全局配置到章节级微调 在学术写作的世界里&#xff0c;格式规范往往比内容本身更容易引发焦虑。当你在凌晨三点盯着屏幕&#xff0c;发现第17次调整的段落间距仍然不符合期刊要求时&#xff0c;那种绝望感足以让任何研究者崩溃。传统的手动…...

电波流速仪

电波流速仪主打轻量化便携设计&#xff0c;适配单人独立作业。整机重量小于1kg&#xff0c;机身轻巧便携、握持舒适&#xff0c;长时间户外作业无负担。支持手持直接测量与标配三脚架固定测量两种模式&#xff0c;可灵活适配沟渠、河道、险滩、闸口等不同作业环境&#xff0c;既…...

Real-is-Sim框架:动态数字孪生在机器人控制中的创新应用

1. Real-is-Sim框架概述&#xff1a;动态数字孪生的创新实践在机器人控制领域&#xff0c;仿真到现实的迁移&#xff08;sim-to-real&#xff09;一直是个棘手难题。传统方法往往面临"仿真太完美&#xff0c;现实太复杂"的困境——在虚拟环境中训练的策略&#xff0c…...

从原理到实战:压敏电阻关键参数解析与精准选型指南

1. 压敏电阻的本质&#xff1a;电路中的"电压保险丝" 第一次接触压敏电阻时&#xff0c;我把它当成了普通电阻&#xff0c;结果在电源防护设计上栽了跟头。这种蓝色圆片状的小器件&#xff0c;实际上是电子工程师最常用的过压保护元件之一。它的工作原理很像保险丝&a…...