Python快速编程入门课后习题答案

您所在的位置:网站首页 下列标识符中合法的有 Python快速编程入门课后习题答案

Python快速编程入门课后习题答案

2023-11-17 14:21| 来源: 网络整理| 查看: 265

文章目录 前言第一章一、填空题二、判断题三、选择题四、简答题 第二章一、填空题二、判断题三、选择题四、简答题 第三章一、填空题二、判断题三、选择题四、简答题 第四章一、单选题二、判断题三、填空题四、程序分析题 第五章一、选择题二、判断题三、填空题四、简答题五、程序分析题 第六章一、单选题二、判断题三、填空题四、简答题五、程序分析题 第七章一、单选题二、判断题三、填空题四、简答题五、程序分析题 第八章一、单选题二、判断题三、填空题四、简答题 第九章一、单选题二、判断题三、填空题四、简答题 第十章一、单选题二、判断题三、填空题四、简答题 第十一章一、单选题二、判断题三、填空题四、简答题五、程序分析题 第十二章一、选择题二、判断题三、填空题四、简答题 END

前言

本文整理了填空、选择、判断等一些课后习题答案,具体的编程题可以见:Python快速编程入门课后程序题答案。

第一章 一、填空题 Python是一种面向对象的高级语言。Python可以在多种平台运行,这体现了Python语言的可移植特性。Python源代码被解释器转换后的格式为字节码。Python 3.x 默认使用的编码是UTF-8。 二、判断题 Python是开源的,它可以被一直到许多平台上。(√)Python的优点之一是具有伪代码的本质。(√)Python可以开发Web程序,也可以管理操作系统。(√)Mac系统自带Python开发环境。(√)Python自带的shell,其性能由于IPython。(×)我们编写的Python代码在运行过程中,会被编译成二进制代码。(×)Python程序被解释器转换后的文件格式后缀名为.pyc。(√)Python 3.x 版本的代码完全兼容 Python 2.x。(×)PyCharm是开发Python的集成开发环境。(√)代码print(3,4)是Python 2.x的输出格式。(×) 三、选择题

下列选项中,不属于Python语言特点的是(C)。 A.简单易学 B.开源 C.面对过程 D.可移植性

下列领域中,使用Python可以实现的是(ABCD)。(多选) A.Web开发 B.操作系统管理 C.科学计算 D.游戏

下列关于Python 2.x和Python 3.x的说法,正确的是(B)。 A.Python 3.x使用print语句输出数据 B.Python 3.x默认使用的编码是UTF-8 C.Python 2.x和Python 3.x使用//进行除法运算的结果不一致 D.Python 3.x版本的异常可以直接被抛出

下列关于Python的说法中,错误的是(C)。 A.Python是从ABC发展起来的 B.Python是一门高级的计算机语言 C.Python是一门只面向对象的语言 D.Python是一种代表简单主义思想的语言

下列关于IPython的说法,错误的是(D)。 A.IPython集成了交互式Python的很多有点 B.IPython的性能远远优于标准的Python的shell C.IPython支持变量自动补全,自动收缩 D.与标准的Python相比,IPython缺少内置的功能和函数

四、简答题

简述Python的特点。 •简单易学 •开源 •高级语言 •可移植性 •解释性 •面向对象 •可扩展性 •丰富的库 •规范的代码

简述Python的应用领域(至少3个)。 •web应用开发 •操作系统管理、服务器运维的自动化脚本 •科学计算 •桌面软件 •服务器软件(网络软件) •游戏 •构思实现,产品早期原型和迭代

简述Python 2.x和Python 3.x的区别。 (1)、在python2.x中,输出数据使用的是print语句。但是在python3.x中, print语句没有了,取而代之的是print()函数 (2)、python2有ASCII Str()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。 (3)、在python 2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。 (4)、相比python2.x版本,python3.x版本在异常方面有很多改变:   •在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。   •在python2.x版本中,捕获异常的语法是except exc,var。在python3.x版本中,引入了as关键字,捕获异常的语法变更为except exc as var。   •在python2.x版本中,处理异常使用raise Exception(args)。在python3.x版本中,处理异常使用raiseException, args。   •python3.x取消了异常类的序列行为和.message属性。 (5)、在Python 3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。 (6)、Python 2.x中不等于有两种写法 != 和 ;但是,Python 3.x中去掉了, 只有!=一种写法 (7)、python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。

简述Python程序的执行原理。 Python程序的执行原理如图所示: 在这里插入图片描述 Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行。

