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 = 0for i in a:s += ireturn 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 1else: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.异常处理的主要目的是防止因外部环境的变化导致程序产生无法控制的错误,而不是处理程序的设计错误。(

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

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

相关文章

CentOS 7 实战指南:目录操作命令详解

写在前面 想要在 CentOS 7 系统下更高效地进行目录操作吗&#xff1f;不要犹豫&#xff0c;在这里我为你准备了一篇精彩的技术文章&#xff01;这篇文章将带您深入了解 CentOS 7 下目录操作相关命令的使用方法。无论您是新手还是有一定经验的用户&#xff0c;这篇文章都将为您…

Windows电脑引导损坏?按照这个教程能修复

前言 Windows系统的引导一般情况下是不会坏的&#xff0c;小伙伴们可以不用担心。发布这个帖子是因为要给接下来的文章做点铺垫。 关注小白很久的小伙伴应该都知道&#xff0c;小白的文章都讲得比较细。而且文章与文章之间的关联度其实还是蛮高的。在文章中&#xff0c;你会遇…

lambda函数

文章目录 定义捕捉列表的形式一些更复杂的捕捉列表组合代码演示演示一演示二演示三演示四演示五演示六 lambda 函数&#xff0c;是C11中新引入的函数式编程语法&#xff0c;lambda函数可以被定义在类中成员函数内部&#xff0c;全局函数的内部。它是一个局部函数&#xff08;即…

osg::DrawElements*系列函数及GL_QUAD_STRIP、GL_QUADS绘制四边形效率对比

目录 1. 前言 2. osg::DrawElements*系列函数用法说明 3. GL_QUADS、GL_QUAD_STRIP用法及不同点 4. 效率对比 5. 总结 6. 参考资料 1. 前言 利用osg绘制图元&#xff0c;如&#xff1a;三角形、四边形等&#xff0c;一般用osg::PrimitiveSet类。其派生出了很多子类&#…

Ps:三角形工具

三角形工具 Triangle Tool可以绘制三角形形状&#xff08;矢量形状&#xff0c;或者是基于像素的形状&#xff09;和路径&#xff08;形状轮廓&#xff09;。 快捷键&#xff1a;U ◆ ◆ ◆ 常用操作方法与技巧 1、一般使用拖拽的方式绘制三角形。也可直接在画布上点击&#…

DFA 算法实现敏感词过滤

背景 项目中APP端发帖&#xff0c;评论可能包含多个关键词&#xff0c;铭感词。此时需要对该内容进行过滤处理。此前都是在客户端层面操作&#xff0c;这样不仅带来了性能的损耗&#xff0c;而且新增铭感词时&#xff0c;需要客户端重新打包上架&#xff0c;显得十分不合理。所…

树莓派eMMC扩容分区

1. Raspbian系统&#xff08;树莓派官方系统&#xff09; 使用命令 raspi-config选择 Advanced Options 选择 Expand Filesystem 重启即可扩容成功。 2. 非树莓派官方系统 查看硬盘列表及分区信息 [rootlocalhost install]# lsblk NAME MAJ:MIN RM SIZE RO TYPE…

14 2023.12.31 --------release--------misc--------

呵呵 一部分 misc 存在草稿箱好久了 而且 也并没有那么重要, 直接放出去吧 今年的 专业技能方面的收获主要是一些方面 linux 方面, 这部分内容主要是集中在上半年 90 telnet 连接上对方服务之后 立即 “Connection closed by foreign host.“ 89 重写 /proc/sys/vm/nr_pd…

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片

创建一个ArkTS卡片 在已有的应用工程中&#xff0c;创建ArkTS卡片&#xff0c;具体操作方式如下。 创建卡片。 根据实际业务场景&#xff0c;选择一个卡片模板。 在选择卡片的开发语言类型&#xff08;Language&#xff09;时&#xff0c;选择ArkTS选项&#xff0c;然后单…

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录 一. 项目概述 问题&#xff1a; 解决&#xff1a; 二. 方法详解 a) 整体结构 b) 自主题注意力 三. 文本控制的动漫角色驱动图像生成的结果 四. 文本控制的自然图像驱动图像生成的结果 五. 姿势控制角色驱动图像生成的结果 2023年的最后一天&#xff0c;发个文记录…

vmware部署docker+springboot+MySQL(超详细)

一、前期准备 (一)安装jdk #docker search openjdk #docker pull openjdk:8 (二)确认网络 如果局域网其他终端(如手机访问),虚拟机网络连接需要选择《桥接》模式,而且,需要使用有线连接,不能使用Wi-Fi,切忌切忌! 并且要选择实际的那个有线连接。比如我这里是“R…

解算人生--写于2023跨年之夜

最近买了一本书&#xff0c;书名叫《计算》 读了部分内容&#xff0c;虽然理解上还需要再下下功夫&#xff0c;但是直观的感觉冲击还是挺大的&#xff0c;最明显的就是表面与本质的把握。大家可能都有这样一种感觉&#xff0c;初步涉足某一领域时&#xff0c;开始我们都会被大量…