Python程序设计课后习题答案-第一单元

合集下载

Python程序设计课后习题答案-第一单元

Python程序设计课后习题答案-第一单元

习题1一、选择题1.Python语言属于()。

CA.机器语言 B.汇编语言 C.高级语言 D.科学计算语言2.下列选项中,不属于Python特点的是().BA.面向对象 B.运行效率高 C.可读性好 D.开源3.Python程序文件的扩展名是( ).DA.。

python B.。

pyt C..pt D..py4.以下叙述中正确的是()。

CA.Python 3.x与Python 2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点5.下列选项中合法的标识符是( )。

AA._7a_b B.break C._a$b D.7ab 6.下列标识符中合法的是()。

BA.i'm B._ C.3Q D.for 7.Python不支持的数据类型有().AA.char B.int C.float D.list8.关于Python中的复数,下列说法错误的是()。

BA.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写 D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。

DA.〈class ’int’> B.〈class ’long'>C.<class ’str’〉 D. <class 'float'>10.字符串s='a\nb\tc',则len(s)的值是().CA.7 B.6 C.5 D.411.Python语句print(0xA+0xB)的输出结果是( )。

DA.0xA+0xB B.A+BC.0xA0xB D.2112.下列属于math库中的数学函数的是( )。

CA.time() B.round() C.sqrt() D.random()13.Python表达式中,可以使用( )控制运算的优先顺序。

《Python程序设计》习题与答案-python教材答案之欧阳地创编

《Python程序设计》习题与答案-python教材答案之欧阳地创编

《Python程序设计》习题与参考答案第1章基础知识1.1 简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。

1.2 为什么说Python采用的是基于值的内存管理模式?答:Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:常用的有三种方式,分别为●import 模块名 [as 别名]●from 模块名 import 对象名[ as 别名]●from math import *1.4 使用pip命令安装numpy、scipy模块。

答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。

最新《Python程序设计基础》习题答案与分析

最新《Python程序设计基础》习题答案与分析

Python程序设计基础习题答案与分析程昱第1章基础知识1.1 简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。

1.2 为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)10417624>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True1.3 解释Python中的运算符“/”和“//”的区别。

答:在Python 2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python 3.x中,“/”为真除法,与除法的数学含义一致。

《Python程序设计》习题与答案python教材答案

《Python程序设计》习题与答案python教材答案

《Python程序设计》习题与答案python教材答案《Python程序设计》习题与答案第一章:Python基础题目1:计算器程序设计答案:代码可以如下所示:```pythondef add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:return "Error: Division by zero is not allowed"return a / b```题目2:变量和数据类型答案:Python中的常见数据类型有整型(int)、浮点型(float)、字符串型(str)、布尔型(bool)等。

题目3:条件语句答案:条件语句用于根据不同的条件执行不同的代码块。

常见的条件语句有if语句、if-else语句和if-elif-else语句。

题目4:循环语句答案:循环语句用于多次执行相同或类似的代码块。

常见的循环语句有for循环和while循环。

第二章:函数和模块题目1:函数的定义和调用答案:函数是一段可重复使用的代码块,用于完成特定的任务。

函数的定义可以通过def关键字来实现,而函数的调用则通过函数名和参数完成。

题目2:内置函数答案:Python提供了丰富的内置函数,如print()、len()、input()等。

这些内置函数可以直接使用,无需额外定义。

题目3:模块的导入和使用答案:Python模块是一组相关的函数、类和变量的集合,用于组织、重用和扩展代码。

模块的导入可以使用import语句,然后通过模块名和函数名来调用模块中的内容。

第三章:文件操作题目1:文件的打开和关闭答案:文件操作前需要通过open()函数打开文件,在完成操作后需要使用close()函数关闭文件。

例如:```pythonfile = open("test.txt", "w")# 执行文件操作file.close()```题目2:读取文件内容答案:使用Python的read()函数可以读取整个文件的内容,或者使用readline()函数读取一行内容。

《PYTHON程序设计基础》习题答案与分析

《PYTHON程序设计基础》习题答案与分析

Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。

1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。

答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。

Python程序设计课后习题答案

Python程序设计课后习题答案

习题1一、选择题1.Python语言属于()。

CA.机器语言B.汇编语言C.高级语言D.科学计算语言2.下列选项中,不属于Python特点的是()。

BA.面向对象B.运行效率高C.可读性好D.开源3.Python程序文件的扩展名是()。

DA..python B..pyt C..pt D..py4.以下叙述中正确的是()。

CA.Python3.x与Python2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点5.下列选项中合法的标识符是()。

AA._7a_b B.break C._a$b D.7ab 6.下列标识符中合法的是()。

BA.i'm B._C.3Q D.for 7.Python不支持的数据类型有()。

AA.char B.int C.float D.list8.关于Python中的复数,下列说法错误的是()。

BA.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。

DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>10.字符串s='a\nb\tc',则len(s)的值是()。

CA.7B.6C.5D.411.Python语句print(0xA+0xB)的输出结果是()。

DA.0xA+0xB B.A+BC.0xA0xB D.2112.下列属于math库中的数学函数的是()。

CA.time()B.round()C.sqrt()D.random() 13.Python表达式中,可以使用()控制运算的优先顺序。

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与参考答案第1章基础知识1.1 简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2。

x还是Python 3.x,最高支持到Python 2.7。

6还是Python 2。

7。

9.这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上.同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3。

x系列的最高版本(目前是Python 3。

4。

3).1.2 为什么说Python采用的是基于值的内存管理模式?答:Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码.>>〉x = 3>>〉id(x)10417624〉〉> y = 3〉〉〉id(y)10417624〉>> y = 5〉〉> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:常用的有三种方式,分别为import 模块名[as 别名]●from 模块名import 对象名[ as 别名]●from math import *1.4 使用pip命令安装numpy、scipy模块.答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字.例如用户输入1234,则程序输出12。

Python程序设计习题与答案

Python程序设计习题与答案

