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

一、单选题 

1.【单选题】 ——可迭代对象

下列哪个选项是可迭代对象( D)?

  • A.(1,2,3,4,5)
  • B.[2,3,4,5,6]
  • C.{'a':3,'b':5}
  • D.以上全部

知识点补充——【可迭代对象】

可迭代对象(iterable)是指可以通过迭代(iteration)来逐个访问其中元素的对象。

可迭代对象可以用于for循环或者其他接受可迭代对象作为输入的操作,如列表推导、生成器表达式等。

列表(list)列表是有序的可变序列,可以通过for循环进行迭代。
元组(tuple)元组是有序的不可变序列,和列表类似,可以通过for循环进行迭代。
集合(set)集合是无序的不重复元素的集合,可以使用for循环进行迭代。
字典(dict)字典是键值对的集合,可以使用for循环进行迭代,迭代时默认会遍历字典的键。
字符串(string)字符串是字符的有序集合,可以通过for循环进行迭代,每次迭代得到一个字符。
文件对象(file object)文件对象也是可迭代对象,可以按行迭代文件内容。
生成器(generator)生成器也是可迭代对象,可以通过for循环进行迭代,每次迭代得到生成器产生的值。

【模块】

2.【单选题】 ——模块的导入方式

下列导入模块的方式中,错误的是( D)。

  • A.import random
  • B.from random import random
  • C.from random import *
  • D.from random

3.【单选题】 ——模块的导入方式

导入模块的方式错误的是?(D )。

  • A.import numpy
  • B.from numpy import *
  • C.import numpy as np
  • D.import numpy from xxx

知识点补充——【模块的导入方式】

导入方式语法示例说明
importimport module_name导入整个模块
from-importfrom module_name import object_name从模块中导入特定对象
asimport module_name as alias_name使用别名来导入模块
from-import-asfrom module_name import object_name as alias_name使用别名来导入特定对象
import-allfrom module_name import *导入模块中的所有对象
conditional-importtry-import-except根据条件导入模块
import math # 导入整个math模块 |
from math import sqrt # 从math模块中导入sqrt函数 |
import math as m # 使用别名m导入math模块 |
from math import sqrt as square_root # 使用别名square_root导入math模块中的sqrt函数 |
from math import * # 导入math模块中的所有对象 |

4【单选题】 ——模块:标准模块

下列关于标准模块的说法中,错误的是(A )。

  • A.标准模块无须导入就可以使用
  • B.random模块属于标准模块
  • C.标准模块可通过import导入
  • D.标准模块也是一个.py文件

选项A:标准模块在使用之前需要先导入才能使用。


【类与对象】

类的私有属性__private_attrs:

以两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。

在类内部的方法中使用时 self.__private_attrs。

类的私有方法__private_method:

以两个下划线开头,声明该方法为私有方法,不能在类的外部调用。

在类的内部调用 self.__private_methods

一、方法

1.类中的方法有三种定义形式:

(1)在类中直接定义:

class 类名:          #使用class关键字定义类属性名=属性值      #定义类的属性def 方法名(self):  #定义类的方法方法体

(2)实例方法:

在类中直接定义,无前缀装饰器,只比普通函数多一个self的方法,但是只能通过类实例化的对象调用。

class Employee:# 类变量empCount = 0# 无前缀 @classmethod 是实例方法 ,参数必有 self,代表当前实例(对象)def displayEmployee(self):print("Name : ", self.name, ", empCount: ", self.empCount)

(3)使用@classmethod修饰的类方法和使用@staticmethod修饰的静态方法

类方法实例方法
修饰器使用装饰器@classmethod修饰
参数第一个参数为cls,代表类本身第一个参数为self,代表对象本身
被调用方式类、对象均可直接调用

只能由对象调用

属性的修改可以修改类的属性无法修改类的属性
 # 前缀 @classmethod 是 类方法  ,参数必有cls代表 本类  
@classmethoddef displayCount(cls):print("Total Employee: ", cls.empCount)
静态方法实例方法
修饰器使用装饰器@staticmethod修饰
成员访问方法中需要以“类名.方法/属性名”的形式访问类的成员方法中需要以“self.方法/属性名”的形式访问类的成员
被调用方式类、对象均可直接调用

只能由对象调用

 #  静态方法中 ,类名.方法/属性名”的形式访问类的成员@staticmethoddef static_method():print(f"---静态方法-----Employee.empCount:",Employee.empCount)

2.类中还有两个特殊的方法——在类的创建和销毁时自动调用

(1)构造方法_init_()

