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.mzph.cn/news/588242.shtml

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

相关文章

Lesson 06 vector类(上)

C&#xff1a;渴望力量吗&#xff0c;少年&#xff1f; 文章目录 一、vector是什么&#xff1f;二、vector的使用1. 构造函数2. vector iterator3. vector 空间增长问题4. vector增删查改 三、vector实际使用 一、vector是什么&#xff1f; vector是表示可变大小数组的序列容器…

LVGL 在framebuffer设备上的移植

LVGL 在framebuffer设备上的移植 ItemDescDate2023-12-31Authorhongxi.zhuplatformNXP I.MX6ULLLCDSPI TFTLCD NV3030B 文章目录 LVGL 在framebuffer设备上的移植一、LVGL源码获取二、源码修改适配三、编译&运行补充 一、LVGL源码获取 新建lvgl_imx6ull文件夹&#xff0c…

低代码开发中业务蓝图的重要性:业务需求与系统实现的桥梁

在低代码应用开发领域&#xff0c;业务蓝图是一个至关重要的工具&#xff0c;它提供了组织业务流程需求的详细信息。它类似于一份指导开发人员进行应用开发的路线图&#xff0c;确保与业务的战略目标和需求保持一致。 低代码方法学&#xff0c;顾名思义&#xff0c;即减少了传…

Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序

这篇论文主要讨论了大型语言模型&#xff08;LLM&#xff09;在机器人控制方面的应用。作者们指出&#xff0c;尽管LLM在理解和生成自然语言方面表现出色&#xff0c;但其在实际应用中&#xff0c;如机器人控制等领域的应用仍然有限。因此&#xff0c;他们提出了一种新的方法&a…

登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10

人工智能太疯狂&#xff0c;传统劳动力和内容创作平台被AI枪毙&#xff0c;弃尸尘埃。并非空穴来风&#xff0c;也不是危言耸听&#xff0c;人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程&#xff0c;你问我绘画行业未来的样子&#xff1f;我只好指着Cont…

每日一题——LeetCode976

方法一 个人方法 找规律&#xff1a; 要求要围成三角形且周长最大&#xff0c;那么三条边自然是越大且越接近越好。那么我们就从最大的三条边开始看能不能围成三角形。如果不能组成三角形&#xff0c;则丢弃最长的那条&#xff0c;再取剩余边里最长的那条再看能不能组成三角形…

二叉树的中序遍历,力扣

目录 题目地址&#xff1a; 题目&#xff1a; 解题方法&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 注&#xff1a; 代码实现&#xff08;递归&#xff09;&#xff1a; 代码实现&#xff08;迭代&#xff09;&#xff1a; 题目地址&#xf…

数据库——建立ER模型及关系模型转换

​ 【实验内容及要求】 使用画图工具或MySQL Workbench等建模工具设计出相应的ER图&#xff0c;将局部ER图合并为一个整体ER模型&#xff0c;在ER模型中填加多样性约束&#xff0c;建立显示主键的ER模型&#xff0c;标识实体的属性&#xff0c;确认主键、外键。将上述ER图转化…

Nx市工业数据洞察:Flask、MySQL、Echarts的可视化之旅

Nx市工业数据洞察&#xff1a;Flask、MySQL、Echarts的可视化之旅 背景数据集来源技术选型功能介绍创新点总结 背景 随着工业化的不断发展&#xff0c;Nx市工业数据的收集和分析变得愈发重要。本博客将介绍如何利用Flask、MySQL和Echarts等技术&#xff0c;从统计局获取的数据…

CentOS 7 lvm 裸盘的扩容和缩容减盘 —— 筑梦之路

背景介绍 之前写过比较多的关于lvm的文章&#xff1a; CentOS 7 lvm 更换坏盘操作步骤小记 —— 筑梦之路_centos更换硬盘操作-CSDN博客 xfs ext4 结合lvm 扩容、缩容 —— 筑梦之路_ext4扩盘-CSDN博客 LVM逻辑卷元数据丢失恢复案例 —— 筑梦之路_pve lvm数据恢复-CSDN博客…

各部门请注意,VELO维乐潮流骑士尼莫出街啦,快来加入吧!

VELO潮流骑士丨车界“小学生”尼莫&#xff0c;下面是来自她的自诉&#xff1a;      大家好&#xff01;我是尼莫&#xff0c;一枚骑车届的“小学生”&#xff0c;我爱上骑车已经有一年的时间啦&#xff01;在这一年的时间里&#xff0c;骑车改变了我很多&#xff1a;爱上…

单片机外设矩阵键盘之行列扫描识别原理与示例

单片机外设矩阵键盘之行列扫描识别原理与示例 1.概述 这篇文章介绍单片机通过行列扫描的方式识别矩阵键盘的按键&#xff0c;通过程序执行相应的操作。 2.行列扫描识别原理 2.1.独立按键识别原理 为什么需要矩阵按键 独立按键操作简单&#xff0c;当数量较多时候会占用单片机…

PAT 乙级 1033 旧键盘打字

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其…

机器视觉实战应用:手势、人脸、动作以及手势鼠标构建(一)

CV实战应用手势、人脸、动作以及手势鼠标构建&#xff08;一&#xff09;总起 核心思想 手势识别是一种常见的计算机视觉应用&#xff0c;它可以通过摄像头或者预先录制的视频图像来追踪和识别人类手势。手势识别的应用非常广泛&#xff0c;例如在游戏、虚拟现实、人机交互等…

【算法】数论---欧拉函数

什么是欧拉函数&#xff1f; 对于正整数n&#xff0c;欧拉函数是小于或等于n的正整数中与n互质的数的数目&#xff0c;记作φ(n) φ(1)1 当m,n互质时&#xff0c;φ(mn)φ(m)∗φ(n) 一、求一个正整数的欧拉函数---&#xff08;先对它分解质因数&#xff0c;然后套公式&#xf…

2024年,程序员有哪些危机,有什么应对方式?

在2024年&#xff0c;程序员可能面临的危机主要包括技术更新迅速、职业竞争激烈、工作与生活平衡困难等方面。 为了应对这些危机&#xff0c;程序员可以采取以下策略&#xff1a; 技术更新迅速&#xff1a;随着技术的不断发展&#xff0c;新的编程语言和工具不断涌现&#xff…

spring核心与思想

spring核心与思想 Spring 是什么&#xff1f;什么是容器&#xff1f;什么是 IoC&#xff1f;传统程序开发传统程序开发的缺陷解决传统开发中的缺陷控制反转式程序开发对⽐总结规律 理解 Spring IoCDI 概念说明 Spring 是什么&#xff1f; Spring 指的是 Spring Framework&…

Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性

目录 1. 背景 2. Windows系统安装canal 3.Mysql准备工作 4. 公共依赖包 5. Redis缓存设计 6. mall-canal-service 1. 背景 canal [kənl] &#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费。其诞…

C语言实验5:结构体

目录 一、实验要求 二、实验原理 1. 普通结构体 1.1 显示声明结构体变量 1.2 直接声明结构体变量 ​编辑 1.3 typedef在结构体中的作用 2. 结构体的嵌套 3. 结构体数组 4. 指向结构体的指针 4.1 静态分配 4.2 动态分配 三、实验内容 1. 学生数据库 代码 截图 …

vue 项目 添加 页面上方 NProgress进度条

NProgress官网和Github地址 路由 跳转时 页面上方 和 右上角 会有一个加载进度 安装 使用npm安装 npm install --save nprogress 基本用法 main.js 引入 import NProgress from “nprogress”; import “nprogress/nprogress.css”; 开关和关闭 start()开启NProgress进度条d…