Python程序设计习题与参考答案第1章基础知识简单说明如何选择正确的Python版本;答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高反复安装和卸载上;同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新;尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本目前是Python ;为什么说Python采用的是基于值的内存管理模式答:Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码;>>> x = 3>>> idx>>> y = 3>>> idy>>> y = 5>>> idy>>> idx在Python中导入模块中的对象有哪几种方式答:常用的有三种方式,分别为import 模块名 as 别名from 模块名 import 对象名 as 别名from math import使用pip命令安装numpy、scipy模块;答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy编写程序,用户输入一个三位以上的整数,输出其百位以上的数字;例如用户输入1234,则程序输出12;提示:使用整除运算;答:x = input'Please input an integer of more than 3 digits:'try:x = intxx = xelse:except BaseException:print'You must input an integer.'import typesx = input'Please input an integer of more than 3 digits:'if typex = :print 'You must input an integer.'elif lenstrx = 4:print 'You must input an integer of more than 3 digits.' else:print xoinmapstr,resultx = input'Please input an integer less than 1000:'t = xi = 2result =while True:if t==1:breakif t%i==0:it = t/ielse:print x,'=',''.joinmapstr,result编写程序,至少使用2种不同的方法计算100以内所有奇数的和; x = i for i in range1,100 if i%2==1printsumxprintsumrange1,100::2编写程序,实现分段函数计算,如下表所示;x = input'Please input x:'x = evalxif x<0 or x>=20:print0elif 0<=x<5:printxelif 5<=x<10: print3x-5 elif 10<=x<20: printx-2第4章字符串与正则表达式假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正;1不使用正则表达式x = "i am a teacher,i am man, and i am 38 years am not a businessman." x = 'i ','I 'x = ' i ',' I 'printx2使用正则表达式x = "i am a teacher,i am man, and i am 38 years am not a businessman." import repattern = r':^\w|\bi:^\w'while True:result = xif result:if 0 = 0:x = x:0+1+'I'+x0-1:else:x = x:0+'I'+x0-1:else:breakprintx假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正;import rex = "I am a teacher,I am man, and I am 38 years am not a busInessman." printxpattern = r':\wI:\w'while True:result = xif result:if 0 = 0:x = x:0+1+'i'+x0-1:else:x = x:0+'i'+x0-1:else:breakprintx有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个;例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”1方法一import rex = 'This is a a desk.'pattern = r'\b\w+\s+\1{1,}\b'matchResult = xx = 1,xprintx2方法二x = 'This is a a desk.'pattern = r'P<f>\b\w+\b\sP=f'matchResult = xx = 0,1简单解释Python的字符串驻留机制;答:Python支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本;这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别; >>> a = '1234'>>> b = '1234'>>> ida == idbTrue>>> a = '1234'50>>> b = '1234'50>>> ida == idbFalse编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词;import rex = input'Please input a string:'pattern = r'\ba-zA-Z{3}\b'printx第5章函数设计与使用答:原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的列表插入或删除了元素,将会得到保留,从而影响下一次调用;编写函数,判断一个整数是否为素数,并编写主程序调用该函数;import mathdef IsPrimev:n = intv+1for i in range2,n:if v%i==0:return 'No'else:return 'Yes'printIsPrime37printIsPrime60printIsPrime113编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果;def demov:capital = little = digit = other =0for i in v:if 'A'<=i<='Z':capital+=1elif 'a'<=i<='z':little+=1elif '0'<=i<='9':digit+=1else:other+=1return capital,little,digit,otherx = 'capital = little = digit = other =0'printdemox在Python程序中,局部变量会隐藏同名的全局变量吗请编写代码进行验证;答案:会;>>> def demo:a=3print a>>> a=5>>> demo3>>> a5编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和; def demov:printvprintmaxvprintsumvdemo1,2,3demo1,2,3,4demo1,2,3,4,5编写函数,模拟内置函数sum;def Sumv:s = 0for i in v:s += ireturn sx = 1,2,3,4,5printSumxx = 1,2,3,4,5printSumx编写函数,模拟内置函数sorted;def Sortedv:t = v::r =while t:tt = mint ttttreturn rx = 1,3,5,2,1,0,9,7 printxprintSortedx第6章面向对象程序设计继承节例2中的Person类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息;import typesclass Personobject: 基类必须继承于object,否则在派生类中将无法使用super 函数def __init__self, name = '', age = 20, sex = 'man':nameagesexdef setNameself, name:if not isinstancename,str:print'name must be string.'return= namedef setAgeself, age:if not isinstanceage,int:print'age must be integer.'return= agedef setSexself, sex:if sex = 'man' and sex = 'woman':print'sex must be "man" or "woman"'return= sexdef showself:printprintprintclass StudentPerson:def __init__self, name='', age = 30, sex = 'man', major = 'Computer': 调用基类构造方法初始化基类的私有数据成员superStudent, self.__init__name, age, sexmajor 初始化派生类的数据成员def setMajorself, major:if not isinstancemajor, str:print'major must be a string.'return= majordef showself:superStudent, self.showprintif __name__ =='__main__':zhangsan = Person'Zhang San', 19, 'man'lisi = Student'Li Si',32, 'man', 'Math'设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算;class Vecter3:def __init__self, x=0, y=0, z=0:= x= y= zdef __add__self, n:r = Vecter3= += += +return rdef __sub__self, n:r = Vecter3= -= -= -return rdef __mul__self, n:r = Vecter3= n= n= nreturn rdef __truediv__self, n:r = Vecter3= / n= / n= / nreturn rdef __floordiv__self, n:r = Vecter3= 类名__xxx”这样的特殊方式来访问;Python中没有纯粹的C++意义上的私有成员;与运算符“”对应的特殊方法名为__pow__ ,与运算符“.except...else...语句;3在实际开发中,同一段代码可能会抛出多个异常,需要针对不同的异常类型进行相应的处理;为了支持多个异常的捕捉和处理,Python提供了带有多个except 的异常处理结构,这类似于多分支选择结构,一旦某个except捕获了异常,则后面剩余的except子句将不会再执行;语法为:try:try块被监控的语句except Exception1:except块1 处理异常1的语句except Exception2:except块2 处理异常2的语句4将要捕获的异常写在一个元组中,可以使用一个except语句捕获多个异常,并且共用同一段异常处理代码,当然,除非确定要捕获的多个异常可以使用同一段代码来处理,并不建议这样做;5最后一种常用的异常处理结构是try...except...finally...结构;在该结构中,finally子句中的内存无论是否发生异常都会执行,常用来做一些清理工作以释放try子句中申请的资源;语法如下:try:……finally:...... 无论如何都会执行的代码异常和错误有什么区别答:异常是指因为程序执行过程中出错而在正常控制流以外采取的行为;严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等;使用pdb模块进行Python程序调试主要有哪几种用法答:主要有三种方式,1在交互模式下使用pdb模块提供的功能可以直接调试语句块、表达式、函数等多种脚本;2在程序中嵌入断点来实现调试功能在程序中首先导入pdb模块,然后使用在需要的位置设置断点;如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态;3使用命令行调试程序在命令行提示符下执行“python –m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb将重启该程序;Python内建异常类的基类是 BaseException ;断言语句的语法为 assert ;Python上下文管理语句是 with ;第9章 GUI编程设计一个窗体,并放置一个按钮,单击按钮后弹出颜色对话框,关闭颜色对话框后提示选中的颜色;import wxclass wxGUI:def OnInitself:frame = parent=None, title='wxGUI', size=160,140panel = frame, -1buttonOK = panel, -1, 'OK', pos=0,0, , buttonOKreturn Truedef OnButtonOKself, event:colorDlg = Nonecolor = .Colourstrcolorapp = wxGUI设计一个窗体,并放置一个按钮,按钮默认文本为“开始”,单击按钮后文本变为“结束”,再次单击后变为“开始”,循环切换;import wxclass wxGUI:def OnInitself:frame = parent=None, title='wxGUI', size=160,140panel = frame, -1= panel, -1, 'Start', pos=0,0, ,return Truedef OnButtonOKself, event:if text == 'Start':elif text == 'End':app = wxGUI设计一个窗体,模拟登录界面,当用户输入号码123456和密码654321时提示正确,否则提示错误;import wxclass wxGUI:def OnInitself:frame = parent=None, title='Login', size=250,150, pos=350,350 panel = frame, -1label1 = panel, -1, 'UserName:', pos=0,10, style=label2 = panel, -1, 'Password:', pos=0,30, style= = panel, -1, pos=70,10, size=160,20= panel, -1, pos=70,30, size=160,20,style=buttonOK = panel, -1, 'OK', pos=30,60, , buttonOKbuttonCancel = panel, -1, 'Cancel', pos=120,60, , buttonCancelreturn Truedef OnButtonOKself, event:if usrName=='123456' and usrPwd=='654321':'Right'else:'Wrong'def OnButtonCancelself, event:passapp = wxGUI第10章网络程序设计简单解释TCP和UDP协议的区别;答:TCP协议是面向连接的、具有质量保证的可靠传输协议,但开销较大;UDP协议是尽最大能力传输的无连接协议,开销小,常用于视频在线点播Video On Demand, VOD之类的应用;TCP协议和UDP协议并没有优劣之分,仅仅是适用场合有所不同;同学之间合作编写UDP通信程序,分别编写发送端和接收端代码,发送端发送一个字符串“Hello world”;假设接收端在计算机的5000端口进行接收,并显示接收内容;答:首先使用ipconfig/all命令查看本机IP地址,然后分别编写下面的代码,并将其中的IP地址替换为相应的IP地址;接收端代码:import sockets=,"", 5000 空字符串表示本机任何可用IP地址data, addr=1024 缓冲区大小为1024字节print ' received message:%s' % data 显示接收到的内容发送端代码:import sockets=,0主机的IP地址简单介绍socket模块中用于TCP编程的常用方法;TCP一般用于要求可靠数据传输的场合;编写TCP程序时经常需要用到的socket模块方法主要有:connectaddress:连接远程计算机sendbytes,flags:发送数据recvbufsize,flags:接收数据bindaddress:绑定地址listenbacklog:开始监听,等待客户端连接accept:响应客户端的请求编写代码读取搜狐网页首页内容;答:>>> import>>> dir'>>> dirfp>>> print100>>>在自己的机器上配置IIS以支持Python脚本的运行,然后使用Python编写脚本,运行后在网页上显示“Hello world”;答:核心代码为printprint 'Status: 200 OK'print 'Content-type: text/html'printprint '<HTML><HEAD><TITLE>Python Sample CGI</TITLE></HEAD>' print '<BODY>'print '<H1>This is a header</H1>'print '<p>Hello world'print '<br>'print '</BODY>'第11章大数据处理简单介绍常见的大数据处理框架;答:主要有三种,MapReduce:分布式计算框架,可以将单个大型计算作业分配给多台计算机执行,可以在短时间内完成大量工作,尤其适合数值型和标称型数据,但需要对行业领域具有一定理解后重写算法来完成特定的业务处理要求;MapReduce的名字由函数式编程中常用的map和reduce两个单词组成;MapReduce在大量节点组成的集群上运行,工作流程是:单个作业被分成很多小份,输入数据也被切片并分发到每个节点,每个节点只在本地数据上做运算,对应的运算代码称为mapper,这个过程即map阶段;每个mapper的输出通过某种方式组合,根据需要可能再进行重新排序,排序后的结果再被切分成小份并分发到各个节点进行下一步处理,这个过程被称为reduce阶段,对应的代码称为reducer;不同类型的作业可能需要不同数量的reducer,并且,在任何时候,每个mapper或reducer之间都不进行通信,每个节点只负责处理自己的事务,并且只在分配到本地的数据集上进行运算;Hadoop:Hadoop是MapReduce框架的一个免费开源实现,采用Java语言编写,支持在大量机器上分布式处理数据;除了分布式计算之外,Hadoop还自带分布式文件系统,可以在上面运行多种不同语言编写的分布式程序;Hadoop在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台;Spark:Spark是一个针对超大数据集合的低延迟集群分布式计算系统,比MapReduce快40倍左右;Spark是Hadoop的升级版本,兼容Hadoop的API,能够读写Hadoop的HDFS HBASE 顺序文件等,与之不同的是将结果保存在内存中; Hadoop作为第一代产品使用了HDFS,第二代加入了Cache来保存中间计算结果,第三代则是Spark倡导的流技术Streaming;运行本章中代码并理解MapReduce编程思路;答:略第12章 Windows系统编程查阅相关资料,解释注册表几大根键的用途;答:略选择一个编写好的Python程序,将其转换为exe可执行文件;答:略,请参考书中相关介绍;编写代码,使用至少3中不同的方法启动Windows自带的计算器程序;答:第一种方法:>>> import os>>> ''第二种方法:>>> import os>>> ''第三种方法:>>> import os>>> ''第四种方法:>>> import win32api>>> 0, 'open', '', '', '', 1第五种方法:>>> import win32process>>> handle=r'c:\windows\system32\','', None,None,0, , None, None, 编写代码,检测您所使用的操作系统版本;答:略,请参考节;第13章多线程编程简单叙述创建线程的方法;答:Thread类支持使用两种方法来创建线程,一种是为构造函数传递一个可调用对象,另一种是继承Thread类并在派生类中重写__init__和run方法;创建了线程对象以后,可以调用其start方法来启动,该方法自动调用该类对象的run方法,此时该线程处于alive状态,直至线程的run方法运行结束;简单叙述Thread对象的方法;答:1jointimeout:阻塞当前线程,等待被调线程结束或超时后再继续执行当前线程的后续代码,参数timeout用来指定最长等待时间,单位为秒;2isAlive:测试线程是否处于运行状态3start:自动调用run方法,启动线程,执行线程代码;4run:线程代码,用来实现线程的功能与业务逻辑,可以在子类中重写该方法来自定义线程的行为;简单叙述线程对象的daemon属性的作用和影响;答:在脚本运行过程中有一个主线程,若在主线程中创建了子线程,当主线程结束时根据子线程daemon属性值的不同可能会发生下面的两种情况之一:1当某子线程的daemon属性为False时,主线程结束时会检测该子线程是否结束,如果该子线程尚未完成,则主线程会等待它完成后再退出;2当某子线程的daemon属性为True 时,主线程运行结束时不对该子线程进行检查而直接退出,同时所有daemon值为True的子线程将随主线程一起结束,而不论是否运行完成;daemon属性的值默认为False,如果需要修改,则必须在调用start方法启动线程之前进行修改;解释至少3种线程同步方法;答:(1)使用Condition对象可以在某些事件触发后才处理数据,可以用于不同线程之间的通信或通知,以实现更高级别的同步;Condition对象除了具有acquire 和release方法之外,还有wait、notify、notify_all等方法;下面通过经典生产者/消费者问题来演示Condition对象的用法;(2)Queue模块在Python 3中为queue模块实现了多生产者/多消费者队列,尤其适合需要在多个线程之间进行信息交换的场合,该模块的Queue对象实现了多线程编程所需要的所有锁语义;(3)Event对象是一种简单的线程通信技术,一个线程设置Event对象,另一个线程等待Event对象;Event对象的set方法可以设置Event对象内部的信号标志为真;clear方法可以清除Event对象内部的信号标志,将其设置为假;isSet 方法用来判断其内部信号标志的状态;wait方法只有在其内部信号状态为真时将很快地执行并返回,若Event对象的内部信号标志为假,wait方法将一直等待至超时或内部信号状态为真;第14章数据库编程简单介绍SQLite数据库;答:SQLite是内嵌在Python中的轻量级、基于磁盘文件的数据库管理系统,不需要服务器进程,支持使用SQL语句来访问数据库;该数据库使用C语言开发,支持大多数SQL91标准,支持原子的、一致的、独立的和持久的事务,不支持外键限制;通过数据库级的独占性和共享锁定来实现独立事务,当多个线程同时访问同一个数据库并试图写入数据时,每一时刻只有一个线程可以写入数据;SQLite支持2TB 大小的单个数据库,每个数据库完全存储在单个磁盘文件中,以B+树数据结构的形式存储,一个数据库就是一个文件,通过简单复制即可实现数据库的备份;使用Python内置函数dir查看Cursor对象中的方法,并使用内置函数help 查看其用法;答:略;叙述使用Python操作Access数据库的步骤;答:1建立数据库连接importDSN2打开记录集rs_name = 'MyRecordset' 表名'' + rs_name + '', conn, 1, 33操作记录集4操作数据sql_statement = "Insert INTO Table_Name Field_1, Field_2 VALUES 'data1', 'data2'"DSNsql_statement5遍历记录count = 0while 1:if :breakelse:count = count + 1叙述使用Python操作MS SQL Server数据库的步骤;答:可以使用pywin32和pymssql两种不同的方式来访问MS SQL Server数据库;先来了解一下pywin32模块访问MS SQL Server数据库的步骤;1添加引用:import adodbapiimport as adc2创建连接:Cfg =constr = r"Provider=; Initial Catalog=%s; Data Source=%s; user ID=%s; Password=%s; "% Cfg'db', Cfg'server', 'sa', Cfg'password'conn = constr3执行sql语句:cur =sql = '''select from softextBook where title='{0}' and remark3='{1}''''.formatbookName,flagsqldata =4执行存储过程:假设proName有三个参数,最后一个参数传了nullret = 'procName',parm1,parm2,None5关闭连接接下来再通过一个示例来简单了解一下使用pymssql模块访问MS SQL Server 数据库的方法;import pymssqlconn = host='SQL01', user='user', password='password', database='mydatabase'cur ='CREATE TABLE personsid INT, name VARCHAR100'"INSERT INTO persons VALUES%d, ", 1, 'John Doe', 2, 'Jane Doe''SELECT FROM persons WHERE salesrep=', 'John Doe'row =while row:print "ID=%d, Name=" % row0, row1row ="SELECT FROM persons WHERE salesrep LIKE 'J%'"叙述MySQLDb模块提供的数据库访问方法;答:Python访问MySQL数据库可以使用MySQLDb模块,该模块主要方法有:commit :提交事务;rollback :回滚事务;callprocself, procname, args:用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数;executeself, query, args:执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数;executemanyself, query, args:执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数;nextsetself:移动到下一个结果集;fetchallself:接收全部的返回结果行;fetchmanyself, size=None:接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回条数据;fetchoneself:返回一条结果行;scrollself, value, mode='relative':移动指针到某一行,如果mode='relative',则表示从当前所在行移动value条;如果 mode='absolute',则表示从结果集的第一行移动value条;第15章多媒体编程编程程序,在窗口上绘制一个三角形,设置三个顶点为不同的颜色,并对内部进行光滑着色;答:from importfrom importfrom importimport sysclass MyPyOpenGLTest:def __init__self, width = 640, height = 480, title = 'MyPyOpenGLTest': glutInitglutInitDisplayModeGLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTHglutInitWindowSizewidth, height= glutCreateWindowtitleglutDisplayFuncglutIdleFuncwidth, heightdefault drawing functiondef Drawself:glClearGL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BITglLoadIdentityglTranslatef, ,draw 2D graphic, leaving z to be 0 glBeginGL_POLYGONglColor3f, ,glVertex3f, ,glColor3f, ,glVertex3f, ,glColor3f, ,glVertex3f, ,glEndglTranslatef, ,glutSwapBuffersdef InitGLself, width, height:glClearColor, , ,glClearDepthglDepthFuncGL_LESSglShadeModelGL_SMOOTHglEnableGL_POINT_SMOOTHglEnableGL_LINE_SMOOTHglEnableGL_POLYGON_SMOOTHglMatrixModeGL_PROJECTIONglHintGL_POINT_SMOOTH_HINT,GL_NICEST glHintGL_LINE_SMOOTH_HINT,GL_NICESTglHintGL_POLYGON_SMOOTH_HINT,GL_FASTESTglLoadIdentitygluPerspective, floatwidth/floatheight, ,glMatrixModeGL_MODELVIEWdef MainLoopself:glutMainLoopif __name__ == '__main__':w = MyPyOpenGLTest编写程序,读取两幅大小一样的图片,然后将两幅图像的内容叠加到一幅图像,结果图像中每个像素值为原两幅图像对应位置像素值的平均值;答:from PIL import Imageim1 = 'd:\\'im2 = 'd:\\'size =for i in rangesize0:for j in rangesize1:color1 = i,jcolor2 = i,jr = color10+color20p3'total = lenmusicswhile :nextMusic = musicsprint 'playing....',nextMusic else:1def OnButtonOKself, event:= Truecreate a new thread to play musict = target=def OnButtonCancelself, event:= Falseapp = wxGUI运行本章中的代码并查看运行结果;答:略;第16章逆向工程与软件分析下载PE文件规范版本,并尝试了解PE文件基本结构;答:略;下载并安装IDA Pro与Immunity Debugger,并简单了解PE文件反汇编和调试步骤;答:略;安装并配置IDAPython插件,然后运行本章答:略;在Immunity Debugger调试器中运行本章答:略;叙述软件调试断点的概念、作用及其分类;答:断点是最常用的软件调试技术之一,其基本思想是在某一个位置设置一个“陷阱”,当CPU执行到这个位置的时候停止被调试的程序并中断到调试器中,让调试者进行分析和调试,调试者分析结束后,可以让被调试程序恢复执行;通过设置断点可以暂停程序执行,并可以观察和记录指令信息、变量值、堆栈参数和内存数据,还可以深入了解和把握程序执行的内部原理和详细过程,断点对于软件调试具有重要的意义和作用;断点可以分为软件断点、硬件断点和内存断点三大类;1软件断点软件断点是一个单字节指令INT 3,字节码为0xCC,可以在程序中设置多个软件断点,使得程序执行到该处时能够暂停执行,并将控制权转移给调试器的断点处理函数;当调试器被告知在目标地址设置一个断点,它首先读取目标地址的第一个字节的操作码,然后保存起来,同时把地址存储在内部的中断列表中;接着,调试器把一个字节操作码“0xCC”写入刚才的地址;当 CPU 执行到“0xCC”操作码的时候就会触发一个“INT 3”中断事件,此时调试器就能捕捉到这个事件;调试器继续判断这个发生中断事件的地址通过指令指针寄存器EIP是不是自己先前设置断点的地址;如果在调试器内部的断点列表中找到了这个地址,就将设置断点前存储起来的操作码写回到目标地址,这样进程被调试器恢复后就能正常的执行;2硬件断点硬件断点通过调试寄存器实现,设置在CPU级别上,当需要调试某个指定区域而又无法修改该区域时,硬件断点非常有用;一个CPU一般会有8 个调试寄存器DR0 寄存器到DR7寄存器,用于管理硬件断点;其中调试寄存器DR0到调试寄存器DR3存储硬件断点地址,同一时间内最多只能设置4个硬件断点;DR4和DR5保留,DR6是状态寄存器,说明被断点触发的调试事件的类型;DR7本质上是一个硬件断点的开关寄存器,同时也存储了断点的不同类型;通过在DR7寄存器里设置不同标志,能够创建以下几种断点:当特定的地址上有指令执行的时候中断、当特定的地址上有数据写入的时候、当特定的地址上有数据读或者写但不执行的时候;硬件断点使用“INT 1”实现,该中断负责硬件中断和步进事件;步进是指根据预定的流程一条一条地执行指令,每执行完一条指令后暂停下来,从而可以精确地观察关键代码并监视寄存器和内存数据的变化;在CPU每次执行代码之前,都会先确认当前将要执行代码的地址是否是硬件断点的地址,同时也要确认是否有代码要访问被设置了硬件断点的内存区域;如果任何储存在DR0-DR3中的地址所指向的区域被访问了,就会触发“INT 1”中断,同时暂停CPU;如果不是中断地址则CPU 执行该行代码,到下一行代码时,CPU继续重复上面的过程;3内存断点内存断点是通过修改内存中指定块或页的访问权限来实现的;通过将指定内存块或页的访问权限属性设置为受保护的,则任何不符合访问权限约束的操作都将失败,并抛出异常,导致CPU暂停执行,使得调试器可以查看当前执行状态;一般来说,每个内存块或页的访问权限都由三种不同的访问权限组成:是否可执行、是否可读、是否可写;每个操作系统都提供了用来查询和修改内存页访问权限的函数,在Windows操作系统中可以使用VirtualProtect函数来修改主调进程虚拟地址空间中已提交页面的保护属性,使用VirtualProtectEx函数可以修改其他进程虚拟地址空间页面的保护属性;运行本章节中的代码并查看运行结果;答:略;第17章科学计算与可视化运行本章所有代码并查看运行结果;答:略;使用Python内置函数dir查看scipy模块中的对象与方法,并使用Python 内置函数help查看其使用说明;答:略;。

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与参考答案之南宫帮珍创作第1章基础知识1.1 简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python 的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。

这些问题都确定以后,再做出自己的选择,这样才干事半功倍,而不至于把大量时间浪费在Python的反复装置和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python 3究竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了测验考试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。

1.2 为什么说Python采取的是基于值的内存管理模式?答:Python采取的是基于值的内存管理方式,如果为分歧变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:经常使用的有三种方式,分别为●import 模块名 [as 别号]●from 模块名 import 对象名[ as 别号]●from math import *1.4 使用pip命令装置numpy、scipy模块。

Python语言程序设计(美-梁勇)第1章习题解答

Python语言程序设计(美-梁勇)第1章习题解答

第一章计算机、程序和python概述1.1什么是硬件?什么是软件?答:硬件包括计算机上能看到的物理元素,而软件提供控制硬件并让硬件执行特定任务的不可见的指令。

通常来说,硬件包括CPU、内存(主存储器)、存储设备(如磁盘和光盘)、输入设备(如鼠标和键盘)、输出设备(如显示器和打印机)、通信设备(如调制解调器和网络接口卡)。

1.2罗列出计算机的五个主要硬件组件。

答:中央处理器(CPU),存储设备(如磁盘和光盘),输入设备(如键盘和鼠标),输出设备(如打印机和显示器),通信设备(如调制解调器和网络接口)。

1.3缩写“CPU”表示什么?答:中央处理器,它是计算机的大脑。

1.4 CPU的速度用什么单位表示?答:赫兹(Hz),1赫兹相当于每秒1个脉冲。

现在intel公司最新的处理器运行速度是3GHz左右。

1.5比特是什么?字节是什么?答:比特就二进制系统中0和1;计算机中最小的存储单元是字节,1字节=8比特1.6内存是干什么的?RAM表示什么?为什么内存被称为RAM?答:内存是计算机执行程序的工作区,程序和数据必须在被CPU执行之前放在计算机的内存中。

内存中的每个字节都有一个唯一的地址,地址用来定位存储和获取数据内存又被成为随机访问内存(RAM)1.7用于表示内存大小的单位是什么?答:字节,另1GB=1024MB,1MB=1024B1.8用于表示磁盘大小的单位是什么?答:字节1.9内存和存储设备中主要的区别是什么?答:内存是不稳定的,因为当电源关闭时,内存中的信息会丢失。

程序和数据被永久地存储在存储设备中,并且可以被自由移动。

当计算机实际上使用它们时,从内存中调用会比存储设备快得多。

1.10 CPU能够理解的是什么语言?答:机器语言是一套在每个计算机上都建的原始指令。

这是用计算机理解的语言,并由计算机执行。

1.11什么是汇编语言?答:汇编语言是一种低级的编程语言,助记符来表示每个机器语言指令。

1.12什么是汇编器?答:一种将汇编语言翻译成机器语言的软件。

《PYTHON程序设计基础》习题答案与分析

《PYTHON程序设计基础》习题答案与分析

Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。

1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。

答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。

Python程序设计课后习题答案第一单元

Python程序设计课后习题答案第一单元

Python程序设计课后习题答案第一单元一、绪论Python程序设计是一门非常重要的编程语言,它具有简单易学、灵活强大等特点,深受广大开发者的喜爱。

本文将为大家提供Python程序设计课后习题的答案,帮助大家更好地掌握Python的相关知识。

二、基础知识与应用1. 问题一:如何使用print语句输出Hello, World!?答案:我们可以使用以下代码实现输出Hello, World!:```print("Hello, World!")```2. 问题二:如何定义一个变量并输出该变量的值?答案:可以使用以下代码定义一个变量,并输出该变量的值: ```x = 10print(x)```3. 问题三:如何交换两个变量的值?答案:可以使用以下代码实现变量值的交换:```a = 10b = 20a, b = b, aprint(a, b)```三、条件与循环1. 问题一:如何使用if语句判断一个数的正负情况?答案:可以使用以下代码实现对一个数的正负情况的判断: ```num = int(input("请输入一个整数:"))if num > 0:print("该数为正数")elif num < 0:print("该数为负数")else:print("该数为零")2. 问题二:如何使用while语句计算1到100的和?答案:可以使用以下代码实现1到100的和的计算:```sum = 0i = 1while i <= 100:sum += ii += 1print("1到100的和为:", sum)```四、函数与模块1. 问题一:如何定义一个函数并调用该函数?答案:可以使用以下代码定义一个函数,并调用该函数: ```def say_hello():print("Hello, World!")say_hello()2. 问题二:如何导入并使用Python的系统模块math?答案:可以使用以下代码导入math模块,并使用该模块中的函数: ```import mathnum = 16sqrt_num = math.sqrt(num)print("16的平方根为:", sqrt_num)```五、文件操作1. 问题一:如何读取一个文本文件的内容并输出?答案:可以使用以下代码读取文本文件的内容并输出:```file = open("text.txt", "r")content = file.read()print(content)file.close()```2. 问题二:如何向一个文本文件中写入内容?答案:可以使用以下代码向文本文件中写入内容:```file = open("text.txt", "w")file.write("Hello, World!")file.close()```六、总结通过以上对Python程序设计课后习题的答案解析,我们可以更好地理解和掌握Python语言的相关知识。

最新Python程序设计课后习题答案-第一单元

最新Python程序设计课后习题答案-第一单元

习题1一、选择题1.Python语言属于()。

CA.机器语言 B.汇编语言 C.高级语言 D.科学计算语言2.下列选项中,不属于Python特点的是()。

BA.面向对象 B.运行效率高 C.可读性好 D.开源3.Python程序文件的扩展名是()。

DA..python B..pyt C..pt D..py4.以下叙述中正确的是()。

CA.Python 3.x与Python 2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点5.下列选项中合法的标识符是()。

AA._7a_b B.break C._a$b D.7ab 6.下列标识符中合法的是()。

BA.i'm B._ C.3Q D.for 7.Python不支持的数据类型有()。

AA.char B.int C.float D.list8.关于Python中的复数,下列说法错误的是()。

BA.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写 D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。

DA.<class 'int'> B. <class 'long'>C.<class 'str'> D. <class 'float'>10.字符串s='a\nb\tc',则len(s)的值是()。

CA.7 B.6 C.5 D.411.Python语句print(0xA+0xB)的输出结果是()。

DA.0xA+0xB B.A+BC.0xA0xB D.2112.下列属于math库中的数学函数的是()。

CA.time() B.round() C.sqrt() D.random() 13.Python表达式中,可以使用()控制运算的优先顺序。

《Python程序设计基础》习题答案与分析

《Python程序设计基础》习题答案与分析

Pytho‎n程序设计‎基础习题答案与‎分析程昱第1章基础知识1.1 简单说明如‎何选择正确‎的P yth‎o n版本。

答:在选择Py‎t hon的‎时候,一定要先考‎虑清楚自己‎学习Pyt‎h on的目‎的是什么,打算做哪方‎面的开发,有哪些扩展‎库可用,这些扩展库‎最高支持哪‎个版本的P‎y thon‎,是Pyth‎o n 2.x还是Py‎t hon 3.x,最高支持到‎P y tho‎n 2.7.6还是Py‎t hon 2.7.9。

这些问题都‎确定以后,再做出自己‎的选择,这样才能事‎半功倍,而不至于把‎大量时间浪‎费在Pyt‎h on的反‎复安装和卸‎载上。

同时还应该‎注意,当更新的P‎y thon‎版本推出之‎后,不要急于更‎新,而是应该等‎确定自己所‎必须使用的‎扩展库也推‎出了较新版‎本之后再进‎行更新。

尽管如此,Pytho‎n 3毕竟是大‎势所趋,如果您暂时‎还没想到要‎做什么行业‎领域的应用‎开发,或者仅仅是‎为了尝试一‎种新的、好玩的语言‎,那么请毫不‎犹豫地选择‎P y tho‎n 3.x系列的最‎高版本(目前是Py‎t hon 3.4.3)。

1.2 为什么说P‎y thon‎采用的是基‎于值的内存‎管理模式?Pytho‎n采用的是‎基于值的内‎存管理方式‎,如果为不同‎变量赋值相‎同值,则在内存中‎只有一份该‎值,多个变量指‎向同一块内‎存地址,例如下面的‎代码。

>>> x = 3>>> id(x)10417‎624>>> y = 3>>> id(y)10417‎624>>> y = 5>>> id(y)10417‎600>>> id(x)10417‎624>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True1.3 解释Pyt‎h o n中的‎运算符“/”和“//”的区别。

《Python程序设计》课后习题参考答案

《Python程序设计》课后习题参考答案

第1章一、选择题1.B2.D3.C4.C二、简答题1.(1)简单易学(2)解释性(3)可移植性(4)可扩展性(5)面向对象(6)丰富的库2.(1)Web应用开发(2)自动化运维(3).网络安全(4).网络爬虫(5).游戏开发(6).数据分析(7).人工智能三、编程题1.print('Hello, World!.')2.print('***********************************')print('\t\tHello Python World!')print('***********************************')第2章2.6习题一、选择题1.C2.D3.C4.A5.B6.D二、填空题2.26 2.type()3.274. -5.75; -6 5. False三、简答题1.(1)变量名必须由字母、数字、或者下划线(_)组成。

(2)不能使用空格、连字符、标点符号、引号等其他特殊字符。

(3)以字母或下划线开头,但不能以数字开头(4)严格区分大小写。

(5)要避免与Python关键字和函数名冲突2. 见表2.4.第3章3.4综合实验#1s1 = " keep on going never give up "s2 = s1.capitalize()print(s2)#2s3 = s2.strip()print(s3)#3print (s3.endswith('up'))#4print (s3.startswith('on'))#5print (s3.replace('e','aa'))#6print (s3.split('n'))#7print (s3.upper())#8n1 = 'Lily'print ('%s says: %s.'%(n1,s3))#9print (s3.center(40,'#'))#10print (s3.count('e'))#11print (s3.split())#12print ('/'.join(s4))#13print (' '.join(s4[::-1]))3.5 习题一、选择题1.B2.D3.C4.C二、填空题1. 'moon'2. 'shipfriend'3. 54. 'bEIjING'5. spam三、编程题1.str1 = 'I want to go to Beijing, Berli and Beijing this year. How about you?' str2 = str1.split()str2 = ' '.join(str2)print (str2)2.思路:(1).变量名的第一个字符是否为字母或下划线(2).如果是,继续判断--> 4(3).如果不是,报错(4).依次判断除了第一个字符之外的其他字符(5).判断是否为字母数字或者下划线while True:s = input('请输入字符(q退出):')if s == 'q':exit()#判断字符串第一个变量是否满足条件if s[0].isalpha() or s[0] == '_':for i in s[1:]:#判断判断除了第一个元素之外的其他元素是否满足条件if i.isalnum() or i == '_':continueelse:print('不合法')breakelse:print('合法')else:print('不合法')3.#!/usr/bin/env python#coding:utf-8s = input("输入:")s1 = s.split(" ")s2 = s1[0].upper()s3 = s1[-1].upper()print (s2.count(s3))4.s = input('input a string:\n')letters, space, digit, others = 0,0,0,0for c in s:if c.isalpha():letters += 1elif c.isspace():space += 1elif c.isdigit():digit += 1else:others += 1print ('char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others))第4章4.4 综合实验#01fav_city = []#02fav_city.append('Qinghai')fav_city.append('Chengdu')fav_city.append('Dalian')fav_city.append('Xizang')fav_city.append('Haerbin')print (fav_city)#03fav_city[0] = 'Qingdao'#04fav_city.insert(2,'Kunming')#05del fav_city[0]#06fav_city.remove('Xizang')#07fav_city.sort()#08fav_city.reverse()#09for city1 in fav_city:print (city1)#10tuple_city = tuple(fav_city)#11len(tuple_city)4.5 习题一、选择题1.D2.A3.B4.D5.C二、填空题1.[123,22, 123,22]2.x = [1,3,5,7,9]3. [11,22,33,11]4. Flase5. b= [::2]6. (6,)三、编程题#1import randomx = [random.randint(0,100) for i in range(10)]x.sort()print (x)#2.list1 = ['Hollywood', 'Mexico', 'New Delhi', 'Tokyo'] item = list1.pop(0)list1.append(item)print (list1)#3a = int(input('a:'))for b in x:if a < b:x.insert(x.index(b),a)breakelse:x.append(a)print (x)#3x.pop()x[:5] = sorted(x[:5] ,reverse = True)x[5:] = sorted(x[5:])print (x)4.#列表推导法list1 = [22,11,33,22,44,33]temp_list=[]for x in list1:if x not in temp_list:temp_list.append(x)print (temp_list) #输出结果未排序#排序方法list1 = [22,11,33,22,44,33]list2 = sorted(list1)temp_list = []i = 0while i < len(list2):if list2[i] not in temp_list:temp_list.append(list2[i])else:i += 1print (temp_list) #输出结果已排序第5章字典综合实验1.Qing_Hai = ['qinghai','xining','青',8,'810000']Si_Chuan = ['sichuan','chengdu','川',21,'610000']Gan_Su = ['gansu','lanzhou','陇',14,'730000']Ning_Xia = ['ningxia','yinchuan','宁',5,'750000']Nei_MengGu = ['neimenggu','huhehaote','内蒙古',12,'010000'] Shaan_Xi = ['shaanxi','xian','陕',10,'710000']Shan_Xi = ['shanxi','taiyuan','晋',11,'030000']He_Nan = ['henan','zhengzhou','豫',18,'450000']Shan_Dong = ['shandong','jinan','鲁',16,'250000']provinces = [Qing_Hai,Si_Chuan,Gan_Su,Ning_Xia,Nei_MengGu,Shaan_Xi,Shan_Xi,He_Nan,Shan_Dong] Yellow_River_basin = {}for province in provinces:Yellow_River_basin[province[0]] = province[1:]print(Yellow_River_basin)2.# 遍历嵌套字典的键for key in Yellow_River_basin.keys():print(key)# 遍历嵌套字典的值for value in Yellow_River_basin.values():print(value)# 遍历嵌套字典的键值对for key, value in Yellow_River_basin.items():print(key+"'s Capital is : %s "%value[0]+" For_short is : %s "%value[1]+"Area_manage is : %d个"%value[2]+"Postal_code is : %s"%value[3])3.for provinc in Yellow_River_basin.keys():if provinc == 'sichuan':Yellow_River_basin[provinc] = ['chengdu', '蜀', 21, '610000']elif provinc == 'gansu':Yellow_River_basin[provinc] = ['lanzhou', '甘', 14, '730000']elif provinc == 'shaanxi':Yellow_River_basin[provinc][1] = '秦'print(Yellow_River_basin)4qinghai = {'name':'QingHai','capital':'XiNing','for_short':'青','area_manage':8}sichuang = {'name':'SiChuan','capital':'ChengDu','for_short':'川','area_manage':21}gansu = {'name':'GanSu','capital':'LanZhou','for_short':'陇','area_manage':14}ningxia = {'name':'NingXia','capital':'YinChuan','for_short':'宁','area_manage':5}neimenggu = {'name':'Neimenggu','capital':'HuheHaote','for_short':'内蒙古','area_manage':12} shaanxi= {'name':'ShaanXi','capital':'XiAn','for_short':'陕','area_manage':10}shanxi = {'name':'ShanXi','capital':'TaiYuan','for_short':'晋','area_manage':11}henan = {'name':'HeNan','capital':'ZhengZhou','for_short':'豫','area_manage':18}shandong = {'name':'ShanDong','capital':'JiNan','for_short':'鲁','area_manage':16}basin_list = [qinghai,sichuang,gansu,ningxia,neimenggu,shaanxi,shanxi,henan,shandong] Postal_Code = ['810000','610000','730000','750000','010000','710000','030000','450000','250000']print(basin_list)5for province_num in range(len(basin_list)):basin_list[province_num]['postal_code'] = Postal_Code[province_num]print(basin_list)第5章综合实验一、选择题1.B2.C3.B4.D5.D二、简答题1.(1)字典的键(key)具有唯一性。

《Python程序设计教程》习题答案

《Python程序设计教程》习题答案

《Python程序设计教程》习题答案说明:以下习题答案是机械工业出版社出版的《Python程序设计教程》(作者:程细柱和程心怡)一书中各章节习题的答案,希望对读者有用。

第1章Python的开发平台(进入Python城堡)一、判断题1.(╳)2.(√)3.(╳)4.(√)5.(√)6.(╳)7.(√)二、单选题1.B 2.C 3.D 4.B 5.D 6.C7.C8.B9.C10.B11.B12.B13.C14.A15.B、D16.D三、填空题1.引用计数和垃圾收集器2.交互和脚本文件3.>>>4.help(“命令”)5..py四、简答题1.答:具体过程如下:1)用户选择“开始”菜单的“所有程序”,选择打开Python的IDLE窗口;2)在IDLE窗口选择“File/New File”菜单打开程序编辑窗口;3)在编辑窗口中输入程序源代码;4)输入完源代码后,选择编辑窗口的“File/Save”菜单保存Python程序文件;5)选择编辑窗口的“Run/Module”菜单或者按快捷键F5执行该程序。

2.答:Python语言具有简单易学、规范代码、能交互运行、免费开源、面向对象、可移植性好、可嵌入性强、丰富的标准库、高层的解释型语言等优点;它常常应用于人工智能、大数据、科学计算、云计算、云服务、网络爬虫、Web开发、桌面软件、游戏开发等领域。

第2章Python的基础知识(初遇城堡语言)一、判断题1.(√)2.(╳)3.(√)4.(╳)5.(√)6.(╳)7.(╳)8.(╳)9.(╳)二、单选题1.D2.B 3.D 4.A 5.A 6.D7.C8.A9.B10.D11.D12.B13.D14.B15.B16.D17.C18.A19.A20.C21.D22.A23.B24.C25.D26.C27.D28.C29.A30.B31.B32.D33.B34.C35.D36.C37.B38.C39.A40.B41.A42.D43.C44.B45.C46.B47.C48.A49.C50.B51.D52.D53.C54.B55.D56.B57.D三、填空题1.True和False2.83.74.浮点型(float)、布尔型(bool)和复数类型(complex)5.关系运算、逻辑运算、位运算四、名词解释1.是指在运行期间才去做数据类型检查的语言。

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与答案-python教材答案

《Python法式设计》习题与参考谜底之老阳三干创作第1章基础知识1.1 简单说明如何选择正确的Python版本.答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,筹算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9.这些问题都确定以后,再做出自己的选择,这样才华事半功倍,而不至于把年夜量时间浪费在Python的反复装置和卸载上.同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必需使用的扩展库也推出了较新版本之后再进行更新.尽管如此,Python 3究竟是年夜势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了检验考试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3).1.2 为什么说Python采纳的是基于值的内存管理模式?答:Python采纳的是基于值的内存管理方式,如果为分歧变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码.>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:经常使用的有三种方式,分别为●import 模块名 [as 别名]●from 模块名 import 对象名[ as 别名]●from math import *1.4 使用pip命令装置numpy、scipy模块.答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy1.5 编写法式,用户输入一个三位以上的整数,输出其百位以上的数字.例如用户输入1234,则法式输出12.(提示:使用整除运算.)答:1)Python 3.4.2代码:x = input('Please input an integer of more than 3 digits:')try:x = int(x)x = x//100if x == 0:print('You must input an integer of more than 3 digits.')else:print(x)except BaseException:print('You must input an integer.')2)Python 2.7.8代码:import typesx = input('Please input an integer of more than 3 digits:')if type(x) != types.IntType:print 'You must input an integer.'elif len(str(x)) != 4:print 'You must input an integer of more than 3 digits.'else:print x//100第2章 Python数据结构2.1 为什么应尽量从列表的尾部进行元素的增加与删除把持?答:当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除把持以提高处置速度.2.2 编写法式,生成包括1000个0到100之间的随机整数,并统计每个元素的呈现次数.(提示:使用集合.)答:import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print(v, ':', x.count(v))import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print v, ':', x.count(v)2.3 编写法式,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素组成的子列表.例如用户输入[1,2,3,4,5,6]和2,5,法式输出[3,4,5,6].答:x = input('Please input a list:')x = eval(x)start, end = eval(input('Please input the start position and the end position:'))print(x[start:end])x = input('Please input a list:')start, end = input('Please input the start position and the end position:')print x[start:end]2.4 设计一个字典,并编写法式,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在!”答:d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')v = eval(v)print(d.get(v,'您输入的的键不存在'))d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')print(d.get(v,'您输入的的键不存在'))2.5 编写法式,生成包括20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果.答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint(x)import randomx = [random.randint(0,100) for i in range(20)]print xy = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint x2.6 在Python中,字典和集合都是用一对年夜括号作为定界符,字典的每个元素有两部份组成,即键和值 ,其中键不允许重复.2.7 假设有列表 a = ['name','age','sex']和 b = ['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,而且以列表a中的元素为键,以列表b中的元素为值,这个语句可以写为 c = dict(zip(a,b)).2.8 假设有一个列表a,现要求从列表a中每3个元素取1个,而且将取到的元素组成新的列表b,可以使用语句 b = a[::3].2.9 使用列表推导式生成包括10个数字5的列表,语句可以写为 [5 for i in range(10)].2.10 不成以(可以、不成以)使用del命令来删除元组中的部份元素.第3章选择结构与循环结构3.1 分析逻辑运算符“or”的短路求值特性.答:假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True.因此,不需要再计算表达式2的值.3.2 编写法式,运行后用户输入4位整数作为年份,判断其是否为闰年.如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年.答:x = input('Please input an integer of 4 digits meaning the year:')x = eval(x)if x%400==0 or (x%4==0 and not x%100==0):print('Yes')else:print('No')x = input('Please input an integer of 4 digits meaning the year:')if x%400==0 or (x%4==0 and not x%100==0):print 'Yes'else:print 'No'3.3 编写法式,生成一个包括50个随机整数的列表,然后删除其中所有奇数.(提示:从后向前删.)答:import randomx = [random.randint(0,100) for i in range(50)]print(x)i = len(x)-1while i>=0:if x[i]%2==1:del x[i]i-=1print(x)把上面的代码中第三行和最后一行改为print x即可.34 编写法式,生成一个包括20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变.(提示:使用切片.)答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[::2]y.sort(reverse=True)x[::2] = yprint(x)把上面的代码中第三行和最后一行改为print x即可.35 编写法式,用户从键盘输入小于1000的整数,对其进行因式分解.例如,10=2×5,60=2×2×3×5.答:x = input('Please input an integer less than 1000:')x = eval('x')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1Print x,'=','*'.join(map(str,result))x = input('Please input an integer less than 1000:')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1print x,'=','*'.join(map(str,result))3.6 编写法式,至少使用2种分歧的方法计算100以内所有奇数的和.答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可.x = [i for i in range(1,100) if i%2==1]print(sum(x))print(sum(range(1,100)[::2]))3.7 编写法式,实现分段函数计算,如下表所示.答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可.x = input('Please input x:')x = eval(x)if x<0 or x>=20:print(0)elif 0<=x<5:print(x)elif 5<=x<10:print(3*x-5)elif 10<=x<20:print(0.5*x-2)第4章字符串与正则表达式4.1 假设有一段英文,其中有独自的字母“I”误写为“i”,请编写法式进行纠正.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.1)不使用正则表达式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."x = x.WordStr('i ','I ')x = x.WordStr(' i ',' I ')print(x)2)使用正则表达式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."import repattern = pile(r'(?:[^\w]|\b)i(?:[^\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'I'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'I'+x[result.end(0)-1:]else:breakprint(x)4.2 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写法式进行纠正.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.import rex = "I am a teacher,I am man, and I am 38 years old.I am not a busInessman."print(x)pattern = pile(r'(?:[\w])I(?:[\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'i'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'i'+x[result.end(0)-1:]else:breakprint(x)4.3 有一段英文文本,其中有单词连续重复了2次,编写法式检查重复的单词并只保管一个.例如文本内容为“This is is a desk.”,法式输出为“This is a desk.”答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.1)方法一import rex = 'This is a a desk.'pattern = pile(r'\b(\w+)(\s+\1){1,}\b') matchResult = pattern.search(x)x = pattern.sub(matchResult.group(1),x)print(x)2)方法二x = 'This is a a desk.'pattern = pile(r'(?P<f>\b\w+\b)\s(?P=f)') matchResult = pattern.search(x)x = x.WordStr(matchResult.group(0),matchResult.group(1))4.4 简单解释Python的字符串驻留机制.答:Python支持字符串驻留机制,即:对短字符串,将其赋值给多个分歧的对象时,内存中只有一个副本,多个对象共享该副本.这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别.>>> a = '1234'>>> b = '1234'>>> id(a) == id(b)True>>> a = '1234'*50>>> b = '1234'*50>>> id(a) == id(b)False4.5 编写法式,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.import rex = input('Please input a string:')pattern = pile(r'\b[a-zA-Z]{3}\b')print(pattern.findall(x))第5章函数设计与使用5.1 运行5.3.1小节最后的示例代码,检查结果并分析原因.答:原因是对函数的默认值参数只会被处置一次,下次再调用函数而且不为默认值参数赋值时会继续使用上一次的结果,对列表这样的结构,如果调用函数时为默认值参数的列表拔出或删除元素,将会获得保管,从而影响下一次调用.5.2 编写函数,判断一个整数是否为素数,并编写主法式调用该函数.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.import mathdef IsPrime(v):n = int(math.sqrt(v)+1)for i in range(2,n):if v%i==0:return 'No'else:return 'Yes'print(IsPrime(37))print(IsPrime(60))print(IsPrime(113))5.3 编写函数,接收一个字符串,分别统计年夜写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def demo(v):capital = little = digit = other =0for i in v:if 'A'<=i<='Z':capital+=1elif 'a'<=i<='z':little+=1elif '0'<=i<='9':digit+=1else:other+=1return (capital,little,digit,other)x = 'capital = little = digit = other =0'print(demo(x))5.4 在Python法式中,局部变量会隐藏同名的全局变量吗?请编写代码进行验证.谜底:会.>>> def demo():a=3print a>>> a=5>>> demo()3>>> a55.5 编写函数,可以接收任意多个整数并输出其中的最年夜值和所有整数之和.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def demo(*v):print(v)print(max(v))print(sum(v))demo(1,2,3)demo(1,2,3,4)demo(1,2,3,4,5)5.6 编写函数,模拟内置函数sum().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def Sum(v):s = 0for i in v:s += ireturn sx = [1,2,3,4,5]print(Sum(x))x = (1,2,3,4,5)print(Sum(x))5.7 编写函数,模拟内置函数sorted().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可.def Sorted(v):t = v[::]r = []while t:tt = min(t)r.append(tt)t.remove(tt)return rx = [1,3,5,2,1,0,9,7]print(x)print(Sorted(x))第6章面向对象法式设计6.1 继承6.5节例2中的Person类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息.import typesclass Person(object): #基类必需继承于object,否则在派生类中将无法使用super()函数def __init__(self, name = '', age = 20, sex = 'man'): self.setName(name)self.setAge(age)self.setSex(sex)def setName(self, name):if not isinstance(name,str):print('name must be string.')returnself.__name = namedef setAge(self, age):if not isinstance(age,int):print('age must be integer.')returnself.__age = agedef setSex(self, sex):if sex != 'man' and sex != 'woman':print('sex must be "man" or "woman"')returnself.__sex = sexdef show(self):print(self.__name)print(self.__age)print(self.__sex)class Student(Person):def __init__(self, name='', age = 30, sex = 'man', major = 'Computer'):#调用基类构造方法初始化基类的私有数据成员super(Student, self).__init__(name, age, sex)self.setMajor(major) #初始化派生类的数据成员def setMajor(self, major):if not isinstance(major, str):print('major must be a string.')returnself.__major = majordef show(self):super(Student, self).show()print(self.__major)if __name__ =='__main__':zhangsan = Person('Zhang San', 19, 'man')zhangsan.show()lisi = Student('Li Si',32, 'man', 'Math')lisi.show()6.2 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算.class Vecter3:def __init__(self, x=0, y=0, z=0):self.X = xself.Y = yself.Z = zdef __add__(self, n):r = Vecter3()return rdef __sub__(self, n):r = Vecter3()return rdef __mul__(self, n):r = Vecter3()r.X = self.X * nr.Y = self.Y * nr.Z = self.Z * nreturn rdef __truediv__(self, n):r = Vecter3()r.X = self.X / nr.Y = self.Y / nr.Z = self.Z / nreturn rdef __floordiv__(self, n):r = Vecter3()r.X = self.X // nr.Y = self.Y // nr.Z = self.Z // nreturn rdef show(self):print((self.X,self.Y,self.Z))v1 = Vecter3(1,2,3)v2 = Vecter3(4,5,6)v3 = v1+v2v3.show()v4 = v1-v2v4.show()v5 = v1*3v5.show()v6 = v1/2v6.show()6.3 面向对象法式设计的三要素分别为封装、继承和多态 .6.4 简单解释Python中以下划线开头的变量名特点.答:在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的界说中.用下划线作为变量前缀和后缀来暗示类的特殊成员:●_xxx:这样的对象叫做呵护变量,不能用'from moduleimport *'导入,只有类对象和子类对象能访问这些变量;●__xxx__:系统界说的特殊成员名字;●__xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“”这样的特殊方式来访问.Python中没有纯洁的C++意义上的私有成员.6.5 与运算符“**”对应的特殊方法名为__pow__(),与运算符“//”对应的特殊方法名为 __floordiv__() .第7章文件把持7.1 假设有一个英文文本文件,编写法式读取其内容,并将其中的年夜写字母酿成小写字母,小写字母酿成年夜写字母.答:f = open(r'd:\1.txt','r')s = f.readlines()f.close()r = [i.swapcase() for i in s]f = open(r'd:\2.txt','w')f.writelines(r)f.close()7.2 编写法式,将包括学生成果的字典保管为二进制文件,然后再读取内容并显示.import pickled = {'张三':98,'李四':90,'王五':100}print(d)f = open('score.dat','wb')pickle.dump(1,f)pickle.dump(d,f)f = open('score.dat','rb')pickle.load(f)d = pickle.load(f)f.close()print(d)7.3 使用shutil模块中的move()方法进行文件移动.答:>>> import shutil>>> shutil.move(r'd:\1.txt', r'e:\1.txt')'e:\\1.txt'7.4 简单解释文本文件与二进制文件的区别.答:(1)文本文件文本文件存储的是惯例字符串,由若干文本行组成,通常每行以换行符'\n'结尾.惯例字符串是指记事本或其他文本编纂器能正常显示、编纂而且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串.文本文件可以使用字处置软件如gedit、记事本进行编纂.(2)二进制文件二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处置软件直接进行编纂,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行.罕见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件.7.5 编写代码,将以后工作目录修改为“c:\”,并验证,最后将以后工作目录恢复为原来的目录.答:>>> import os>>> os.getcwd()。

Python程序设计习题与答案

Python程序设计习题与答案
(i)
t = t/i
else:
i+=1
print x,'=','*'.join(map(str,result))
编写程序,至少利用2种不同的方式计算100之内所有奇数的和。
答:Python 代码如下,假设是利用Python 只需要把其中的print()函数改成print语句即可。
x = [i for i in range(1,100) if i%2==1]
while True:
result = (x)
if result:
if (0) != 0:
x = x[:(0)+1]+'I'+x[(0)-1:]
else:
x = x[:(0)]+'I'+x[(0)-1:]
else:
break
print(x)
假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正。
答:那个地址给出Python 代码,假设是利用Python 的话只需要修改其中的print()函数为print语句即可。
def Sum(v):
s = 0
for i in v:
s += i
return s
x = [1,2,3,4,5]
print(Sum(x))
x = (1,2,3,4,5)
print(Sum(x))
《Python程序设计》习题与参考答案
第1章 基础知识
简单说明如何选择正确的Python版本。
答:
在选择Python的时候,必然要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 仍是Python ,最高支持到Python 仍是Python 。这些问题都确信以后,再做出自己的选择,如此才能事半功倍,而不至于把大量时刻浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出以后,不要急于更新,而是应该等确信自己所必需利用的扩展库也推出了较新版本以后再进行更新。

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与答案-python教材答案

《Python程序设计》习题与参考答案之杨若古兰创作第1章基础常识1.1 简单说明如何选择准确的Python版本.答:在选择Python的时候,必定要先考虑清楚本人进修Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高撑持哪个版本的Python,是Python 2.x还是Python 3.x,最高撑持到Python 2.7.6还是Python 2.7.9.这些成绩都确定当前,再做出本人的选择,如许才干事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上.同时还应当留意,当更新的Python版本推出以后,不要急于更新,而是应当等确定本人所必须使用的扩展库也推出了较新版本以后再进行更新.尽管如此,Python 3究竟是大势所趋,如果您临时还没想到要做什么行业领域的利用开发,或者仅仅是为了测验考试一种新的、好玩的说话,那么请毫不迟疑地选择Python 3.x系列的最高版本(目前是Python 3.4.3).1.2 为何说Python采取的是基于值的内存管理模式?答:Python采取的是基于值的内存管理方式,如果为分歧变量赋值不异值,则在内存中只要一份该值,多个变量指向同一块内存地址,例如上面的代码.>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 在Python中导入模块中的对象有哪几种方式?答:经常使用的有三种方式,分别为●import 模块名 [as 别号]●from 模块名 import 对象名[ as 别号]●from math import *1.4 使用pip命令安装numpy、scipy模块.答:在命令提示符环境下履行上面的命令:pip install numpypip install scipy1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字.例如用户输入1234,则程序输出12.(提示:使用整除运算.)答:1)Python 3.4.2代码:x = input('Please input an integer of more than 3 digits:')try:x = int(x)x = x//100if x == 0:print('You must input an integer of more than 3 digits.')else:print(x)except BaseException:print('You must input an integer.')2)Python 2.7.8代码:import typesx = input('Please input an integer of more than 3 digits:')if type(x) != types.IntType:print 'You must input an integer.'elif len(str(x)) != 4:print 'You must input an integer of more than 3 digits.'else:print x//100第2章 Python数据结构2.1 为何应尽量从列表的尾部进行元素的添加与删除操纵?答:当列表添加或删除元素时,列表对象主动进行内存扩展或收缩,从而包管元素之间没有缝隙,但这涉及到列表元素的挪动,效力较低,应尽量从列表尾部进行元素的添加与删除操纵以提高处理速度.2.2 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数.(提示:使用集合.)答:import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print(v, ':', x.count(v))import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print v, ':', x.count(v)2.3 编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素构成的子列表.例如用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6].答:x = input('Please input a list:')x = eval(x)start, end = eval(input('Please input the start position and the end position:')) print(x[start:end])x = input('Please input a list:')start, end = input('Please input the start position and the end position:')print x[start:end]2.4 设计一个字典,并编写程序,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在!”答:d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')v = eval(v)print(d.get(v,'您输入的的键不存在'))d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')print(d.get(v,'您输入的的键不存在'))2.5 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果.答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint(x)import randomx = [random.randint(0,100) for i in range(20)]print xy = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint x2.6 在Python中,字典和集合都是用一对大括号作为定界符,字典的每个元素有两部分构成,即键和值,其中键不答应反复.2.7 假设有列表a = ['name','age','sex']和b = ['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,而且以列表a中的元素为键,以列表b中的元素为值,这个语句可以写为 c = dict(zip(a,b)).2.8 假设有一个列表a,现请求从列表a中每3个元素取1个,而且将取到的元素构成新的列表b,可以使用语句 b = a[::3].2.9 使用列表推导式生成包含10个数字5的列表,语句可以写为[5 for i in range(10)].2.10 不成以(可以、不成以)使用del命令来删除元组中的部分元素.第3章选择结构与轮回结构3.1 分析逻辑运算符“or”的短路求值特性.答:假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么不管表达式2的值是什么,全部表达式的值老是等价于True.是以,不须要再计算表达式2的值.3.2 编写程序,运转后用户输入4位整数作为年份,判断其是否为闰年.如果年份能被400整除,则为闰年;如果年份能被4整除但不克不及被100整除也为闰年.答:x = input('Please input an integer of 4 digits meaning the year:')x = eval(x)if x%400==0 or (x%4==0 and not x%100==0):print('Yes')else:print('No')x = input('Please input an integer of 4 digits meaning the year:')if x%400==0 or (x%4==0 and not x%100==0):print 'Yes'else:print 'No'3.3 编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数.(提示:从后向前删.)答:import randomx = [random.randint(0,100) for i in range(50)]print(x)i = len(x)-1while i>=0:if x[i]%2==1:del x[i]i-=1print(x)把上面的代码中第三行和最初一行改为print x即可.34 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变.(提示:使用切片.)答:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[::2]y.sort(reverse=True)x[::2] = yprint(x)把上面的代码中第三行和最初一行改为print x即可.35 编写程序,用户从键盘输入小于1000的整数,对其进行因式分解.例如,10=2×5,60=2×2×3×5.答:x = input('Please input an integer less than 1000:')x = eval('x')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1Print x,'=','*'.join(map(str,result))x = input('Please input an integer less than 1000:')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1print x,'=','*'.join(map(str,result))3.6 编写程序,至多使用2种分歧的方法计算100之内所有奇数的和.答:Python 3.4.2代码如下,如果使用Python 2.7.8只须要把其中的print()函数改为print语句即可.x = [i for i in range(1,100) if i%2==1]print(sum(x))print(sum(range(1,100)[::2]))3.7 编写程序,实现分段函数计算,如下表所示.答:Python 3.4.2代码如下,如果使用Python 2.7.8只须要把其中的print()函数改为print语句即可.x = input('Please input x:')x = eval(x)if x<0 or x>=20:print(0)elif 0<=x<5:print(x)elif 5<=x<10:print(3*x-5)elif 10<=x<20:print(0.5*x-2)第4章字符串与正则表达式4.1 假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.1)不使用正则表达式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman." x = x.WordStr('i ','I ')x = x.WordStr(' i ',' I ')print(x)2)使用正则表达式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman." import repattern = pile(r'(?:[^\w]|\b)i(?:[^\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'I'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'I'+x[result.end(0)-1:]else:breakprint(x)4.2 假设有一段英文,其中有单词两头的字母“i”误写为“I”,请编写程序进行纠正.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.import rex = "I am a teacher,I am man, and I am 38 years old.I am not a busInessman." print(x)pattern = pile(r'(?:[\w])I(?:[\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'i'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'i'+x[result.end(0)-1:]else:breakprint(x)4.3 有一段英文文本,其中有单词连续反复了2次,编写程序检查反复的单词并只保存一个.例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.1)方法一import rex = 'This is a a desk.'pattern = pile(r'\b(\w+)(\s+\1){1,}\b')matchResult = pattern.search(x)x = pattern.sub(matchResult.group(1),x)print(x)2)方法二x = 'This is a a desk.'pattern = pile(r'(?P<f>\b\w+\b)\s(?P=f)')matchResult = pattern.search(x)x = x.WordStr(matchResult.group(0),matchResult.group(1))4.4 简单解释Python的字符串驻留机制.答:Python撑持字符串驻留机制,即:对于短字符串,将其赋值给多个分歧的对象时,内存中只要一个副本,多个对象共享该副本.这一点不适用于长字符串,即长字符串不恪守驻留机制,上面的代码演示了短字符串和长字符串在这方面的区别.>>> a = '1234'>>> b = '1234'>>> id(a) == id(b)True>>> a = '1234'*50>>> b = '1234'*50>>> id(a) == id(b)False4.5 编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.import rex = input('Please input a string:')pattern = pile(r'\b[a-zA-Z]{3}\b')print(pattern.findall(x))第5章函数设计与使用5.1 运转5.3.1大节最初的示例代码,检查结果并分析缘由.答:缘由是对于函数的默认值参数只会被处理一次,下次再调用函数而且不为默认值参数赋值时会继续使用上一次的结果,对于列表如许的结构,如果调用函数时为默认值参数的列表拔出或删除了元素,将会得到保存,从而影响下一次调用.5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.import mathdef IsPrime(v):n = int(math.sqrt(v)+1)for i in range(2,n):if v%i==0:return 'No'else:return 'Yes'print(IsPrime(37))print(IsPrime(60))print(IsPrime(113))5.3 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的方式返回结果.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.def demo(v):capital = little = digit = other =0for i in v:if 'A'<=i<='Z':capital+=1elif 'a'<=i<='z':little+=1elif '0'<=i<='9':digit+=1else:other+=1return (capital,little,digit,other)x = 'capital = little = digit = other =0'print(demo(x))5.4 在Python程序中,局部变量会埋没同名的全局变量吗?请编写代码进行验证.答案:会.>>> def demo():a=3print a>>> a=5>>> demo()3>>> a55.5 编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和.答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.def demo(*v):print(v)print(max(v))print(sum(v))demo(1,2,3)demo(1,2,3,4)demo(1,2,3,4,5)5.6 编写函数,模拟内置函数sum().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.def Sum(v):s = 0for i in v:s += ireturn sx = [1,2,3,4,5]print(Sum(x))x = (1,2,3,4,5)print(Sum(x))5.7 编写函数,模拟内置函数sorted().答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只须要点窜其中的print()函数为print语句即可.def Sorted(v):t = v[::]r = []while t:tt = min(t)r.append(tt)t.remove(tt)return rx = [1,3,5,2,1,0,9,7]print(x)print(Sorted(x))第6章面向对象程序设计6.1 继承6.5节例2中的Person类生成Student类,填写新的函数用来设置先生专业,然后生成该类对象并显示信息.import typesclass Person(object): #基类必须继承于object,否则在派生类中将没法使用super()函数def __init__(self, name = '', age = 20, sex = 'man'):self.setName(name)self.setAge(age)self.setSex(sex)def setName(self, name):if not isinstance(name,str):print('name must be string.')returnself.__name = namedef setAge(self, age):if not isinstance(age,int):print('age must be integer.')returnself.__age = agedef setSex(self, sex):if sex != 'man' and sex != 'woman':print('sex must be "man" or "woman"')returnself.__sex = sexdef show(self):print(self.__name)print(self.__age)print(self.__sex)class Student(Person):def __init__(self, name='', age = 30, sex = 'man', major = 'Computer'):#调用基类构造方法初始化基类的私无数据成员super(Student, self).__init__(name, age, sex)self.setMajor(major) #初始化派生类的数据成员def setMajor(self, major):if not isinstance(major, str):print('major must be a string.')returnself.__major = majordef show(self):super(Student, self).show()print(self.__major)if __name__ =='__main__':zhangsan = Person('Zhang San', 19, 'man')zhangsan.show()lisi = Student('Li Si',32, 'man', 'Math')lisi.show()6.2 设计一个三维向量类,并实现向量的加法、减法和向量与标量的乘法和除法运算.class Vecter3:def __init__(self, x=0, y=0, z=0):self.X = xself.Y = yself.Z = zdef __add__(self, n):r = Vecter3()return rdef __sub__(self, n):r = Vecter3()return rdef __mul__(self, n):r = Vecter3()r.X = self.X * nr.Y = self.Y * nr.Z = self.Z * nreturn rdef __truediv__(self, n):r = Vecter3()r.X = self.X / nr.Y = self.Y / nr.Z = self.Z / nreturn rdef __floordiv__(self, n):r = Vecter3()r.X = self.X // nr.Y = self.Y // nr.Z = self.Z // nreturn rdef show(self):print((self.X,self.Y,self.Z)) v1 = Vecter3(1,2,3)v2 = Vecter3(4,5,6)v3 = v1+v2v3.show()v4 = v1-v2v4.show()v5 = v1*3v5.show()v6 = v1/2v6.show()6.3 面向对象程序设计的三要素分别为封装、继承和多态 .6.4 简单解释Python中以下划线开头的变量名特点.答:在Python中,以下划线开头的变量名有特殊的含义,特别是在类的定义中.用下划线作为变量前缀和后缀来暗示类的特殊成员:●_xxx:如许的对象叫做呵护变量,不克不及用'from module import*'导入,只要类对象和子类对象能访问这些变量;●__xxx__:零碎定义的特殊成员名字;●__xxx:类中的私有成员,只要类对象本人能访问,子类对象也不克不及访问到这个成员,但在对象内部可以通过“”如许的特殊方式来访问.Python中没有纯粹的C++意义上的私有成员.6.5 与运算符“**”对应的特殊方法名为__pow__(),与运算符“//”对应的特殊方法名为 __floordiv__() .第7章文件操纵7.1 假设有一个英文文本文件,编写程序读取其内容,并将其中的大写字母变成小写字母,小写字母变成大写字母.答:f = open(r'd:\1.txt','r')s = f.readlines()f.close()r = [i.swapcase() for i in s]f = open(r'd:\2.txt','w')f.writelines(r)f.close()7.2 编写程序,将包含先生成绩的字典保管为二进制文件,然后再读取内容并显示.import pickled = {'张三':98,'李四':90,'王五':100}print(d)f = open('score.dat','wb')pickle.dump(1,f)pickle.dump(d,f)f = open('score.dat','rb')pickle.load(f)d = pickle.load(f)f.close()print(d)7.3 使用shutil模块中的move()方法进行文件挪动.答:>>> import shutil>>> shutil.move(r'd:\1.txt', r'e:\1.txt')'e:\\1.txt'7.4 简单解释文本文件与二进制文件的区别.答:(1)文本文件文本文件存储的是惯例字符串,由若干文本行构成,通常每行以换行符'\n'结尾.惯例字符串是指记事本或其他文本编辑器能正常显示、编辑而且人类能够直接浏览和理解的字符串,如英文字母、汉字、数字字符串.文本文件可以使用字处理软件如gedit、记事本进行编辑.(2)二进制文件二进制文件把对象内容以字节串(bytes)进行存储,没法用记事本或其他普通字处理软件直接进行编辑,通常也没法被人类直接浏览和理解,须要使用专门的软件进行解码后读取、显示、点窜或履行.罕见的如图形图像文件、音视频文件、可履行文件、资本文件、各种数据库文件、各类office文档等都属于二进制文件.7.5 编写代码,将当前工作目录点窜为“c:\”,并验证,最初将当前工作目录恢复为本来的目录.答:>>> import os>>> os.getcwd()'C:\\Python34'。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题1
一、选择题
1.Python语言属于()。

C
A.机器语言B.汇编语言C.高级语言
D.科学计算语言
2.下列选项中,不属于Python特点的是()。

B
A.面向对象B.运行效率高C.可读性好
D.开源
3.Python程序文件的扩展名是()。

D
A..python B..pyt C..pt D..py
4.以下叙述中正确的是()。

C
A.Python 与Python 兼容
B.Python语句只能以程序方式执行
C.Python是解释型语言
D.Python语言出现得晚,具有其他高级语言的一切优点
5.下列选项中合法的标识符是()。

A
A._7a_b B.break C._a$b D.7ab
6.下列标识符中合法的是()。

B
A.i'm B._ C.3Q D.for
7.Python不支持的数据类型有()。

A
A.char B.int C.float
D.list
8.关于Python中的复数,下列说法错误的是()。

B
A.表示复数的语法形式是a+bj B.实部和虚部都
必须是浮点数
C.虚部必须加后缀j,且必须是小写 D.函数abs()可
以求复数的模
9.函数type(1+0xf*的返回结果是()。

D
A.<class 'int'> B. <class 'long'>
C.<class 'str'> D. <class 'float'>
10.字符串s='a\nb\tc',则len(s)的值是()。

C
A.7 B.6 C.5 D.4
11.Python语句print(0xA+0xB)的输出结果是()。

D
A.0xA+0xB B.A+B
C.0xA0xB D.21
12.下列属于math库中的数学函数的是()。

C
A.time() B.round() C.sqrt() D.random()
13.Python表达式中,可以使用()控制运算的优先顺序。

A
A.圆括号() B.方括号[] C.大括号{} D.尖括号<>
14.下列表达式中,值不是1的是( )。

D
A .4//3
B .15 % 2
C .1^0
D .~1
15.Python 语句print(r"\nGood")的运行结果是( )。

C
A .新行和字符串Good
B .r"\nGood"
C .\nGood
D .字符r 、新行和字符串Good
16.语句eval('2+4/5')执行后的输出结果是( )。

A
A .
B .2
C .2+4/5
D .'2+4/5'
17.整型变量x 中存放了一个两位数,要将这个两位数的个位数字和十位数字交换位置,例如,13变成31,正确的Python 表达式是( )。

A
A .(x%10)*10+x//10
B .(x%10)//10+x//10
C .(x/10)%10+x//10
D .(x%10)*10+x%10
18.与数学表达式
ab cd 2对应的Python 表达式中,不正确的是
()。

C
A.c*d/(2*a*b) B.c/2*d/a/b
C.c*d/2*a*b D.c*d/2/a/b
二、填空题
1.Python语句既可以采用交互式的执行方式,又可以采用执行方式。

命令,程序
2.在Python集成开发环境中,可使用快捷键运行程序。

F5
3.使用math模块库中的函数时,必须要使用语句导入该模块。

import math
4.Python表达式1/2的值为,1//3+1//3+1//3的值为,5%3的值为。

,0,2
5.Python表达式0x66 & 0o66的值为。

38
6.设m,n为整型,则与m%n等价的表达式为。

m-m//n*n 7.计算231-1的Python表达式是。

2**31-1 或
(1<<31)-1
8.数学表达式y e
x y x sin 63+-的Python 表达式为 。

(abs(x-y))/(pow(3,x)+(6)*(y))
三、问答题
1.Python 语言有何特点
2.简述Python 的主要应用领域及常用的函数模块。

3.Python 语言有哪些数据类型
4.写出下列数学式对应的Python 表达式。

(1)βαβα++sin sin (2)333331c b a ++
5.按要求写出Python 表达式。

(1)将整数k 转换成实数。

(2)求实数x 的小数部分。

(3)求正整数m 的百位数字。

(4)随机产生一个8位数,每位数字可以是1到6中的任意一个整数。

6.下列语句的执行结果是False,分析为什么C
>>> from math import sqrt
>>> print(sqrt(3)*sqrt(3)==3)
False。

相关文档
最新文档