每个类都有一个默认的__init__()方法。 如果定义类时显式地定义__init__()方法,那么创建对象时Python解释器会调用显式定义的__init__()方法;

可以根据参数的有无(self除外)分为无参构造方法和有参构造方法。

无参构造方法可以为属性设置初始值,此时使用该方法创建的所有对象都具有相同的初始值。
有参构造方法可以使用参数为属性设置初始值,此时使用该方法创建的所有对象都具有不同的初始值。

a.在类中定义的属性是类属性,是定义在方法体外公用的,类和对象都可以调用这些属性。

b.在构造方法中定义的属性是实例属性,只能通过对象进行访问。

(2)析构方法_del_(

当对象被清理时,系统会自动调用一个_del_()方法
当一个对象的引用计数器数值为0时,就会调用__del__()方法
ps:Python中的垃圾回收主要采用的是引用计数。引用计数是一种内存管理技术,它通过引用计数器记录所有对象的引用数量,当对象的引用计数器数值为0时,就会将该对象视为垃圾进行回收。

二、实例对象创建

其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。下面使用类的名称 Employee 来实例化,并通过 __init__ 方法接收参数。

#"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
#"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)

三、实例对象对属性的访问与修改

1、访问:

用以下函数的方式来访问属性:

getattr(obj, name[, default])访问对象的属性
hasattr(obj,name)检查是否存在一个属性
setattr(obj,name,value)设置一个属性。如果属性不存在,会创建一个新属性
delattr(obj, name)删除属性
# 实例化对象,对象成员的访问
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)print('\n ====== 获取数据 ======')
a = getattr(emp1,'name')
b = getattr(emp1,'namessss','不存在返回默认值')
print("Employee name  (emp1): ", a)
print("Employee namessssss  (emp1): ", b)print('\n ====== 更新属性取值 ======')
setattr(emp1,'name','新-新名字')
setattr(emp1,'namees','属性不存在,会创建一个新属性')
print("Employee name  (emp1): ", emp1.name)
print("Employee namees  (emp1): ", emp1.namees)

2、修改:

emp1.age = 7  # 添加一个 'age' 属性
emp1.age = 8  # 修改 'age' 属性
del emp1.age  # 删除 'age' 属性

————————————


5.【单选题】 ——类与对象:概念

下列关于的说法,错误的是(D )。

  • A.在类中可以定义私有方法和属性
  • B.类方法的第一个参数是cls
  • C.实例方法的第一个参数是self
  • D.类的实例无法访问类属性

选项ABC都是对的,类的实例不仅可以访问类属性还可以修改类属性

6.【单选题】——类与对象:概念

下列关于类和对象的描述,正确的是(D )。

  • A.类是面向对象的核心
  • B.类是现实中事物的个体
  • C.对象是根据类创建的,并且一个类只能对应一个对象
  • D.对象描述的是现实的个体,它是类的实例

选项A:面向对象面向对象,对象是面向对象的核心

选项B:对象才可以用于描述现实事物中的个体

选项C:一个类可以有多个对象


类:是一种数据类型,用来描述具有相同的属性和方法的对象的集合,类的内部包括属性和方法两个部分。

对象:是类的实例。是现实世界中可以描述的事务。

7.【单选题】 ——类与对象:三大特征