简述IPython的特点。 •IPython具有卓越的Python shell,其性能远远优于标准Python的shell。 •IPython支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 •IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交互式Python shell包含在各种Python应用中,甚至可以当作系统级shell来使用。

第二章 一、填空题 在Python中,int表示的数据类型是整型。布尔类型的值包括True和False。Python的浮点数占8个字节。如果要在计算机中表示浮点数 1.2 × 1051.2 × 1051.2 × 1 0 5 1.2×1051.2×105 1.2\times10^5 1.2×1051.2×1051.2×1051.2×105,则表示方法为1.2e5。00001000>>2的结果是00000010。若a=20,那么bin(a)的值为0b10100。如果想测试变量的类型,可以使用type()来实现。若a=1,b=2,那么(a or b)的值为1。若a=10,b=20,那么(a and b)结果为20。4.34E5表示的是4.34×10^5。 二、判断题 Python使用符号#表示单行注释。(√)标识符可以以数字开头。(×)type()方法可以查看变量的数据类型。(√)Python中的代码块使用缩进来表示。(√)Python中的多行语句可以使用反斜杠来实现。(×)Python中标识符不区分大小写。(×)Python中的标识符不能使用关键字。(√)使用help()命令可以进入帮助系统。(√)Python中的成员运算符用于判断制定序列中是否包含某个值。(√)比较运算符用于比较两个数,其返回的结果智能是True或False。(√) 三、选择题

下列选项中,(D)的布尔值不是Flase。 A.None B.0 C.() D.1

假设a=9,b=2,那么下列运算中,错误的是(D)。 A.a+b的值是11 B.a//b的值是4 C.a%b的值是1 D.a**b的值是18

下列标识符中,合法的是(AD)。 A.helloWorld B.2ndObj C.hello#world D._helloworld

下列符号中,表示Python中单行注释的是(A)。 A.# B.// C. D."“"

下列选项中,符合Python命名规范的标识符是(C)。 A.user-Passwd B.if C._name D.setup.exe

下列选项中,Python不支持的数据类型有(B)。 A.int B.char C.float D.dicitionary

下列表达式中,返回 True 的是(B)。 A.a=2 b=2 a=b B.3>2>1 C.True and False D.2!=2

下列语句中,哪个在 Python 中是非法的?(B)。 A.x = y = z = 1 B.x = (y = z + 1) C.x, y = y, x D.x += y

下列关于 Python 中的复数,说法错误的是(C)。 A.表示复数的语法是 real + image j B.实部和虚部都是浮点数 C.虚部必须后缀 j,且必须是小写 D.一个复数必须有表示虚部的实数和 j

下列选项中,幂运算的符号为(D)。 A.* B.++ C.% D.**

四、简答题 简述Python中标识符的命名规则。 •标识符由字母、下划线和数字组成,且数字不能开头。 •python中的标识符是区分大小写的。 •python中的标识符不能使用关键字。简述Python中的数字类型。 int(整型)、long(长整型)、float(浮点数)、complex(复数) 第三章 一、填空题 在循环体中使用break语句可以跳出循环体。elif语句是else语句和if语句的组合。在循环体中可以使用continue语句跳过本次循环后面的代码,重新开始下一次循环。如果希望循环是无限的,我们可以通过设置条件表达式永远为True来实现无限循环。Python中的pass表示的是空语句。 二、判断题 elif可以单独使用。(×)pass语句的出现是为了保持进程结构的完整性。(√)在Python中没有switch-case语句。(√)每个if条件后面都要使用冒号。(√)循环语句可以嵌套使用。(√) 三、选择题 下列选项中,会输出1,2,3三个数字的是(BC)。 A. for i in range(3): print(i) 123 B. for i in range(3): print(i + 1) 123 C. a_list = [0,1,2] for i in a_list: print(i + 1) 1234 D. i = 1 while i 0: y = x + 1 else: y = x 1234567 C. if x except----->else---->finally B.try---->else---->except----->finally C.try---->except----->finally—>else D.try----->else---->else----->except

下列选项中,用于触发异常的是(A)。 A.try B.catch C.raise D.except

关于抛出异常的说法中,描述错误的是(C)。 A.当raise指定异常的类名时,会隐式地创建异常类的实例 B.显式地创建异常类实例,可以使用raise直接引发 C.不带参数的raise语句,只能引发刚刚发生过的异常 D.使用raise抛出异常时,无法指定描述信息

关于抛出异常的说法中,描述错误的是(D)。 A.当raise指定异常的类名时,会隐式地创建异常类的实例 B.显式地创建异常类实例,可以使用raise直接引发 C.不带参数的raise语句,只能引发刚刚发生过的异常 D.使用raise抛出异常时,无法指定描述信息

