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.Python2.x和Python3.x的区别如下:(1)在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数(2)python2有ASCIIStr()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。(3)在python2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python3.x中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。(4)相比python2.x版本,python3.x版本在异常方面有很多改变:在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。在python2.x版本中,捕获异常的语法是exceptexc,var。在python3.x版本中,引入了as关键字,捕获异常的语法变更为exceptexcasvar。在python2.x版本中,处理异常使用raiseException(args)。在python3.x版本中,处理异常使用raiseException,args。python3.x取消了异常类的序列行为和.message属性。(5)在Python3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。(6)Python2.x中不等于有两种写法!=和;但是,Python3.x中去掉了,只有!=一种写法(7)python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。4.Python程序的执行原理如图所示。python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行5.IPython的特点如下:IPython具有卓越的Pythonshell,其性能远远优于标准Python的shell。IPython支持变量自动补全,自动缩进,支持bashshell命令,内置了许多很有用的功能和函数。IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交互式Pythonshell包含在各种Python应用中,甚至可以当作系统级shell来使用。五、编程题。1.代码如下:print(+++++++++++)print(++)print(+++++++++++)2.代码如下:print(学Python,来传智播客黑马程序员)print(学Python,来传智播客黑马程序员)print(学Python,来传智播客黑马程序员)print(学Python,来传智播客黑马程序员)print(学Python,来传智播客黑马程序员)第2章Python基本语法一、填空题1.int2.TrueFalse3.84.1.2e55.000000106.0b101007.type()8.19.2010.4.34×103二、判断题1.对2.错3.对4.对5.错6.错7.对8.对9.对10.对三、选择题1.D2.D3.A4.A5.C6.A7.B8.B9.C10.D四、简答题1.Python中标识符的命名规则如下所示:标示符由字母、下划线和数字组成,且数字不能开头python中的标识符是区分大小写的。python中的标示符不能使用关键字2.简述Python中的数字类型有:int(整型)、long(长整型)、float(浮点数)、complex(复数)五、编程题1.代码如下:importmatha=float(input(请输入斜边1的长度))#输入实数b=float(input(请输入斜边2的长度))#输入实数c=a*a+b*b#计算,得到的是斜边的平方c=sqrt(c)#开方,得到的是斜边长print(斜边长为:,c)#显示,一项是字符串,一项是c表示的斜边长2.代码如下:#用户输入x=input('输入x值:')y=input('输入y值:')#不使用临时变量x,y=y,xprint('交换后x的值为:{}'.format(x))print('交换后y的值为:{}'.format(y))第3章Python常用语句一、填空题1.break2.elif3.continue4.True5.pass二、判断题1.错2.对3.对4.对5.对三、选择题1.C2.C3.C4.C5.D四、简答题1.Pass语句Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。2.break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。五、编程题1.代码如下:foriinrange(1,11):print(i)2.代码如下:a=int(input(请输入一个数:))ifa0:print(a是一个正数)elifa0:print(a是一个负数)else:print(a等于0)3.代码如下:i=1whilei10:j=1whilej=i:print(%d*%d=%-2d%(i,j,i*j),end='')j+=1print(\n)i+=1第4章字符串一、单选题1.A2.D3.B4.C5.C6.B7.A二、判断题1.对2.对3.错4.对5.错6.错7.错三、填空题1.文本2.转义3.input4.切片5.开四、程序分析题1.答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。2.结果为:J3.答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。4.结果为:HelloWorld(默认删除两头的空格)5.结果为:HelloPython五、编程题1.答案:myStr=input(请输入任意字符串:)num=0forsinmyStr:ifs.isdigit():num+=1print(num)2.答案:week=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']whileTrue:myStr=input(请输入任意一个字母:)upMyStr=myStr.upper()forweekSinweek:ifupMyStr==weekS[0]:ifweekS.startswith(M):print(星期一)elifweekS.startswith(W):print(星期三)elifweekS.startswith(F):print(星期五)elifweekS.startswith(T)orweekS.startswith(S):secondStr=input(请再输入任意一个字母:)newStr=upMyStr+secondStrprint(newStr)forweekStrinweek:ifweekStr.find(newStr,0,2)!=-1:ifnewStr==Tu:print(星期二)elifnewStr==Th:print(星期四)elifnewStr==Sa:print(星期六)elifnewStr==Su:print(星期日)breakbreak3.答案:str=Hello,welcometoitheima!!print(str.count(o))第5章列表、元组和字典一、单选题1.D2.B3.C4.D5.D6.C7.A8.B9.C二、判断题1.对2.对3.对4.对5.错6.错7.错三、填空题1.字典2.字典,列表3.notin4.sort5.小括号四、简答题1.答案:(1)外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据(2)存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。(3)访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。(4)是否可变类型:列表是可变类型,列表是不可变类型,字典是可变类型。五、程序分析题1.答案:程序运行错误,元组不能使用下标增加元素。2.结果为:33.结果为:1,26六、编程题1.答案:defmessage():myStr=input(请输入密码,只能为字母和数字:)ifmyStr.isalnum():print(符合要求)else:print(不符合要求)2.答案:arr=[]evenStr=oddStr=message=input(请输入任意字符串:)forstringinmessage:arr.append(string)foreStrin(arr[::2]):evenStr=evenStr+eStrforoStrin(arr[1::2]):oddStr=oddStr+oStrprint(evenStr+oddStr)3.答案:arr=[]defcount():myStr=input(请输入只包含字母的字符串:)ifmyStr.isalpha():newStr=myStr.lower()forstringinnewStr:arr.append(string)a={}foriinarr:ifarr.count(i)=1:a[i]=arr.count(i)print(a)else:print(输入的内容有误)count()4.答案:arr=[]result=myStr=input(请输入字符串:)forstringinmyStr:arr.append(string)last=arr[-1]arr.remove(last)arr.insert(0,last)fornewinarr:result=result+newprint(result)5.答案:arr=[]length=int(input(请要输入数字的总个数(必须为奇数):))i=0whileilength:num=int(input(输入第%d个数字:%(i+1)))arr.append(num)i+=1arr.sort()index=int(length/2)print(arr[index])6.答案:第一种:arr=[1,2,3,4,5]arr.reverse()print(arr)第二种:arr=[1,2,3,4,5]arr.sort(reverse=True)print(arr)7.答案:arr=[]length=int(input(请输入数字的总个数:))i=0whileilength:num=int(input(输入第%d个数字:%(i+1)))arr.append(num)i+=1print(排序前:%s%arr)#对列表排序foriinrange(length):flag=0forjinrange(1,length):ifarr[j-1]arr[j]:arr[j-1],arr[j]=arr[j],arr[j-1]flag=1ifnotflag:breakprint(排序后:%s%arr)8.答案:arr=[]length=int(input(请输入列表的总个数:))i=0