下列选项中,哪个不属于面向对象程序设计的三大特征?( A

  • A.抽象
  • B.封装
  • C.继承
  • D.多态

 封装、继承、多态是面向对象程序设计的三大特征

面向对象三大特征描述
封装

是指把对象的属性和行为封装起来,不需要让外界知道具体的实现细节,其封装的对象部分属性和行为是私有的,外界无法访问。因而有效地实现了对数据和行为的包装信息的隐藏

继承描述的是类与类之间的关系,即一个派生类继承基类的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。而子类自动共享父类数据结构和方法的机制(子类在继承父类时会自动拥有父类的方法和属性),增加了代码的可重用性,简化了对象、类的创建工作量。
多态

8.【单选题】 ——类与对象:三大特征-封装

下列选项中,关于封装说法错误的是( D)。

  • A.封装是面向对象的特性之一
  • B.封装的目的是保证数据安全
  • C.封装只对外部提供访问接口
  • D.类的外部需要知道类的实现细节

封装是指把对象的属性和行为封装起来,不需要让外界知道具体的实现细节,其封装的对象部分属性和行为是私有的,外界无法访问。因而有效地实现了对数据和行为的包装信息的隐藏。

9.【单选题】 ——类与对象:三大特征-继承

下列关于继承的说法中,错误的是(A )。

  • A.Python不支持多继承
  • B.如果一个类有多个父类,该类会继承这些父类的成员
  • C.子类会自动拥有父类的属性和方法
  • D.私有属性和私有方法不能被继承。

选项A—python有单继承也有多继承。

选项B\C—继承:子类在继承父类时会自动拥有父类的方法和属性

选项D—以两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。

10.【单选题】——类与对象:三大特征-继承

关于面向对象的继承,以下选项中描述正确的是? (B )。

  • A.继承是指一组对象所具有的相似性质
  • B.继承是指类之间共享属性和操作的机制
  • C.继承是指各对象之间的共同性质
  • D.继承是指一个对象具有另一个对象的性质

11.【单选题】 ——类与对象:三大特征联系实际案例

某个十字路口安装了一盏交通信号灯,汽车和行人接收到同一个信号时会有不同的行为。前面这句话可用来解释面向对象设计思想中的哪个特性?(D

  • A.抽象
  • B.封装
  • C.继承
  • D.多态

12.【单选题】 ——类与对象:关键词-定义类

下列哪个选项是定义类时必须使用的关键字(C )。

  • A.def
  • B.static
  • C.class
  • D.int

13.【单选题】 ——类与对象:符号-访问对象成员

通过下列哪个符号可以访问对象的成员( A)。

  • A..
  • B._
  • C.()
  • D.@

14.【单选题】 ——类与对象:self

下列选项中,关于self的说法不正确的是( D)。

  • A.调用方法时,开发者只要传递除self以外的参数即可
  • B.self只能在类内部使用
  • C.self代表类的实例本身,可以用来引用类的属性和方法
  • D.self可以在类外部使用

self 代表的是类的实例,代表当前对象的地址,而 self.__class__ 则指向类。

self 不是 python 关键字,我们把他换成其他的单词组成也是可以正常运行的。

15.【单选题】 ——类与对象:方法-初始化属性

下列方法中,用于初始化属性的方法是(B )。

  • A.__del__()
  • B.__init__()
  • C.__init()
  • D.__add__()

*16.【单选题】 ——类与对象:方法-构造方法

下列选项中,关于构造方法说法不正确的是( B)A

  • A.通过类的实例调用构造方法,完成对象的初始化操作
  • B.创建完实例以后,系统会自动调用构造方法
  • C.如果要修改属性的默认值,可以在构造方法中使用参数设置
  • D.构造方法是可以带参数的

构造方法_init_()

每个类都有一个默认的__init__()方法。 如果定义类时显式地定义__init__()方法,那么创建对象时Python解释器会调用显式定义的__init__()方法;

可以根据参数的有无(self除外)分为无参构造方法和有参构造方法。

无参构造方法可以为属性设置初始值,此时使用该方法创建的所有对象都具有相同的初始值。
有参构造方法可以使用参数为属性设置初始值,此时使用该方法创建的所有对象都具有不同的初始值。

a.在类中定义的属性是类属性,是定义在方法体外公用的,类和对象都可以调用这些属性。

b.在构造方法中定义的属性是实例属性,只能通过对象进行访问。

17.【单选题】 ——类与对象:方法-销毁

当一个对象的引用计数器数值为多少时,该对象会被视为垃圾回收(B )。

  • A.1
  • B.0
  • C.-1
  • D.2

当一个对象的引用计数器数值为0时,就会调用__del__()方法

18.【单选题】 ——类与对象:方法

下列不可被类和实例同时调用的方法是(C )。

  • A.静态方法
  • B.类方法
  • C.实例方法
  • D.以上全部

19.【单选题】——类与对象:方法

下列方法中,只能由对象调用的是( B)。

  • A.类方法
  • B.实例方法
  • C.静态方法
  • D.析构方法

实例方法只能由对象调用

20.【单选题】 ——类与对象:方法-初始化对象属性

下列方法中,用来初始化对象属性的是( A)。

  • A.__init__( )
  • B.__del__( )
  • C.__str__( )
  • D.__add__( )

21.【单选题】 ——类与对象:方法-释放资源

下列方法中,用来释放类所占用的资源的是(B )。

  • A.__init__( )
  • B.__del__( )
  • C.__str__( )
  • D.__add__( )

22.【单选题】 ——类与对象:方法

下列选项中,关于Python类的方法说法错误的是(B )

  • A.实例方法的第一个参数为self
  • B.类方法使用装饰器@staticmethod修饰
  • C.类方法第一个参数为cls
  • D.静态方法中没有任何参数

应该是@classmethod修饰器

23.【单选题】 ——类与对象:面向过程和面向对象

关于面向过程和面向对象,下列说法错误的是( B)。

  • A.面向过程和面向对象都是解决问题的思路
  • B.面向过程是基于面向对象的
  • C.面向过程强调的是解决问题的步骤
  • D.面向对象强调的是解决问题的对象


【数据库】

24.【单选题】 ——数据库:方法-执行SQL语句返回受影响的行

下列选项表示执行SQL语句返回受影响的行数方法时(A )。

  • A.execute
  • B.fetchall
  • C.fetchone
  • D.rowcount

连接数据库基本操作:

1.导入模块 import pymysql

2.创建Connection 对象:用于建立代码与数据库的连接,创建连接对象 conn=connect(参数列表)  

3.通过连接获取游标 cur = conn.cursor()返回Cursor对象,用于执行sql语句并获得结果

4.使用游标执行SQL语句 cur.execute(operation , [参数])

5.执行SQL语句,返回受影响的行数,主要用于执行insert、update、delete语句 6.使用游标对象操作结果集 7.提交数据 conn.commit()和撤销数据 conn.rollback() 8.关闭游标 cur.close() 9.关闭连接 conn.close()

二、判断题 

【模块】

1.pymysql模块可用于Python连接MySQL数据库。(

2.turtle是Python内置的一个标准模块(

*3.包中的__init__.py文件为空时,可以不存在。(

4.from 模块名 import …方式可以简化模块中内容的引用,但存在函数重名的隐患,因此相对而言使用import语句导入模块更加安全。 (

5.第三方模块是由非官方制作发布的、供大众使用的Python模块,在使用之前需要开发人员先自行安装。(

6.自定义模块也通过import语句和from…import…语句导入。(

【类与对象】

27.子类在继承父类时,会自动拥有父类中的方法和属性。(

28.通过类的实例可以直接访问该类的私有成员。( 

31.类定义完成后不能直接使用,程序中的类需要实例化为对象才具有意义。(

33.Python在定义类时,类名首字母一般为大写。(

34.Python在定义类时,类名后的冒号必不可少。(

35.类中的数据成员用于描述对象的特征,成员函数用于描述对象的行为。(

36.面向过程和面向对象都是解决问题的一种思路。(

37.类中定义的属性和方法默认为公有属性和方法,可以被对象任意访问。 (

*40.定义类时可以定义__init__()方法,也可以不定义__init__()方法。(

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

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

相关文章

Calendar日历类型常见方法

Calendar日历类型常见方法: 概括:1.get( )方法2、set( ) 设置时间3、常用的add方法4、after()方法表示的时间是否在指定时间之后, before( ) 方法则之前, 返回判断结果4.1、compareTo比较器 概括: Calendar类是一个抽…

专业课130+,总分390+四川大学951信号与系统考研通信,电子信息经验分享

今年专业课130,总分390,顺利上岸,将近一年复习一路走来,感慨很多,希望以下经历可以给后来的同学提供一些参考。 初试备考经验 公共课:三门公共课,政治,英语,数学。在备…

Visual Studio 2022进行文件差异比较

前言 Visual Studio 2022在版本17.7.4中发布在解决方案资源管理器中比较文件的功能,通过使用此功能,可以轻松地查看两个文件之间的差异,包括添加、删除和修改的代码行。可以逐行查看差异,并根据需要手动调整和编辑文件内容以进行…

Web安全防护

一、Web安全简介 二、Web攻击来源 1、客户端: 2、服务器: 3、通道: 三、Web应用基本组成部分 URL工作过程 HTTP/HTTPS HTTP有两类报文 HTTP请求报头 HTTP协议请求方法 状态码 状态码组成 三、Cookie概述 Cookie和Session的关系 …

阿里云服务器配置选择之公司ERP办公系统配置推荐

公司OA、ERP等办公系统如何选择阿里云服务器配置?可以选择第七代企业级独享型云服务器,ECS通用型g7、计算型c7或内存型r7实例,4核CPU8G内存、8核16G、4核16G等配置,活动 https://t.aliyun.com/U/bLynLC 实例规格使用场景vCPU内存…

Swagger生成接口文档

操作步骤&#xff1a; 1、导入knife4j的maven坐标 2、导入knife4j相关配置类 3、设置静态资源、否则接口文档页面无法访问 4、在LoginCheckFilter中设置不需要处理的请求路径 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-…

Python新年烟花代码

Pygame 绘制烟花的基本原理 1&#xff0c;发射阶段&#xff1a;在这一阶段烟花的形状是线性向上&#xff0c;通过设定一组大小不同、颜色不同的点来模拟“向上发射” 的运动运动&#xff0c;运动过程中 5个点被赋予不同大小的加速度&#xff0c;随着时间推移&#xff0c;后面的…

如何理解Nacos的CP和AP架构模型?

Nacos是阿里巴巴开源的注册中心和配置中心&#xff0c;它既可以替应用服务管理服务相关的元数据&#xff0c;也可以管理服务相关的配置信息。 Nacos既支持单机部署&#xff0c;也支持集群部署&#xff0c;为了保证数据的一致性&#xff0c;在集群模式下&#xff0c;Nacos既支持…

代码随想录刷题第三十六天| 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

代码随想录刷题第三十六天 无重叠区间 (LC 435) 题目思路&#xff1a; 代码实现&#xff1a; class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:intervals.sort(keylambda x: (x[0],x[1]))count 0right intervals[0][1]for i in ra…

手游开发项目经验简单总结

这是我最近一个完整的手游开发项目的简单总结&#xff0c;请大家指点 引擎 语言 编辑器 项目开发模块规划分 主项目工程&#xff0c;UI资源项目工程&#xff0c;模型场景资源项目工程 热更框架 前后端协议 UI 图集 多语言适配 SLG场景和其他场景 战斗 美术模型资源 人物 动作…

Python中常用的设计模式与实践分享

设计模式&#xff08;Design Patterns&#xff09;是在软件开发中常见问题的可复用解决方案。使用设计模式可以帮助我们创建更灵活、可维护和可复用的代码。在Python中&#xff0c;设计模式同样适用&#xff0c;并且由于Python的动态特性&#xff0c;某些设计模式在Python中的实…

mysql 添加用户并分配select权限

1.root用户先登录或者在可执行界面 1.1 选择mysql 点击mysql 或者在命令行 use mysql 1.2创建用户 CREATE USER username% IDENTIFIED BY password; 备注1&#xff1a;%替换为可访问数据库的ip&#xff0c;例如“127.0.0.1”“192.168.1.1”&#xff0c;使用“%”表示不限制…

如何通过HACS+Cpolar实现远程控制米家和HomeKit等智能家居设备

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant&#xff0c;通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店&#xff0c;将米家&#xff0c;果家设备接入 Home Assistant。 基本条件…

c# vb.net查找是否存在某个键名HashSet、Collection,字典Dictionary对象用法

vb.net Collection对象如何设置忽略大小写&#xff0c;如何检测是否含有某项 在VB.NET中&#xff0c;可以使用StringComparer类来设置Collection对象的忽略大小写。StringComparer类提供了几个静态属性&#xff0c;可以用于创建不区分大小写的比较器。其中&#xff0c;StringC…

5G时代的电商:超高速网络如何改变购物体验?

随着5G技术的不断发展和商业化推广&#xff0c;超高速网络正深刻地改变着人们的生活方式&#xff0c;其中最显著的之一便是电子商务领域。本文将深入探讨5G时代电商的发展趋势&#xff0c;以及超高速网络如何深刻改变用户的购物体验。 5G技术的崛起 5G技术是第五代移动通信技术…

ROS执行命令发现找不到python2.7解决办法

ros链接的python是2.7的&#xff0c;如果链接到python3就会报错module找不到 第一步&#xff1a;执行&#xff1a;ls -n /usr/bin/python 发现python软链接到了python3.7 第二步删除软链接&#xff1a;sudo rm -rf /usr/bin/python 第三步&#xff1a;然后再重新建立到python2…

linux系统安全及应用

系统账号清理 将用户设置成无法登录 将用户的shell属性改成/sbin/nologin锁定用户 passwd -l 用户 锁定用户 passwd -u 用户 解锁用户删除用户 userdel -r 用户 删除用户及家目录锁定配置文件 chattr i 文件或文件夹 锁定文件或文件夹&#xff0c;锁定之后便无法修…

生成式 AI -颠覆软件开发

# 生成式AI如何重塑开发流程和开发工具 # &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;C/C精进之路 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 目录 1 引言 …

物奇平台蓝牙耳机SOC MIC气密性测试配置方法

物奇平台蓝牙耳机SOC MIC气密性测试配置方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 正常的MIC频响曲线 2 异常的MIC频响曲线 FF…

MySQL数据库设置主键自增、自增主键为什么不能保证连续递增

文章目录 一、设置主键自增1.1、建表时设置主键自增1.2、建表后设置主键自增1.3、删除自增约束 二、自增列&#xff1a;AUTO_INCREMENT2.1、自增起始值和自增步长2.2、自增主键存储策略2.3、自增值修改机制2.3、特点和要求 三、自增字段值不连续3.1、自增不连续的示例3.1.1、示…