二、判断题 默认情况下,系统检测到错误后会终止程序。(√)在使用异常时必须先导入exceptions模块。(×)一个try语句只能对应一个except子句。(×)如果except子句没有指明任何异常类型,则表示捕捉所有的异常。(√)无论程序是否捕捉到异常,一定会执行finally语句。(√)所有的except子句一定在else和finally的前面。(√) 三、填空题 Python中所有的异常类都是Exception子类。当使用序列中不存在的索引时,会引发IndexError异常。一个try语句智能对应一个finally子句。当约束条件不满足时,assert语句会触发AssertionError异常。如果在没有except的try语句中使用else语句,会引发语法错误。 四、简答题 请简述什么是异常。 在Python中,程序在执行的过程中产生的错误称为异常,比如列表索引越界、打开不存在的文件等。处理异常有哪些方式? try、except、else、finally语句。 第十章 一、单选题

下列关键字中,用来引入模块的是(C)。 A.include B.from C.import D.continue

关于引入模块的方式,错误的是(D)。 A.import math B.from fib import fibnacci C.form math import * D.from * import fib

关于__name__的说法,下列描述错误的是(A)。 A.它是Python提供的一个方法 B.每个模块内部都有一个__name__属性 C.当它的值为’__main__‘时,表示模块自身在运行 D.当它的值不为’__main__'时,表示模块被引用

二、判断题 Python解释器会优先查看默认的路径搜索模块的位置。(×)每个Python文件就是一个模块。(√)当__name__属性的值为__main__时,代表该模块自身在运行。(√)包目录下必须有一个__init__py文件。(√)外部模块都提供了自动安装的文件,直接双击安装就行。(×) 三、填空题 要调用random模块的randint函数,书写形式为random. randint。每个Python文件都可以作为一个模块,模块的名字就是文件的名字。每个模块都有一个__name__属性,使程序块智能在模块自身运行时执行。为了更好地组织模块,通常会把多个模块放在一个包中。当程序中需要引入外部模块时,需要从外面下载并安装。如果要搜索模块的路径,可以使用sys模块的path变量。 四、简答题 解释Python脚本程序的"__name__"的作用。 每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__name__”属性。利用“__name__”属性即可控制Python程序的运行方式。请简述Python解释器搜索模块位置的顺序。 (1)、搜索当前目录,如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。 (2)、如果都找不到。Python会继续查看默认路径。请简述模块的概念。 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。请简述导入模块的方法。 在Python中用关键字import来引入某个模块: (1)、导入模块,使用“import 模块”引入; (2)、导入模块中的某个函数,使用“from 模块名 import 函数名”引入; (3)、导入模块的全部内容,使用“from 模块 import *”。 第十一章 一、单选题

关于面向过程和面向对象,下列说法错误的是(B)。 A.面向过程和面向对象都是解决问题的一种思路 B.面向过程是基于面向对象的 C.面向过程强调的是解决问题的步骤 D.面向对象强调的是解决问题的对象

关于类和对象的关系,下列描述正确的是(D)。 A.类和面向对象的核心 B.类是现实中事物的个体 C.对象是根据类创建的,并且一个类只能对应一个对象 D.对象描述的是现实的个体,它是类的实例

构造方法的作用是(C)。 A.一般成员方法 B.类的初始化 C.对象的初始化 D.对象的建立

构造方法是类的一个特殊方法,Python中它的名称为(C)。 A.与类同名 B._construct C._init_ D. init

Python类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员。 A.self B.me C.this D.与类同名

下列选项中,符合类的命名规范的是(A)。 A.HolidayResort B.Holiday Resort C.hoildayResort D.hoilidayresort

Python中用于释放类占用资源的方法是(B)。 A.__init__ B.__del__ C._del D.delete

二、判断题 面向对象是基于面向过程的。(×)通过类可以创建对象,有且只有一个对象实例。(×)方法和杉树的格式是完全一样的。(×)创建类的对象时,系统会自动调用构造方法进行初始化。(√)创建完对象后,其属性的初始值是固定的,外界无法进行修改。(×)使用del语句删除对象,可以手动释放它所占用的资源。(√) 三、填空题 在Python中,可以使用class关键字来声明一个类。面向对象需要把问题划分多个独立的对象,然后调用其方法解决问题。类的方法中必须有一个self参数,位于参数列表的开头。Python提供了名称为__init__的构造方法,实现让类的对象完成初始化。如果想修改属性的默认值,可以在构造方法中使用参数设置。 四、简答题 请简述self在类中的意义。 不用实例化对象就能够在本类中访问自身的属性或方法。类是由哪三个部分组成的? 类名,属性,方法。请简述构造方法和析构方法的作用。 分别用于初始化对象的属性和释放类所占用的资源。 五、程序分析题

阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

代码一: class Person: def __init__(self, name): self.name = name def __str__(self): return "我的名字是" + self.name person = Person("小明") print(person) 1234567

  结果为:我的名字是小明

代码二: class Person: def __del__(self): print("--del--") person = Person() del person print("--end--") 123456

  结果为:   --del–   --end–

第十二章 一、选择题

Python中定义私有属性的方法是(D)。 A. 使用private关键字 B.使用public关键字 C.使用__XX__定义属性名 D.使用__XX定义属性名

下列选项中,不属于面向对象程序设计的三个特征的是(A)。 A.抽象 B.封装 C. 继承 D.多态

以下C类继承A类和B类的格式中,正确的是(C)。 A. class C A,B: B. class C(A:B) C.class C(A,B) D.class C A and B:

下列选项中,与class Person等价的是(C)。 A. class Person(Object) B. class Person(Animal) C. class Person(object) D. class Person: object

下列关于类属性和示例属性的说法,描述正确的是(B)。 A.类属性既可以显示定义,又能在方法中定义 B.公有类属性可以通过类和类的实例访问 C.通过类可以获取实例属性的值 D.类的实例只能获取实例属性的值

下列选项中,用于标识为静态方法的是(C)。 A.@classmethood B.@instancemethod C.@staticmethod D.@privatemethod

下列方法中,不可以使用类名访问的是(A)。 A.实例方法 B.类方法 C.静态方法 D.以上3项都不符合

二、判断题 Python中没有任何关键字区分公有属性和私有属性。(√)继承会在原有类的基础上产生新的类,这个新类就是父类。(×)带有两个下划线的方法一定是私有方法。(√)子类能继承父类的一切属性和方法。(×)子类通过重写继承的方法,覆盖掉跟父类同名的方法。(√)如果类属性和实例属性重名,对象有限访问类属性的值。(×)使用类名获取到的值一定是类属性的值。(√)静态方法中一定不能访问实例属性的值。(√) 三、填空题 如果属性名的前面加上了两个下划线,就表明它是私有属性。在现有类基础上构建新类,新的类称作子类,现有的类称作父类。父类的私有属性和方法是不能被子类继承的,更不能被子类访问。Python语言既支持单继承,也支持多继承。子类想按照自己的方式实现方法,需要重写从父类继承的方法。子类通过super()可以成功地访问父类的成员。位于类内部、方法外部的方法是类方法。类方法是类拥有的方法,使用修饰器@classmethod来标识。 四、简答题

请简述如何保护类的属性。 (1)、把属性定义为私有属性,即在属性名的前面加上两个下划线; (2)、添加用于设置或者获取属性值的两个方法供外界调用。

什么是继承? 类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类的属性和方法。

请简述私有属性无法访问的原理。 当在一个类的内部定义了私有方法或者私有属性的时候,Python在运行的过程中,把属性或者方法的名字进行了修改,即在属性或者方法名称的前面加上“_类名”,导致原有的方法无法访问到。

什么是多态? 在Python中,多态是指在不考虑对象类型的情况下使用对象。

请简述实例方法、类方法和静态方法的区别。 (1)、类方法需要使用@classmethod进行标识,该方法可以访问类属性,无法访问实例属性,可以通过类实例和类进行调用。 (2)、静态方法使用@staticmethod进行标识,该方法无法访问实例属性和类属性,起到类似于函数的作用,使用类或者类实例进行调用。 (3)、实例方法直接在类中使用def进行定义,可以访问其实例属性和类属性,使用类实例进行调用。 (4)、如果要修改实例属性的值,就直接使用实例方法;如果要修改类属性的值,就直接使用类方法;如果是辅助功能,比如打印菜单,这时可以考虑使用静态方法,可以在不创建对象的前提下使用。

请简述Python中以下划线开头的变量名的特点。 在Python中,以下划线开头的变量名有着特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员: (1)、_xx:这样的对象叫做保护变量,不能用from module import *导入,只有类对象和子类对象能够访问这些变量。 (2)、__xx__:系统定义的特殊成员名字。 (3)、__xx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名.__类名__ xx”这样特殊的方式来访问。Python中没有纯粹的C++意义上的私有成员。

END


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3