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)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法式设计》习题与参考谜底之老阳三干创作第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程序设计知到章节答案智慧树2023年山东财经大学

Python程序设计知到章节答案智慧树2023年山东财经大学

Python程序设计知到章节测试答案智慧树2023年最新山东财经大学第一章测试1.Python是一种跨平台、开源、免费的高级编程语言。

参考答案:对2.以下不属于Python的pip工具命令的选项是()参考答案:get3.以下选项对于import描述错误的是( )参考答案:可以使用from jieba import lcut 引入 jieba库4.Python可以将一条长语句分成多行显示的续行符号是参考答案:\5.如果创建了一个Python源文件,可以把它作为一个模块来使用,其不带后缀.py的文件名就是模块名参考答案:对第二章测试1.以下选项,不是Python关键字的选项是()。

参考答案:string2.表达式 eval('500/10') 的结果是()参考答案:null3.表达式 divmod(20,3) 的结果是( )参考答案:(6,2)4.以下选项中不可用作Python标识符的是( )参考答案:3.145.运行 type(abs(-3+4j)),输出的Python数据类型是()参考答案:浮点数类型1.for或者while与else搭配使用时,关于执行else语句块描述正确的是()参考答案:仅循环正常结束后执行2.以下关于程序控制结构描述错误的是()参考答案:在分支语句中,else要与最近的if匹配3.ls = [1,2,3,4,5,6], 以下关于循环结构的描述,错误的是( )参考答案:for i in range(len(ls)) 跟 for i in ls 的循环中,i 的值是一样的4.执行嵌套循环中的一条break语句,可以退出所有循环参考答案:错5.二分支结构的 if else 形式,适合用来控制程序分支参考答案:错1.以下关于字符串类型的操作的描述,错误的是()参考答案:想获取字符串str的长度,用字符串处理函数 str.len()2.ss = list(set("jzzszyj")).sort(),ss的值为()参考答案:null3.字典 d={'Name': 'Kate', 'No': '1001', 'Age': '20'},表达式len(d)的值为参考答案:34.元组变量t=("cat", "dog", "tiger", "human"), t[::-1]的结果是( )参考答案:null5.以下关于字典类型的描述,正确的是()参考答案:字典类型的值可以是任意数据类型的对象1.调用函数时,在实参前面加一个型号*表示序列解包。

最新《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程序设计》习题与答案-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。

《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步调安排》习题与参照问案之阳早格格创做第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()'C:\\Python34'。

《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语⾔程序设计基础(第⼆版)嵩天等课后习题答案第⼀次博⽂ Time:2018年04⽉28⽇ 星期六 11:37 ⼆次补充 2018年05⽉02⽇ 第⼀章 程序设计基本⽅法 P29# 1.1字符串的拼接str1 = input("请输⼊⼀个⼈的名字:")str2 = input("请输⼊⼀个地点:")print("世界这么⼤,{}想去{}看看。

