python微课版张玉叶课后答案
- 格式:docx
- 大小:13.03 KB
- 文档页数:12
python快速编程⼊门(第2版)课后答案1. Python概述填空题1. 对象2. 可移植性3. Python4. import5. from…import *判断题1. √2. ×3. ×4. √5. √选择题1. C2. D3. C简答题1. Python主要的特点有代码简洁、语法优美、简单易学、开源、可移植、类库丰富、中⽂⽀持等。
2. Python中可以使⽤关键字import导⼊⼀个或多个模块,也可以使⽤from 模块名 import * 导⼊模块中的全部内容。
3. 模块是最基础的代码组织⽅式,每个包含有组织的代码⽚段的.py⽂件都是⼀个模块;包以类似⽬录的机构组织模块⽂件或⼦包;库是⼀个抽象的概念,它是指具有相关功能模块的集合。
编程题省略,代码详见教材。
1. Python基础填空题1. 42. True False3. type4. 浮点5. 1判断题1. ×2. ×选择题1. A2. A3. D4. B5. C简答题1. 根据数据存储形式的不同,Python使⽤不同的数据类型存储不同类型的数据。
数字类型提供了数值的存储,Python中的数字类型⼜包含整型、浮点型、复数类型和布尔类型。
2. 常量名使⽤⼤写的单个单词或由下画线连接的多个单词(如ORDER_LIST_LIMIT);模块名、函数名使⽤⼩写的单个单词或由下画线连接的多个单词(如low_with_under);类名使⽤⼤写字母开头的单个或多个单词(如Cat、CapWorld)。
3. Python运算符是⼀种特殊的符号,主要⽤于实现数值之间的运算。
根据操作数数量的不同,运算符可分为单⽬运算符、双⽬运算符;根据功能的不同,运算符可分为算术运算符、赋值运算符、⽐较运算符、逻辑运算符和成员运算符。
编程题答案:radius = float(input("请输⼊园的半径:"))# 直径diameter = 2 * radius# ⾯积area = 3.14 * radius * radiusprint('园的直径为:', diameter)print('园的⾯积为:', area)答案:frequency = (29.5 - 4 * 3) / 2.5print("还需运送的次数为:",frequency)1. 流程控制填空题1. if2. for ,while3. True4. for5. continue判断题4. ×5. ×选择题1. C2. C3. C4. C5. B简答题1. break语句⽤于结束整个循环;continue的作⽤是⽤来结束本次循环,紧接着执⾏下⼀次的循环。
《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()。
第一节课0. Python 是什么类型的语言?Python是脚本语言脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。
以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java 之类的系统编程语言要简单容易。
也让脚本语言另有一些属于脚本语言的特性:•语法和结构通常比较简单•学习和使用通常比较简单•通常以容易修改程序的“解释”作为运行方式,而不需要“编译”•程序的开发产能优于运行性能一个脚本可以使得本来要用键盘进行的相互式操作自动化。
一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。
主要用来书写这种脚本的语言叫做脚本语言。
很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。
1. IDLE 是什么?IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。
同样的,我们可以利用IDLE这个shell与Python进行互动。
2. print() 的作用是什么?print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell 窗口)。
3. Python 中表示乘法的符号是什么?Python中的乘号是*(星号)。
4. 为什么>>>print('I love ' * 5) 可以正常执行,但>>>print('I love ' + 5) 却报错?在Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,>>>print('I love ' + 5) 才会报错。
Python程序设计与算法基础教程(第⼆版)微课版第三章上机实践答案Python程序设计与算法基础教程(第⼆版)微课版第三章上机实践答案2.Sum =0for i in range(1,101):Sum += iprint("1+2+3+...+100 = ", Sum)3.Sum =0for i in range(10,0,-1):Sum += iprint("10+9+8+...+1 = ", Sum)4.Sum =0for i in range(1,100,2):Sum += iprint("1+3+5+7+...+99 = ", Sum)5.Sum =0for i in range(2,101,2):Sum += iprint("2+4+6+8+...+100 = ", Sum)6.n =0for i in range(2000,3001):if((i %4==0and i %100!=0)or(i %400==0)):print(i, end =' ')n +=1if(n %10==0):print()7.i =1S =0for n in range(1,100):if(n %2!=0):if(i %2==0):n =-(i *2-1)else:n =( i *2-1)i +=1S += nprint("1-3+5-7+9-11+... = ", S)8.S =0for i in range(1,101):n =1.0/ iS += nprint(str.format("1+1/2+1/3+... = {0: .2f}", S))9.打印上三⾓九九乘法表:for a in range(1,10):for b in range(1, a+1):print(str.format("{0:2} * {1:2} = {2:>2}", a, b, a*b), end =' ')print()打印矩形块九九乘法表:for a in range(1,10):for b in range(1,10):print(str.format("{0:>2} * {1:1} = {2:>2}", a, b, a*b), end =' ')print()打印下三⾓九九乘法表:for a in range(1,10):for b in range(1,10):if(b < a):print(end =' ')else:print(str.format("{0:2} * {1:1} = {2:>2}", a, b, a*b), end =' ')print()10.import matha =float(input("请输⼊三⾓形的边a :"))b =float(input("请输⼊三⾓形的边b :"))c =float(input("请输⼊三⾓形的边c :"))if(a >0and b >0and c >0and a + b > c and a + c > b and b + c > a):h =1/2*(a+b+c)print(str.format("三⾓形的三条边分别为:a = {0} b = {1} c = {2}", a, b, c))print(str.format("三⾓形的周长 = {0} ⾯积 = {1}", a+b+c, math.sqrt(h *(h-a)*(h-b)*(h-c)))) else:print("⽆法构成三⾓形!")11.⽅法⼀(单分⽀语句):import mathx =float(input("请输⼊x:"))print("⽅法⼀(单分⽀语句):")if(x >=0):y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)if(x <0):y = math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))⽅法⼆(双分⽀结构):import mathx =float(input("请输⼊x:"))if(x >=0):y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)else:y = math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))⽅法三(条件运算语句):x =float(input("请输⼊x:"))y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)if(x >=0) \else math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))12.import matha =float(input("请输⼊系数a : "))b =float(input("请输⼊系数b : "))c =float(input("请输⼊系数c : "))delt = b**2-4*a*cif(a ==0and b ==0):print("此⽅程⽆解!")elif(a ==0and b !=0):print(str.format("此⽅程的解为:{0: .1f}",-c / b))elif(b**2-4*a*c ==0):print(str.format("此⽅程有两个相等虚根:{0:.1f}",-b /(2*a)))elif(delt >0):print(str.format("此⽅程有两个不等虚根: {0:.1f} 和 {1:.1f}",(-b + math.sqrt(delt))/(2*a),(-b - math.sqrt(delt))/(2*a)))else:#注意根号⾥不是b²-4ac,所以根号⾥加负号print("此⽅程有两个共轭复根: {0} 和 {1}".format(complex(-b /(2*a), math.sqrt(-delt)/(2*a)),complex(-b /(2*a),-math.sqrt(-delt)/(2*a)))) 13.⽅法⼀(for循环):n =int(input("请输⼊⾮负整数n:"))while(n <0):n =int(input("请输⼊⾮负整数n:"))S =1if(n ==0):print("0! = 1")if(n >0):for i in range(n,0,-1):S *= iprint(str.format("{0}! = {1}", n, S))⽅法⼆(while循环):n =int(input("请输⼊⾮负整数n:"))while(n <0):n =int(input("请输⼊⾮负整数n:"))S =1if(n ==0):print("0! = 1")if(n >0):m = nwhile(m !=0):S *= mm -=1print(str.format("{0}! = {1}", n, S))14.a = random.randint(0,100)b = random.randint(0,100)S = a*bprint(str.format("整数1 = {0},整数2 = {1}", a, b))if(a < b):a, b = b, awhile(a%b !=0):a,b = b,a%bprint("最⼤公约数 = {0},最⼩公倍数 = {1}".format(b, S/b))满怀希望就会所向披靡。
python第六章课后编程题1. 对于Python第六章的课后编程题,我们将通过以下几个问题来进行讨论和解答。
问题一:如何在Python中进行字符串的索引和切片操作?在Python中,我们可以使用索引和切片对字符串进行操作。
字符串的索引是从0开始的,我们可以使用方括号[]来获取字符串中特定位置的字符。
例如,对于字符串"Hello World",我们可以通过"Hello World"[0]来获取第一个字符"H"。
字符串的切片操作可以获取字符串的一部分,语法为[start:end]。
其中,start表示起始位置,end表示结束位置(不包含该位置)。
例如,"Hello World"[0:5]将返回"Hello","[6:]"将返回"World"。
问题二:如何将一个字符串反转?要将一个字符串反转,我们可以使用切片的负数索引。
正数索引从左到右,而负数索引则从右到左。
例如,"Hello World"[::-1]将返回"dlroW olleH",即将字符串完全反转。
问题三:如何统计一个字符串中特定字符的出现次数?Python提供了count()函数来统计字符串中特定字符的出现次数。
语法为:字符串.count(字符)。
例如,"Hello World".count("o")将返回2,即统计字符串中字符"o"的出现次数。
问题四:如何将一个字符串按照特定分隔符拆分成多个子串?Python提供了split()函数来按照特定字符或字符串分隔符拆分一个字符串。
语法为:字符串.split(分隔符)。
例如,"Hello World".split(" ")将返回一个包含两个元素的列表,即["Hello", "World"]。
Python语言程序设计_河海大学中国大学mooc课后章节答案期末考试题库2023年1.6C.AH对应的十进制数为:参考答案:108.6252.6C.AH对应的二进制为:参考答案:1101100.101B3.10101.11B对应的8进制为:参考答案:25.6Q4.下列程序的输出结果为( )x=5y=10print(x+3 if x>y else y-3)参考答案:75.写出程序运行结果()c=166b=0a=-120if(a<200 or c>=100):b=b+100print(b)参考答案:1006.程序运行时,若输入66,则输出结果是:i=eval(input())if(i%3==0 andi%11==0): print("yes")else: print("no")参考答案:yes7.c=166b=0a=-120if(a<200 or c>=100): b=b+100 print(b)参考答案:1008.wage=6523 if wage<5000: wage=wage+3000 elif wage<10000:wage=wage+1000 else: wage=wage+100 print(wage)参考答案:75239.对下列语句不符合语法要求的表达式是()for var in__________:print(var)参考答案:6710.以下for语句中,不能完成1~10的累加功能的是()参考答案:for i in range(10,-1,-1):sum+=i11.执行下列程序段后,k的值是()k=1n=263while(n): k*=n % 10n//=10print(k)参考答案:3612.下列程序段,最后一行输出结果是()i=1while i+1: if i>4: print(i) i+=1break print(i) i+=2print(i)参考答案:613.语句x=input()执行时,如果从键盘输入12并按回车键,则x的值是()参考答案:'12'14.语句x,y=eval(input())执行时,输入数据格式错误的是()参考答案:3 415.下列python语句执行的结果是()a,b=3,4a,b=b,aprint(a,b)参考答案:4 316.表达式3&6的值为( )参考答案:217.下列表达式中,值不是1的是()参考答案:~118.已知x=3,语句x*=x+7执行后,x的值是( )参考答案:3019.语句x=eval(input())执行时,若输入:3+8,则x的结果是()参考答案:1120.语句x,y=eval(input())执行时,输入数据格式错误的是()参考答案:67 8921.列表生成式[i for i in range(5) if i%2!=0]的值为( )参考答案:[1,3]22.range(3)得到的序列是()参考答案:0,1,223.写出Python的逻辑表达式 : a加3的值大于b 并且 x大于y参考答案:a+3>b and x>y24.写出Python逻辑表达式: 8<2 and 3 or 2<4 的值参考答案:True25.写出表达式: complex(45,67)的结果参考答案:(45+67j)26.执行语句: x,y=eval("12,67+89"), 后, x和y的值为?参考答案:x=12##%_YZPRLFH_%##y=15627.假设: x=90 , y=234;则: 语句print("x=",x," y=",y,"\n","x+y=",x+y) 的输出结果是 ?参考答案:x=90 y=234##%_YZPRLFH_%##x+y=32428.假设:a=2b=4c=6那么:执行x=a+b*3-c后,x=参考答案:829.假设:a=2b=4c=6那么:执行 y=a>b 后,y=参考答案:False30.假设:a=2b=4c=6那么:执行z=a>band b<6后,z=参考答案:False31.假设:a=2b=4c=6那么:执行d=a<=b and b+1>c后,d=参考答案:False32.假设:a=23;那么:a<<3=参考答案:18433. 1.表达式[1,2,3]+[4,5,6]的结果是( )参考答案:[1,2,3,4,5,6]34. 1.已知列表对象x=[‘11’,’2’,’3’],则表达式max(x,key=len)的值为: ( )说明:key参数,参照sort函数的用法。
6.5实训I6.5.1 实训1【字典】一、实训目的1.掌握字典的声明和使用2.了解字典键的特性3.熟悉字典内置函数与方法的使用4.学会字典的综合应用二、单元练习(-)选择题1.下列哪个函数可以计算字典元素个数—B.A.cmp BJen C.str D.type2. 下列哪个函数可以将字典以字符串表示输出一_C—A.cmp BJen C.str D.type3. 下列哪个函数可以返回输入的变量类型_D_A.cmpB.1enC.strD.type4. 若想删除字典,该使用以下哪个方法?(B )A.popB.de1C.c1earD.Copy5.下列哪项关于字典的说法正确。
(AB)A.键必须唯一,但值则不必。
B.列表是方括号[],元组是圆括号(),字典是花括号{}。
C.字典中的键是有序的。
D.字典的内置函数有dict.c1ear,type(),str(),1en()o(-)填空题1.每个键与值用_冒号一隔开,每对键值对用_逗号—分割,整体放在—花括号—中。
2.字典是无序的,在字典中通过一键一来访问成员。
3.Py1hon有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建函数_diet o4.键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如一字符串—,一元组—或一数字—o5.字典的键不能是类型。
6.描述出以下字典函数或方法的意义:C1ear:删除集合中的所有元素_______________Keyindiet:键在字典中Keys:返回•个字典所有键________________Va1ues:返回一个字典所有值Pop:删除并返回任意的集合元素____________7.假设有列表a=FnameTage丁SeX r I和b=[,Weng',18,'FeMa1e'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为c=dict(zip(a,b))。
Python程序设计课后习题答案通过Python程序设计课后习题的答案,我将为您提供一份详细的文章。
如下所示:Python程序设计课后习题答案Python程序设计是一门广泛应用于计算机科学领域的编程语言。
在学习这门课程时,我们需要通过解答习题来加深对于Python编程的理解。
本文将对一些Python程序设计课后习题进行答案解析,并通过实例代码来帮助读者更好地理解。
一、基础概念和语法1. 编写一个程序,实现计算两个数之和的功能。
```pythonnum1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))# 计算和sum_result = num1 + num2print("两个数的和为:", sum_result)```2. 编写一个程序,实现计算一个数的阶乘。
```pythonnum = int(input("请输入一个正整数:"))factorial = 1# 计算阶乘if num < 0:print("输入的数字必须为正整数!")elif num == 0:print("0的阶乘为1")else:for i in range(1, num + 1):factorial *= iprint(num, "的阶乘为:", factorial)```二、数据结构与算法1. 编写一个程序,实现对列表中元素求和的功能。
```pythonnumbers = [1, 2, 3, 4, 5]sum_result = sum(numbers)print("列表元素的和为:", sum_result)```2. 编写一个程序,实现冒泡排序算法对列表进行排序。
```pythondef bubble_sort(arr):n = len(arr)for i in range(n - 1):for j in range(n - i - 1):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arrnumbers = [4, 2, 1, 5, 3]sorted_numbers = bubble_sort(numbers)print("排序后的列表:", sorted_numbers)```三、文件操作1. 编写一个程序,实现读取文本文件内容并计算文件中单词的个数。
Python课后题答案第1章Python概述一、填空题1.对象2.可移植3.字节码4.UTF-8二、判断题1.对2.对3.对4.对5.错6.错7.对8.错9.对10.错三、选择题1.C2.ABCD3.B4.C5.D四、简答题。
1. Python具有的特点如下:简单易学开源高级语言可移植性解释性面向对象可扩展性丰富的库规范的代码2. Python可以应用在下列领域:web应用开发操作系统管理、服务器运维的自动化脚本 科学计算桌面软件服务器软件(网络软件)游戏构思实现,产品早期原型和迭代3. 和的区别如下:(1)在中,输出数据使用的是print语句。
但是在中, print语句没有了,取而代之的是print()函数(2)python2有ASCII Str()类型,unicode()是单独的,不是byte类型。
在版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。
(3)在python 中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。
(4)相比版本,版本在异常方面有很多改变:在版本,所有类型的对象都是直接被抛出的,但是,在版本中,只有继承自BaseException的对象才可以被抛出。
在版本中,捕获异常的语法是except exc,var。
在版本中,引入了as关键字,捕获异常的语法变更为except exc as var。
在版本中,处理异常使用raise Exception(args)。
在版本中,处理异常使用raiseException,args。
取消了异常类的序列行为和.message属性。
(5)在Python 中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。
(6)Python 中不等于有两种写法 != 和 <>;但是,Python 中去掉了<>, 只有!=一种写法(7)去除了long类型,现在只有一种整型int,但它的行为就像是版本的long。
python微课版张玉叶课后答案一、单选题(共30题,每题2分,共60分)1. 关于Python的编程环境,下列的哪个表述是正确的? [单选题] *A、Python的编程环境是图形化的;B、Python只有一种编程环境ipython;C、Python自带的编程环境是IDLE;(正确答案)D、用windows自带的文本编辑器也可以给Python编程?,并且也可以在该编辑器下运行;下列的哪个软件不可以编辑Python程序?( ) [单选题] *A、ipythonB、VisualStudioCodeC、JupyterNotebookD、scratch标准版(正确答案)3. 100/4+2*3运行结果是()。
[单选题] *A、10B、81C、31(正确答案)D、50下面的哪一个命令不是画笔控制的命令( )。
[单选题] *A、turtle.penup();B、turtle.pendown();C、turtle.pensize();D、turtle.screensize();(正确答案)turtle的前进是往哪个方向?( ) [单选题] *A、屏幕窗口的右边(正确答案)B、屏幕窗口的左边C、屏幕窗口的上边D、屏幕窗口的下边Python中的==代表的是( )。
[单选题] *A、把左边的值赋值给右边;B、把右边的值赋值给左边;C、比较左右两边是否相等;(正确答案)D、左右两边值进行交换;下面哪一行代码的输出结果不是Python3.7( )。
[单选题] *A、print(“Python3.7”)B、print(“Python”+3.7)(正确答案)C、print(“Python”+str(3.7))D、print(“Python”+“3.7”)假设a=30,b=10,c=a*b-5,那么c的值是( )。
[单选题] *A、150B、295(正确答案)C、300D、25下面哪一段代码是海龟①走到指定坐标然后②左转90度?( ) [单选题] * A、turtle.goto(90,0)(正确答案)turtle.left(90)B、turtle.left(90)turtle.goto(90,0)C、turtle.goto(90,0)turtle.right(90)D、turtle.right(90)turtle.goto(90,0)10. turtle.speed()命令设定笔运动的速度,其参数范围是( )。
[单选题] *A、0——10的整数(正确答案)B、1——10的整数C、0——100的整数D、1——100的整数11. print(35-10)输出的结果是( )。
[单选题] *A、35-10B、35C、10D、25(正确答案)a="python2",b="python3",c=a+b,print(c)的结果是( )。
[单选题] *A、a+bB、python5C、cD、python2python3(正确答案)下面的运算符中,按照运算优先级哪一个是最高级?( ) [单选题] *A、and (or not )B、*(正确答案)C、+D、-E、**turtle.clear()命令的作用是( )。
[单选题] *A、清空turtle窗口,但是turtle的位置和状态不会改变;(正确答案)B、清空turtle窗口,turtle的位置和状态会初始化;C、清空turtle中的变量,但是turtle的位置和状态不会改变;D、清空turtle中的变量,turtle的位置和状态会初始化;python中的乘法是用哪个符号表示的?( ) [单选题] *A、*(正确答案)B、xC、/D、#turtle.circle(120,180)是绘制一个什么样的图形?( )。
[单选题] *A、半径为180的扇形B、半径为120的半圆(正确答案)C、半径为120的圆形D、半径为180的圆形下面print语句,哪一个是正确的用法?( ) [单选题] *A、print”(hello!)”B、print(”hello!”)(正确答案)C、print(”hello!')D、print(”hello”!)a=10,b=20,那么b!=a运算的结果是( )。
[单选题] *A、2B、True(正确答案)C、FalseD、0.5假设a=10,b=30,那么b/a的值是( )。
[单选题] *A、300B、20C、3.0(正确答案)D、0.333333关于变量的说法,错误的是( )。
[单选题] *A、变量必须要命名;B、变量第一次赋值1,第二次赋值为4,那么最后变量的值为4;C、变量只能用来存储数字,不能表示存储文字;(正确答案)D、在同一个程序里,变量名不能重复;将1、2、3三个数不重复的排列为三位数,有( )种排列。
[单选题] *A、6(正确答案)B、4C、2D、10假设a=0,b=10,那么a and b的结果是( )。
[单选题] *A、1B、10C、11D、0(正确答案)下面哪个符号是Python用来给代码做注释的?( ) [单选题] *A、#(正确答案)B、()C、:D、/turtle.setup()命令中坐标的起始点是( )。
[单选题] *A、屏幕桌面的左上角;B、屏幕桌面的右上角;C、屏幕桌面的正中间;(正确答案)D、屏幕桌面的最上方正中间;print的作用是什么?( ) [单选题] *A、在屏幕上打印出来相应的文本或者数字等;(正确答案)B、在打印机里打印相关文本或者数字等;C、可以用来画图;D、输出一个命令行print(3 and 4 or “ab”)的结果是 [单选题] *A、FalseB、abC、3D、4(正确答案)下面哪一个不是Python的保留字?( ) [单选题] *A、classB、ifC、abc(正确答案)D、or下面的哪一个命令是将数值转换为字符串?( ) [单选题] *A、print()B、text()C、int()D、str()(正确答案)两组围棋选手进行比赛,每组三人。
甲组为a,b,c三人,乙组为x,y,z三人。
已抽签决定比赛名单。
a说他不和x比,c说他不和x,z比,请问b和( )进行比赛:[单选题] *A、x(正确答案)B、yC、zD、cturtle.color("red","yellow")命令中定义的颜色分别为( )。
[单选题] *A、背景为红色,画笔为黄色;B、背景为黄色,画笔为红色;C、画笔为红色,填充为黄色;(正确答案)D、画笔为黄色,填充为红色;二、判断题(共20题,每题2分,共40分)31. a=10;b=10;a==b运行结果是0。
[判断题] *对错(正确答案)32. c += 1 和 c = c + 1 是一样的。
[判断题] *对(正确答案)错33. 按照大小顺序排列X、Y、Z三个数有多种方法,可以先找到中间数,然后和其他两个数字做比较,最后再排序。
[判断题] *对(正确答案)错34. is是python的保留字。
[判断题] *对(正确答案)错35. 在Turtle库中turtle.screensize()可以设置画布大小,其默认大小为(400,300)。
[判断题] *对(正确答案)错36. input()语句是用来输入一个指令。
[判断题] *对错(正确答案)37. 九九乘法口诀表中,不重复的口诀有81种。
[判断题] *对错(正确答案)38. 11/2的运算结果是5.5。
[判断题] *对(正确答案)错39. Turtle库主要是用来进行绘图的库。
[判断题] *对(正确答案)错40. 在Python中变量名只能包含字母、数字和下划线。
且不能以数字开头。
[判断题] *对(正确答案)错41. 字符串不可以转化为数值。
[判断题] *对错(正确答案)42. 在Python编程中使用成对的三个英文引号'''是不可以的。
[判断题] *对错(正确答案)43. 使用Turtle库之前可以使用import turtle导入库文件。
[判断题] *对(正确答案)错44. 在编程环境中,>>>代表进入了逐行运行的命令行模式。
[判断题] *对(正确答案)错45. 程序:a=b中,a是变量,b是值。
[判断题] *对(正确答案)错46. 11 or 2的运算结果是11。
[判断题] *对(正确答案)错47. 变量名可以随便命名。
[判断题] *对错(正确答案)48. IDLE默认的文件保存名后缀为.idle。
[判断题] *对错(正确答案)49. turtle.circle(50,steps=3)命令可以画三个圆。
[判断题] *对错(正确答案)50. print("*"*10)可以输出10个*。
[判断题] *对(正确答案)错三、编程题(每题10分)编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。
(1) 程序提示用户输入三个数字,数字分别表示语文、数学、英语分数,对应的变量名称是Chinese、Math、English,并计算三个分数的和(score)进行输出。
注:input()函数中分别添加“数学:”,“语文:”,“英语:”,如input(“语文:”)。
(2)270分以上“优秀”,240以上“良好”,180以上“合格”例:输入:语文:90数学:90英语:90输出:270优秀 [填空题] *_________________________________打印输出九九乘法表 [填空题] *_________________________________。