python练习2【题解///考点列出///错题改正】

一、单选题 

【文件】

*1.【单选题】 ——文件:读取方法

下列哪个选项可以从文件中读取任意字节的内容?(C A

  • A.read()
  • B.readline()
  • C.readlines()
  • D.以上全部

 A\B\C三种方法都是可以读取文件中任意的字节内容的,选择C是当时受关键字眼“指定”影响,理解错了

文件的读取作用
read()读取从指定文件中读取指定字节的文件内容,若无设置参数即默认获取全部内容
readline()读取指定文件的一行内容
readlines()读取文件的所有行,既是一次性读取所有数据

2.【单选题】——文件:打开模式种类

 以下选项中,不是Python对文件的打开模式的是? (D )。

  • A.r’
  • B.+’
  • C.‘w’
  • D.c’

python中通常处理文本文件,如果要处理二进制文件(如声音、图像),则在该模式的参数添加‘b’ 

mode参数描述
'r' / 'rb'只读模式打开文件/二进制文件,如果文件不存在则抛出错误
'w'/ 'wb'只写模式打开文件/二进制文件,如果文件存在则覆盖,如果文件不存在则创建新文件
'a'/ 'ab'追加模式(只写)打开文件/二进制文件,只允许在文件末尾追加数据,如果文件存在则添加内容,如果不存在则创建新文件
'r+' / 'rb+'读取更新模式
'w+'/ 'wb+'写入更新模式
'a+'/ 'ab+'追加更新模式
'b'以二进制模式打开文件,用于读取或写入二进制数据
't'以文本模式打开文件,用于读取或写入文本数据(默认)
'+'以读写模式打开文件,可同时读取和写入文件
'U'在Python 2中,读取换行符通用,与'r'和'rt'相同;在Python 3中,已经废弃,不推荐使用

*3.【单选题】——文件:打开文件指定模式

 下列哪个选项可以以追加模式打开文件( C)?D

  • A.a
  • B.ab
  • C.a+
  • D.以上全部

当时为什么会做错这道题?没记清这些参数,对符号这些比较敏感,看到“+”,又是追加模式,直接下意识选了C 

'a'/ 'ab'追加模式(只写)打开文件/二进制文件,只允许在文件末尾追加数据,如果文件存在则添加内容,如果不存在则创建新文件
'a+'/ 'ab+'追加更新模式

4.【单选题】 ——文件:方法-获取当前读写位置

下列选项中,用户获取当前读写位置的是(C )。

  • A.open()
  • B.close()
  • C.tell()
  • D.seek()
选项功能语法格式
open()打开文件,返回一个文件对象

open(file,mode=' r',encoding=None)

 ·file表示文件路径(绝对/相对)

 ·mode可选参数,表示文件的打开模式,默认‘r’

 ·encoding可选参数,表示文件的编码形式

close()关闭文件

file.close()

没有参数直接通过建立的文件对象进行调用

也可以使用with语句自动关闭文件.

with语句可以打开文件并且赋值给文件对象,在操作语句结束后自动关闭文件。

tell()定位文件,获取当前读写位置,返回一个表示当前位置的整数

file.tell()

文件的读写位置默认为文件首部‘0’

seek()定位文件,设置文件读写位置,接受一个表示要设置的位置整数参数

file.seek(offset,from)

 ·offset表示偏移量2,即读写位置需要移动的字节数

 ·from用于指定文件的读写位置,设值范围:0、1、2

    ·0表示在开始位置读写

    ·1表示在当前位置读写

    ·2表示在末尾位置读写


【函数】

5.【单选题】——函数:参数

 下列关于函数参数的说法中,错误的是(D )。

  • A.若无法确定需要传入函数的参数个数,可以为函数设置不定长参数
  • B.当使用关键字参数传递实参时,需要为实参关联形参
  • C.定义函数时可以为参数设置默认值
  • D.不定长参数*args 可传递不定数量的关联形参名的实参 
选项A:可以使用不定长参数来接受不确定数量的参数,例如使用*args来接受任意数量的位置参数。
选项B:使用关键字参数传递实参时,需要为实参关联形参,即通过指定形参名来传递实参。
选项C:在函数定义时,可以为参数设置默认值。这样,在函数调用时如果没有对应的实参传递,将使用默认值。
选项D:不定长参数*args只能接受位置参数,而不能传递关联形参名的实参。如果要传递关联形参名的不定数量实参,应使用双星号(**kwargs)来定义和传递。
参数区别
形式参数(形参)定义函数时,括号内的参数
实际参数(实参)调用函数时,括号内的参数
参数的传递方式传递的实参类型
值传递实参类型为不可变类型(字符串、数字、元组)
引用(地址)传递实参类型为可变类型(列表、字典)
参数类型的传递描述
位置参数传递按照定义顺序传递参数值,调用时参数的数量和顺序要和定义时的保持一致
关键字参数传递

使用参数名和参数值进行指定,不需要按照定义顺序传递参数

def area(c,k):
    return c*k
#关键字传参,顺序无需一致
print("面积为:",area(k=2,c=1))
默认参数设置传递在函数定义时为参数指定默认值,因而,函数在调用时如果未提供参数值,则使用默认值进行运算返回结果
可变(不确定)参数传递

允许函数接受任意数量的参数,使用星号 (*) [元组形式]或者双星号 (**) [字典形式]表示,把接收到的数据打包成元组或字典传入函数体。

(1)这种形式的参数命名可以规范化使用“*arg”或“**kwargs”,为空时,则代表传递的是空元组、空字典
(2)如果实参是元组、列表、集合,可以使用“*”将其拆分为多个值,按位置传递给形参;如果实参是字典,使用“**”拆分为多个键值对,按关键字传递给形参
#可变参数函数定义
def mydef(*a):
    print("mydef: ",a)
    s = 0
    for i in a:
        s += i
    return s
#测试函数
n1 = 1
n2 = 2
n3 = 3
print("n1+n2=  ", mydef(n1,n2))
print("n1+n2+n3=  ", mydef(n1,n2,n3))
print("n1+n2+n3+5=  ", mydef(n1,n2,n3,5))

 运行结果:

6.【单选题】 ——函数:递归函数与匿名函数

下列关于 Python 函数的说法中,错误的是( C)。

  • A.递归函数就是在函数体中调用了自身的函数
  • B.匿名函数没有函数名
  • C.匿名函数与使用关键字 def 定义的函数没有区别
  • D.匿名函数中可以使用 if 语句

选项C:有区别,匿名函数无需定义标识符


递归函数
特点说明
定义

函数在其定义中调用自身的过程称为递归。

递归的实现通过:函数 + 分支结构。

结构

链条:计算过程存在递归链条

基例:存在一个或多个不需要再次递归的基例

使用场景递归函数通常用于解决可以被分解为相同问题的子问题的场景。
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
匿名函数
特点说明
定义

匿名函数是没有函数名的函数,因使用lambda保留字定义,也称为lambda函数。

lambda函数返回函数名作为结果.

<函数名>=lambda<参数>: <表达式>
等价于函数的定义格式
结构匿名函数通过lambda关键字定义,可以接受任意数量的参数,但只能有一个表达式作为函数体。
使用场景匿名函数通常用于简化代码,尤其是在需要定义简单的功能或作为其他函数的参数传递时。
#使用lambda表达式把下面函数变为匿名函数
def fun(x,y=3):
    return x*y

#等价于

lam=lamda x,y=3:x*y
print(lam(2))

#输出结果为6

7.【单选题】 ——函数:定义声明部分

下列哪个选项不是Python定义函数时的必要部分?(C )

  • A.def
  • B.()
  • C.return语句
  • D.以上全部

函数的定义语法格式:

def	<函数名>(参数<非可选参数>,<可选参数>(0个或多个)):
<函数体>
return	<返回值>
  • def是函数定义的关键词
  • 参数列表出现多个参数时,之间需要用逗号隔开,参数即使为0,括号也不能省去
  • [return [返回值]] 根据实际情况设置,可以没有
  • 如果函数没有实现任何功能,可以使用pass语句作为占位符

【关键词】

8.【单选题】 ——关键词:定义函数

下列哪个选项是Python中定义函数时使用的关键字?(A )

  • A.def
  • B.func
  • C.function
  • D.class

看第七题的题解

9.【单选题】——关键词:定义匿名函数

下列哪个选项是定义匿名函数时所用的关键字( B)?

  • A.global
  • B.lambda
  • C.anonymous
  • D.guest

看第六题题解​​​​​​​

10.【单选题】 ——关键词:主动引发异常

下列选项中,能主动引发异常的是( A)。

  • A.raise
  • B.except
  • C.assert
  • D.try
主动抛出异常(raise\assert)
raise关键字用于显示地引发异常。通过raise可以主动引发各种类型的异常。
assert关键字用于在程序中进行断言,如果断言条件不满足,则抛出AssertionError异常。

选项 A. raise 是正确答案,因为只有通过raise关键字我们才能主动引发异常。选项 C. assert 是错误答案,因为assert关键字并不会主动引发异常,而是在条件不满足时才会抛出AssertionError异常。


【模块】

11.【单选题】 ——模块概念

以下关于模块说法错误的是? (C )。

  • A.一个xx.py就是一个模块
  • B.任何一个普通的xx.py文件可以作为模块导入
  • C.模块文件的扩展名不一定是 .py
  • D.运行时会从制定的目录搜索导入的模块,如果没有,会报错异常

选项A:在Python中,一个以 .py 为扩展名的文件就是一个模块,可以通过导入该文件来使用其中定义的函数、类和变量。

选项B:只要是以 .py 为扩展名的普通文件,都可以作为模块被导入并使用。

选项C:在Python中,模块文件的扩展名必须是 .py。

选项D:在Python中,解释器会按照一定的搜索路径来查找导入的模块文件。如果在指定的目录中找不到模块文件,就会抛出 ModuleNotFoundError 异常。


【异常】

12.【单选题】 ——异常处理

关于程序的异常处理,以下选项中描述错误的是?(C )。

  • A.程序异常发生经过妥善处理可以继续执行
  • B.异常语句可以与 else 和 finally 保留字配合使用
  • C.编程语言中的异常和错误是完全相同的概念
  • D.Python 通过 try、except 等保留字提供异常处理功能

选项C:程序运行期间检测到的错误称为异常。二者虽然相关,但并不完全相同。异常是指在程序执行过程中发生的意外或不正常的情况,可以被程序捕获并处理。而错误可以是语法错误、逻辑错误或运行时错误等,不一定都是异常。

13.【单选题】——异常:语法错误

 当解释器发现语法错误的时候,会引发如下哪个异常?(B

  • A.ZeroDivisionError
  • B.SyntaxError
  • C.IndexError
  • D.KeyError

只有选项B是与解释器发现语法错误相关的异常。其他选项描述的异常是在程序执行过程中出现的错误,而不是与语法相关的错误。


在PyCharm中运行含有语法错误的代码后,结果输出区会显示如下错误信息:

​​​​​​​

14.【单选题】——异常:类型-执行代码1/0

执行代码1/0,引发什么异常的是( A)

  • A.ZeroDivisionError
  • B.SyntaxError
  • C.IndexError
  • D.KeyErro

15.【单选题】——异常:类型-FileNotFoundError

关于FileNotFoundError异常产生的原因,下列描述正确的是( D)。

  • A.尝试访问一个未声明的变量
  • B.使用序列中不存在的索引
  • C.使用映射中不存在的键
  • D.试图打开不存在的文件
异常类型说明
选项ANameError在使用未声明的变量时引发的异常
选项BIndexError在使用不存在的索引访问序列时引发的异常
选项CKeyError在使用不存在的键访问映射时引发的异常

16.【单选题】 ——异常概念

关于异常的说法,下列描述错误的是( D)。

  • A.所有异常都是基类Exception的成员
  • B.如果程序中有异常没有处理程序会终止执行
  • C.程序会反馈错误信息,包括错误的名称、原因和错误发生的行号
  • D.无论是否捕获异常,程序都会终止执行。

选项A:这是正确的说法。在Python中,所有的异常类都是Exception类的子类。

选项B:如果程序中发生了异常,而没有相应的异常处理程序来捕获和处理异常,程序会终止执行并抛出未处理的异常。

选项C:当出现异常时,Python会打印出错误信息,其中包括异常的名称、原因和发生异常的行号。

选项D:如果程序中正确地捕获和处理了异常,程序可以继续执行,而不会终止。

17.【单选题】——异常语句

 无论程序是否捕获到异常,都必须执行的语句是( D)。

  • A.try
  • B.except
  • C.else
  • D.finally

*18.【单选题】——异常语句

当没有捕获到错误信息时,会执行下列哪个语句?(D C

  • A.try
  • B.except
  • C.else
  • D.finally

19.【单选题】——异常语句

下列语句中,哪个是程序会监控错误的语句?( A)

  • A.try
  • B.except
  • C.else
  • D.finally
异常处理的基本使用

try	:
<语句块1>
except	:
<语句块2>

try	:
<语句块1>
except	<异常类型>	:
<语句块2>
异常处理的高级使用

try	:
<语句块1>
except	:
<语句块2>
else	:
<语句块3>
finally	:
<语句块4>

(1)else 语句块3在不发生异常时执行
(2)finally对应语句块4一定执行。
而且finally子句与try-except语句连用时,无论try-except是否捕获到异常,finally子句中的代码都要执行。

二、判断题 

【函数】

20.Python中使用关键字func定义函数。(

21.局部变量是在函数内定义的变量,只在定义它的函数内生效。(

22.函数的位置参数有严格的位置关系。(

23.函数在定义完成后会立刻执行。(

24.函数名的规则和变量是一样的。(

35.当函数的参数列表为空时,函数名后的圆括号可以省略。(

36.定义好的函数直到被程序调用时才会执行。 (

【文件】

*27.若程序中使用with语句打开文件,with语句中未调用close()方法,则文件将在程序跳出with结构时被关闭。(错 

28.在一次打开和关闭操作之间,每调用一次write()方法,程序向文件中追加一行数据,并返回本次写入文件中的字节数。(

29.使用readline()每次可读取一行数据,假设本次读取了5行数据,下次打开文件时,readline()方法将会读取第6行数据。(

.30.一般情况下,文件的读写是顺序的,默认情况下程序从文件中数据的起始位置开始读取数据。(

【异常】

31.程序没有捕获到任何错误信息时,就不再执行任何except语句。(

32.省略try-except语句中的异常类可以处理该语句中捕获的所有异常,但不能获取异常的具体信息。 (

33.Python默认处理异常的方式是终止应用程序并打印提示信息。(

34.assert 断言语句多用于程序开发测试阶段,其主要目的是确保代码的正确性。如果开发人员 能确保程序正确执行,那么不建议再使用 assert 语句抛出异常。 (

35.raise语句能向外传递异常。(

*36.若程序中的异常处理语句指定的异常与程序运行时产生的异常不一致,程序仍会崩溃(

37.使用 raise 语句可以引发特定异常。(

38.assert 断言语句用于判定一个表达式是否为真,如果表达式为 True,不做任何操作,否则引 发 AssertionError 异常。(

39.异常语句中不一定有finally子句。(

*40.异常处理的主要目的是防止因外部环境的变化导致程序产生无法控制的错误,而不是处理程序的设计错误。(

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消息队列基础知识

学一点&#xff0c;整一点&#xff0c;基本都是综合别人的&#xff0c;弄成我能理解的内容 https://blog.csdn.net/BenJamin_Blue/article/details/125946812 https://blog.csdn.net/qq_46119575/article/details/129794304 &#x1f4cc;导航小助手&#x1f4cc; 生产者-消费者…

JS作用域:全局作用域,函数作用域,块级作用域

JS作用域&#xff1a;全局作用域&#xff0c;函数作用域&#xff0c;块级作用域 背景作用域全局作用域函数作用域块级作用域通过调用栈分析块级作用域开发者工具查看作用域选项卡示例 背景 由于 JavaScript 存在变量提升这种特性&#xff0c;从而导致很多与直觉不符的代码&…

详解数组的轮转

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

Git 分布式版本控制系统(序章1)

第一章 Git 分布式版本控制系统 为什么学Git? 某些企业面试需要掌握Git&#xff0c;同时&#xff0c;也方便管理自己的Qt项目。 一、Git 客户端下载&#xff08;Windows&#xff09; 下载地址 https://gitee.com/all-about-git#git-%E5%A4%A7%E5%85%A8 二、Git 的特点 分支…

vue3引入百度地图(两种方法)

首先要有百度开放平台并进行注册&#xff0c;不懂看这里 ### 第一种方法 地图引入流程 安装vue-baidu-map-3x插件 参考官网地址&#xff1a;快速上手 | vue-baidu-map-3x npm install vue-baidu-map-3x --save 在public/index.html文件中引入 <!-- 百度地图 --> &…

微软开源,全平台通用:Shell 自动补全工具 | 开源日报 No.132

microsoft/inshellisense Stars: 7.6k License: MIT inshellisense 是一个为 Shell 提供 IDE 风格自动补全的工具。它是一个终端本地运行时自动完成&#xff0c;支持 600 多个命令行工具&#xff0c;并且可以在 Windows、Linux 和 macOS 上使用。主要功能包括安装后可通过运行…

HTML教程(1)——概述和第一个网页

一、什么是HTML HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页 二、什么是HTML 标签 H…

设计模式:工厂方法模式(讲故事图文易懂)

目录 简单工厂工厂方法模式 简单工厂 定义&#xff1a;简单工厂由一个工厂根据参数类型决定创建哪种产品的实例。 简单工厂不包含在23种设计模式之内&#xff08;简单工厂不满足开闭原则&#xff0c;后面会详细讲&#xff09; 举例&#xff1a;张三去4S店买了车&#xff0c;显…

城市生态数据大屏,PSD设计稿

现分享生态系统可视化大数据大屏的 Photoshop 源文件&#xff0c;下载即用&#xff01;以下为截图示意。 若需 更多行业 相关的大屏&#xff0c;请移步小7的另一篇文章&#xff1a;200套精选数据可视化大屏&#xff0c;大屏PSD设计&#xff08;各行业大屏UI&#xff09;https:…

DevExpress 皮肤改变触发后触发的事件,用来保存皮肤配置

代码&#xff1a; private UserLookAndFeel userLookAndFeel; public MainGeneral() {InitializeComponent();// 创建 UserLookAndFeel 实例userLookAndFeel new UserLookAndFeel(this);// 订阅 StyleChanged 事件userLookAndFeel.StyleChanged UserLookAndFeel_StyleChange…

UDP套接字搭建简易服务器与客户端

使用UDP套接字搭建 文章目录 使用UDP套接字搭建前言一、基本结构二、使用步骤1.服务器端2.客户端 三、效果展示总结 前言 这次较上个版本《Python 网络编程之搭建简易服务器和客户端》https://only-me.blog.csdn.net/article/details/135251171增加了&#xff1a; UDP协议来进…

1.PHP简单入门

1.PHP代码执行方式 PHP是在服务器端执行&#xff0c;然后返回给用户结果。 如果直接使用浏览器打开&#xff0c;就会解析为文本。 意思是说&#xff0c;浏览器通过 http请求&#xff0c;才能够执行php页面。 2.PHP代码框架 开启本机服务器&#xff08;下载软件略&#xff09…

数据结构: 位图

位图 概念 用一个bit为来标识数据在不在 功能 节省空间快速查找一个数在不在一个集合中排序 去重求两个集合的交集,并集操作系统中的磁盘标记 简单实现 1.设计思想:一个bit位标识一个数据, 使用char(8bit位)集合来模拟 2.预备工作:a.计算这个数在第几个char b.是这个ch…

全球日光地图分布地图数据

日光地图分布地图数据 Daylight 是全球开放地图数据的完整分发版&#xff0c;可在社区和专业地图制作者的支持下免费获取。我们将 OpenStreetMap 等项目的全球贡献者的工作与日光制图合作伙伴的质量和一致性检查结合起来&#xff0c;创建免费、稳定且易于使用的街道比例全球地…

【K8S 部署】基于kubeadm搭建Kurbernetes集群

目录 一、基本架构 二、环境准备: 三、安装部署 1、所有节点安装docker 2、、所有节点安装kubeadm&#xff0c;kubelet和kubectl 3、配置网络--flannel 4、测试 pod 资源创建 四、安装部署与k8s集群对接的Harbor仓库 五、Dashboard安装部署&#xff1a; 一、基本架构…

基于单片机的语音识别自动避障小车(论文+源码)

1.系统设计 此次基于单片机的语音识别自动避障小车&#xff0c;以STC89C52单片机作为系统的主控制器&#xff0c;利用超声波模块来实现小车与障碍物距离的测量并通过LCD液晶显示&#xff0c;当距离低于阈值时会通过WT588语音模块进行报警提示&#xff0c;并且小车会后退来躲避…

微信小程序-父子页面传值

父子页面传值 父页面向子页面传值 方法一&#xff1a; 父页面&#xff1a; 1. /page/xxx/xxx?id1子页面&#xff1a; onLoad:function(option){ }方法二 <bindtap“func” data-xxx””> 子页面向父页面传值 定义父子页面 父页面&#xff1a;hotspot 子页面&a…

uni-app App.vue生命周期全局样式全局存储globalData

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

程序员必备的数据处理神器-瑞士军刀cyberchef

本文将介绍一款强大的工具&#xff0c;囊括了网络世界范围内绝大数据的编解码技术&#xff0c;加解密技术&#xff0c;数格式转换技术&#xff0c;并提供了编码和解码&#xff0c;加解密以及数据转换的方法方法。对于程序员&#xff0c;这一一款不可多得的神器&#xff0c;在也…

<Icon-ResizER>support

If you get any questions in using app, email me caohechunhotmail.com.