您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > PYTHON核心编程第二版第2章习题答案
2-1.变量,print和字符串格式化操作符。启动交互式解释器,给一些变量赋值(字符串,数值等)并通过输入变量名显示他们的值。再用print语句做同样的事。这两者有何区别?也尝试着使用字符串格式操作符%,多做几次,慢慢熟悉它。答案:对于一个字符串,在仅使用变量名时,输出的字符串是用单引号括起来了的。这是为了让非字符串对象也能以字符串的方式显示在屏幕上,即它显示的是该对象的字符串表示,而不仅仅是字符串本身。如果使用print命令,能使输出更加友好。2-2.程序输出。阅读下面的Python脚本。#!/usr/bin/envpython1+2*4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果。(e)如何改进这个脚本,以便它能和你想象的一样工作?答案:(a)计算(b)输出9(c)不一样,不会有输出(d)在交互解释器中可以输出9(e)需添加一个print,即#!/usr/bin/envpythonprint1+2*42-3.数值和操作符。启动交互解释器,使用Python对两个数值(任意类型)进行加、减、乘、除运算。然后使用取余操作符来得到两个数相除的余数,最后使用乘方操作符求A数的B次方。答案:当使用x/y形式进行除法运算时,如果x和y都是整形,那么运算的结果就是运算的整数部分。print10/33如果x和y中有一个是浮点数,那么会进行精确除法。print10/3.03.33333333333所谓地板除,采用x//y的形式,得到不大于结果的最大整数值,这个运算时与操作数无关的。1//201.0//20.0-1//2.0-1.02-4.使用raw_input()函数得到用户输入。(a)创建一段脚本使用raw_input()内建函数从用户输入得到一个字符串,然后显示这个用户刚刚键入的字符串。(b)添加一段类似的代码,不过这次输入的是数值。将输入数据转换为一个数值对象,(使用int()或其他数值转换函数)并将这个值显示给用户看(注意,如果你用的是早于1.5的版本,你需要使用string.ato*()函数执行这种转换)。答案:(a)a=raw_input(pleaseinputastring:)pleaseinputastring:helloworldprintahelloworld(b)a=raw_input(pleaseinputanumber:)pleaseinputanumber:123printtype(a)type'str'a=int(raw_input(pleaseinputanumber:))pleaseinputanumber:123printtype(a)type'int'2-5.循环和数字。分别使用while和for创建一个循环。(a)写一个while循环,输出整型为0~10(要确保是0~10,而不是0~9或1~10)。(b)做同(a)一样的事,不过这次使用range()内建函数。答案:(a)i=0whilei11:printi,i+=1012345678910(b)foriinrange(0,11):printi,0123456789102-6.条件判断。判断一个数是正数还是负数,或者是0。开始先用固定的数值,然后修改你的代码支持用户输入数值再进行判断。答案:a=int(raw_input(Pleaseinputanumber:))ifa0:printThenumberisPositive.elifa0:printThenumberisnegative.else:printThenumberisZero.2-7.循环和字串。从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用while循环实现,然后再用for循环实现。for循环a=raw_input(pleaseinputastring:)foriina:printi,while循环a=raw_input(pleaseinputastring:)i=0whileilen(a):printa[i],i=i+12-8.循环和操作符。创建一个包含五个固定数值的列表或元组,输出他们的和。然后修改你的代码为接受用户输入数值。分别使用while和for循环实现。l=[1,2,3,4,5]total=0foriinl:total=total+iprint'Totalis',totall=[1,2,3,4,5]i=0total=0whileilen(l):total=total+l[i]i=i+1print'Totalis',total2-9.循环和操作符。创建一个包含五个固定数值的列表或元组,输出他们的平均值。本练习的难点之一是通过除法得到平均值。你会发现整型除会截去小数,因此你必须使用浮点除以得到更精确的结果。float()内建函数可以帮助你实现这一功能。答案:total=0foriinrange(0,5):print'Pleaseinputnumber%d'%(i+1)a=float(raw_input())total=total+aprint'Theaverageis',total/5---------------------------------------------------i=0total=0whilei5:print'Pleaseinputnumber%d'%(i+1)a=float(raw_input())i=i+1total=total+aprint'Theaverageis',total/52-10.带循环和条件判断的用户输入。使用raw_input()函数来提示用户输入一个1和100之间的数,如果用户输入的数值满足这个条件,显示成功并退出。否则显示一个错误信息然后再次提示用户输入数值,直到满足条件为止。p=Truewhilep:a=int(raw_input(pleaseinputanumberbetween1~100:))ifa=1anda=100:print'Verygood!'p=Falseelse:printPleasetryagain!2-11.带文本菜单的程序。写一个带文本菜单的程序,菜单项如下:(1)取五个数的和;(2)取五个数的平均值...(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍地重新启动你的脚本(这对开发人员测试自己的程序也会大有用处)。defsum():total=0foriinrange(0,5):printPleaseinputnumber%d%(i+1)a=int(raw_input())total=total+aprint'total=',totaldefaverage():total=0foriinrange(0,5):printPleaseinputnumber%d%(i+1)a=int(raw_input())total=total+aprint'average=',total/5print'''Pleaseinput1togetthetotalof5numbersPleaseinput2togettheaverageof5numbersPleaseinputxtoexit'''choice=raw_input()ifchoice=='1':sum()elifchoice=='2':average()elifchoice=='x':pass2-12.dir()内建函数。(a)启动Python交互式解释器。通过直接键入dir()回车以执行dir()内建函数。你看到什么?显示你看到的每一个列表元素的值,记下实际值和你想象的值。(b)你会问,dir()函数是干什么的?我们已经知道在dir后边加上一对括号可以执行dir()内建函数,如果不加括号会如何?试一试。解释器会返回给你什么信息?你认为这个信息表示什么意思?(c)type()内建函数接收任意的Python对象作为参数并返回他们的类型。在解释器中键入type(dir),看看你得到的是什么。(d)本练习的最后一部分,我们来瞧一瞧Python的文档字符串。通过dir.__doc__可以访问dir()内建函数的文档字符串。printdir.__doc__可以显示这个字符串的内容。许多内建函数、方法、模块及模块属性都有相应的文档字符串。我们希望你在你的代码中也要书写文档字符串,它会对使用这些代码的人提供及时方便的帮助。答案:Python2.7.11(v2.7.11:6d1b6a68f775,Dec52015,20:32:19)[MSCv.150032bit(Intel)]onwin32Typecopyright,creditsorlicense()formoreinformation.dir()['__builtins__','__doc__','__name__','__package__']dirbuilt-infunctiondirtype(dir)type'builtin_function_or_method'dir.__doc__dir([object])-listofstrings\n\nIfcalledwithoutanargument,returnthenamesinthecurrentscope.\nElse,returnanalphabetizedlistofnamescomprising(someof)theattributes\nofthegivenobject,andofattributesreachablefromit.\nIftheobjectsuppliesamethodnamed__dir__,itwillbeused;otherwise\nthedefaultdir()logicisusedandreturns:\nforamoduleobject:themodule'sattributes.\nforaclassobject:itsattributes,andrecursivelytheattributes\nofitsbases.\nforanyotherobject:itsattributes,itsclass'sattributes,and\nrecursivelytheattributesofitsclass'sbaseclasses.printdir.__doc__dir([object])-listofstringsIfcalledwithoutanargument,returnthenamesinthecurrentscope.Else,returnanalphabetizedlistofnamescomprising(someof)theattributesofthegivenobject,andofattributesreachablefromit.Iftheobjectsuppliesamethodnamed__dir__,itwillbeused;otherwisethedefaultdir()logicisusedandreturns:foramoduleobject:themodule'sattributes.foraclassobject:itsattributes,andrecursivelytheattributesofitsbases.foranyotherobject:itsattributes,itsclass'sattributes,andrecursivelytheattributesofitsclass'sbaseclasses.2-13.利用dir()找出
本文标题:PYTHON核心编程第二版第2章习题答案
链接地址:https://www.777doc.com/doc-6245468 .html