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

news2024/11/29 18:25:09

一、单选题 

【文件】

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

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

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

相关文章

emacs:Searching for program: No such file or directory,sml;

首先&#xff0c;编辑一个现有的或新的 SML 文件&#xff08;如果没有其他方便的方法&#xff0c;可尝试C-x C-f test.smlC-x C-f test.sml 创建一个新文件&#xff09;。你会看到 Emacs 窗口底部的模式显示从 "基本"&#xff08;或其他任何模式&#xff09;变成了 S…

【ArcGIS微课1000例】0084:甘肃积石山地震震中100km范围内历史灾害点分布图(2005-2020)

甘肃积石山地震震中100km范围内历史灾害点分布图(2005-2020)。 文章目录 一、成果预览二、实验数据三、符号化四、地图整饰一、成果预览 本实验最终效果图如下所示: 二、实验数据 以下数据可以从本专栏配套的实验数据包中0084.rar中获取。 1. 历史灾害数据。为2005-2020时…

【c++】使用vector存放键值对时,明明给vector的不同键赋了不同的值,但为什么前面键的值会被后面键的值给覆盖掉?

错误描述 运行程序得到结果如下图所示&#xff08;左边是原始数据&#xff0c;xxml文件中真实数据的样子&#xff0c;右图是程序运行得到的结果结果&#xff09;&#xff1a; 对比以上两图可以发现&#xff0c;右图中两个实例的三个属性值都来自左图中的第二个User实例&#x…

思维训练-怎样设计一个MQ

架构师需要做各种设计&#xff0c;要不断地提高自己的设计能力。这有没有方法可以训练呢&#xff1f;有的&#xff0c;就是看到什么、想到什么&#xff0c;就假设对面坐着产品经理&#xff0c;一起讨论怎么把它设计出来。比如怎样设计一个MQ 我&#xff1a;首先我确认一下需求。…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷①

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第1套&#xff09; 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第1套&#xff09; 模块一…

系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:外层作用域和非局部变量]

分类目录&#xff1a;《系统学习Python》总目录 我们在某些情况下可能想要共享全局状态。如果我们真的想要每个函数都有自己的计数器&#xff0c;要么像前面的文章那样使用类&#xff0c;要么使用Python3.X中的闭包函数&#xff08;工厂函数&#xff09;和nonlocal语句。由于这…

【产品设计】表对象建模

随着不断深入的拆解&#xff0c;从产品经理的设计方法到系统的拆解&#xff0c;每一部分都有值得探索的地方。 随着不断深入的拆解&#xff0c;从产品经理的设计方法&#xff0c;到经典系统的拆解&#xff0c;到零代码平台的构建&#xff0c;一直在走系统建设方法路线。如今再看…

SpringBoot解决前后端分离跨域问题:状态码403拒绝访问

最近在写和同学一起做一个前后端分离的项目&#xff0c;今日开始对接口准备进行 登录注册 的时候发现前端在发起请求后&#xff0c;抓包发现后端返回了一个403的错误&#xff0c;解决了很久发现是【跨域问题】&#xff0c;第一次遇到&#xff0c;便作此记录✍ 异常描述 在后端…

【AIGC风格prompt】风格类绘画风格的提示词技巧

风格类绘画风格的提示词展示 主题&#xff1a;首先需要确定绘画的主题&#xff0c;例如动物、自然景观、人物等。 描述&#xff1a;根据主题提供详细的描述&#xff0c;包括颜色、情感、场景等。 绘画细节&#xff1a;描述绘画中的细节&#xff0c;例如表情、纹理、光影等。 场…

设计模式(4)--对象行为(11)--访问者

1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3…

回顾2023在CSDN的足迹与2024展望

目录 一、关于博主 二、2023的历程 1、博客分类 2、年度创作数据 3、解锁勋章 4、主要的方向 二、技术感悟 1、技术深入 2、还是实践 三、展望2024 今天是2024年的第一天&#xff0c;告别2023年&#xff0c;让我们以全新的姿态&#xff0c;去迎接新的一年的挑战。2023年…

影视后期:Pr 调色处理之风格调色

写在前面 整理一些影视后期相关学习笔记博文为 Pr 调色处理中风格调色&#xff0c;涉及下面几个Demo 好莱坞电影电影感调色复古港风调色赛博朋克风格调色日系小清晰调色 理解不足小伙伴帮忙指正 简单地说就是害怕向前迈进或者是不想真正地努力。不愿意为了改变自我而牺牲目前所…

Xgboost分类模型的完整示例

往期精彩推荐 数据科学知识库机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归PySpark大数据处理详细教程 定义问题 UCI的蘑菇数据集的主要目的是为了分类任务&#xff0c;特别是区分蘑菇是可食用还是有毒。这个数据集包含了蘑菇的各种特征&#xff0c;如…

WorkQueue模型

WorkQueues&#xff0c;也被称为任务队列模型。当消息处理比较耗时的时候&#xff0c;可能生产消息的速度会远远大于消息的消费速度。长此以往&#xff0c;消息就会堆积越来越多&#xff0c;无法及时的处理。此时就可以使用work模型&#xff1a;让多个消费者绑定到一个队列&…

IDEA错误: 找不到或无法加载主类 com.atguigu.springcloud.EurekaServer7001_App

第一种方法&#xff1a; 可以手动点击maven中的compile编译一下&#xff0c;如下图&#xff1a; 第二种方法&#xff1a; 在pom.xml文件中加入编译插件&#xff1a; <build><plugins><!-- 编译插件 --><plugin><artifactId>maven-compiler-plu…

matlab概率论例子

高斯概率模型&#xff1a; [f,xi] ksdensity(x): returns a probability density estimate, f, for the sample in the vector x. The estimate is based on a normal kernel function, and is evaluated at 100 equally spaced points, xi, that cover the range of the da…

如何在Linux系统中安装Redis

原本Redis官网提供了Windows和Linux两个版本&#xff0c;但从 2011-12-29 以后不再更新Windows版本&#xff08;https://github.com/dmajkic/redis/downloads&#xff09;&#xff0c;加之企业生产环境通常使用Linux系统&#xff0c;所以这里在Linux系统中演示如何安装Redis。 …

typescript,eslint,prettier的引入

typescript 首先用npm安装typescript&#xff0c;cnpm i typescript 然后再tsc --init生成tsconfig.json配置文件&#xff0c;这个文件在package.json同级目录下 最后在tsconfig.json添加includes配置项&#xff0c;在该配置项中的目录下&#xff0c;所有的d.ts中的类型可以在…

11 HAL库的硬件I2C驱动SI7006和AP3216C

引言&#xff1a; 本片文章想给大家分享一下使用HAL库驱动SI7006和AP3216C&#xff0c; 这两款常见的芯片的手册会在文章的末尾提供给大家。 一、SI7006和AP3216C简介 SI7006 SI7006是一款数字湿度和温度传感器&#xff0c;由Silicon Labs&#xff08;全称Silicon Laboratories…

【AI视频领域展望】未来视频行业:人工智能、5G和VR技术将如何改变视频制作和观看方式?

5G技术 5G技术的商用将会进一步推动物联网和视频行业的融合。通过5G技术&#xff0c;可以实现高清视频的实时传输和播放&#xff0c;为用户提供更加流畅和快速的观看体验。 5G视频的优势主要体现在以下几个方面&#xff1a; 更低的延迟&#xff1a;5G网络的延迟时间相比4G降低…