".format(str1,str2))# 1.2整数序列求和n = input("请输⼊⼀个整数N:")sum = 0for i in range(int(n)):#或者调和函数eval(n)print(i,end = ' ')sum = sum + i+1print("1到N求和结果为:",sum)# 1.3 9*9乘法表# 版本⼀for i in range(1,10):for m in range(1,i+1):sum = i*mif m < i:if sum < 10:print(m,'*',i,"= {}".format(sum),end = ' ')else:print(m,'*',i,'=',sum,end = ' ')else:print(m,'*',i,'=',sum)# 版本⼆for i in range(1,10):for j in range(1,i+1):print("{} * {} = {:2}".format(j,i,i*j),end = ' ')print('')for i in range(1,11):tmp *= isum += tmpprint("1+2!+3!+4!+...+10!=",sum)# ---------1.5 猴⼦吃桃问题 ----------------------# # list(range(5,0,-1)) ----- [5, 4, 3, 2, 1]n = 1for i in range(5,0,-1):n = (n+1)*2 #n = (n+1)<<1 左移⼀位乘以2 print(n)# --------1.6 健康⾷谱输出 ------------------------# diet = ['西红柿','⼟⾖','鸡蛋','黄⽠','青菜']for i in range(5):for j in range(5):if (i != j):print(diet[i],diet[j],sep = '炒')# --------1.7 绘制五⾓星 --------------------------# from turtle import *##fillcolor("red")color('red','yellow') #color('线条颜⾊','填充颜⾊') begin_fill()while True:forward(200)right(144)if abs(pos()) < 1:breakend_fill()# ------1.8 太阳花的绘制 --------------------------# from turtle import *color('red','yellow')begin_fill()while True:if abs(pos()) <1:breakend_fill()done()第⼆章 Python程序实例解析# ---------------温度转换程序1.1 P35-------------------------#TempStr = input("请输⼊带有符号的温度值:")if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F)) else:print("输⼊格式错误")# -----------------循环输⼊----------------------------------#TempStr = input("请输⼊带有符号的温度值:")while TempStr[-1] not in ['N','n']:if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F))else:print("输⼊格式错误")TempStr = input("请输⼊带有符号的温度值:")# --------------------------正⽅形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(1,5):t.fd(100)# --------------------------六边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(6):t.fd(100)t.seth(60+60*i)t.done()# --------------------------叠边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(9):t.fd(150)t.seth(80+80*i)t.done()# --------------------------同切圆的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(4):t.circle(50+i*10)t.done()# ----------------------------长度转换------------------## 1⽶ = 39.37英⼨le = input()if le[-1] in ['M','m']:temp = eval(le[0:-1]) * 39.37print("{:.3f}in".format(temp))elif le[-2:] in ['in','IN']:temp = eval(le[0:-2]) / 39.37print("{:.3f}m".format(temp))else:print("输⼊格式错误")# ------------------------多彩蟒蛇的绘制---------------------------------#def drawSnake(r,angle,length):t.seth(-40)for i in range(length):t.pencolor(week[i%8])t.circle(r,angle)t.pencolor(week[(i+1)%8])t.circle(-r,angle)t.circle(r,angle/2)t.fd(40)t.circle(16,180)t.fd(40*2/3)t.setup(650,350)t.penup()t.fd(-250)t.pendown()t.pensize(25)drawSnake(40,80,9)t.done()第三章 基本数据类型 天天向上的⼒量 在⼀年中,如果每天进步》》,那么⼀年下来会进步到多少呢? 在⼀年中,如果每天退步》》,那么⼀年下来会倒退到多少呢?⼀年中每天提升0.001:1.44,⼀年中每天能⼒下降0.001:0.69⼀年中每天提升0.005:6.17,⼀年中每天能⼒下降0.005:0.16⼀年中每天提升0.01:37.78,⼀年中每天能⼒下降0.01:0.03向上5天向下2天的⼒量:4.63。

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程序设计基础习题答案与分析程昱第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程序设计基础习题答案与分析程昱第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.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程序设计课后习题的答案,帮助大家更好地掌握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程序设计教程课后答案

python程序设计教程课后答案题目:Python程序设计教程课后答案导言:Python是一种高级的编程语言,许多初学者在学习Python时常常遇到一些问题,需要参考一些解答的答案。

本篇文章旨在提供Python程序设计教程的课后答案,帮助读者更好地理解和掌握Python编程。

1. Python基础知识(Chapter 1-3)1.1 关键字是什么?列出Python的关键字。

答案:关键字是Python中具有特殊意义的保留字。

Python的关键字包括:and、as、assert、break、class、continue、def、del、elif、else、except、False、finally、for、from、global、if、import、in、is、lambda、None、nonlocal、not、or、pass、raise、return、True、try、while、with、yield等。

1.2 什么是标识符?标识符命名规则是什么?答案:标识符是用来标识变量、函数、类、模块等名字的字符串。

Python的标识符命名规则如下:- 标识符由字母、数字和下划线组成。

- 标识符以字母或下划线开头。

- 标识符区分大小写。

- 不要使用Python的关键字作为标识符。

- 一般使用小写字母来命名变量和函数,类名使用首字母大写的驼峰命名法。

2. 数据类型(Chapter 4-6)2.1 什么是列表?如何创建一个列表?答案:列表是一种有序的集合,其中的元素可以是任意类型的。

可以使用方括号[]来创建一个列表,例如:my_list = [1, 2, "hello", True]2.2 如何向列表添加元素?如何访问和修改列表中的元素?答案:可以使用append()方法向列表末尾添加一个元素,例如:my_list.append(3)。

使用索引来访问和修改列表中的元素,索引从0开始计数。

例如:访问第一个元素可以使用my_list[0],修改第一个元素可以使用my_list[0] = "world"。

《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.是指在运行期间才去做数据类型检查的语言。

  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 3.x与Python 2.x兼容
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*3.14)的返回结果是()。

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 .2.8
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.5,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 表达式为 。

math.exp(abs(x-y))/(pow(3,x)+math.sqrt(6)*math.sin(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。

相关文档
最新文档