python快速编程入门第二版课后编程题答案 |
您所在的位置:网站首页 › python第2版课后答案第二章 › python快速编程入门第二版课后编程题答案 |
Python课后题答案
第1章Python概述
一、填空题
1.对象 2.可移植 3.字节码 4.UTF-8 二、判断题1.对 2.对 3.对 4.对 5.错 6.错 7.对 8.错 9.对 10.错 三、选择题1.C 2.ABCD 3.B 4.C 5.D 四、简答题。1. Python具有的特点如下: 简单易学 开源 高级语言 可移植性 解释性 面向对象 可扩展性 丰富的库 规范的代码 Python可以应用在下列领域:web应用开发 操作系统管理、服务器运维的自动化脚本 科学计算 桌面软件 服务器软件(网络软件) 游戏 构思实现,产品早期原型和迭代 Python2.x和Python3.x的区别如下:(1)在python2.x中,输出数据使用的是print语句用python绘制精灵球扔向皮卡丘。但是在python3.x中,print语句没有了,取而代之的是print()函数 (2)python2有ASCI Str()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。 (3)在python2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。 (4)相比python2.x版本,python3.x版本在异常方面有很多改变: 在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。 在python2.x版本中,捕获异常的语法是exceptexc,var。在python3.x版本中,引入了as关键字,捕获异常的语法变更为except exc as var。 在python2.x版本中,处理异常使用raise Exception(args)。在python3.x版本中,处理异常使用raiseException,args。 python3.x取消了异常类的序列行为和.message属性。 (5)在Python3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。 (6)Python 2.x中不等于有两种写法 != 和 ;但是,Python 3.x中去掉了, 只有!=一种写法 (7)python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。 Python程序的执行原理如图所示。python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行 IPython的特点如下:IPython具有卓越的Python shell,其性能远远优于标准Python的shell。 IPython支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交互式Python shell包含在各种Python应用中,甚至可以当作系统级shell来使用。 五、编程题。1. 代码如下: print("+++++++++++") print("+ +") print("+++++++++++")或者 print('''+++++++++++ + + +++++++++++ ''') 代码如下: print("学Python,来传智播客黑马程序员") print("学Python,来传智播客黑马程序员") print("学Python,来传智播客黑马程序员") print("学Python,来传智播客黑马程序员") print("学Python,来传智播客黑马程序员") 第2章Python基本语法 一、填空题1.int 2.True False 3.8 4.1.2e5 5.00000010 6.0b10100 7.type() 8.1 9.20 10.4.34×103 二、判断题1.对 2.错 3.对 4.对 5.错 6.错 7.对 8.对 9.对 10.对 三、选择题1.D 2.D 3.A 4.A 5.C 6.A 7.B 8.B 9.C 10.D 四、简答题 Python中标识符的命名规则如下所示: 标示符由字母、下划线和数字组成,且数字不能开头 python中的标识符是区分大小写的。 python中的标示符不能使用关键字简述Python中的数字类型有:int(整型)、long(长整型)、float(浮点数)、complex(复数) 五、编程题 代码如下: import math a=float(input("请输入斜边 1 的长度")) #输入实数 b=float(input("请输入斜边 2 的长度")) #输入实数 c=a*a+b*b #计算,得到的是斜边的平方 c=sqrt(c) #开方,得到的是斜边长 print("斜边长为:",c) #显示,一项是字符串,一项是 c 表示的斜边长 代码如下: # 用户输入 x = input('输入 x 值: ') y = input('输入 y 值: ') # 不使用临时变量 x,y = y,x print('交换后 x 的值为: {}'.format(x)) print('交换后 y 的值为: {}'.format(y)) 第3章Python常用语句 一、填空题1.break 2.elif 3.continue 4.True 5.pass 二、判断题1.错 2.对 3.对 4.对 5.对 三、选择题1.C 2.C 3.C 4.C 5.D 四、简答题1.Pass语句Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。 2.break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。 五、编程题1.代码如下: for i in range(1,11): print(i)2.代码如下: a=int(input("请输入一个数:")) if a>0: print("a是一个正数") elif a num2: temp = num1 else: temp = num2 if temp>num3: return "其中最大值为:"+ str(temp) else: return "其中最大值为:"+ str(num3) maxValue = getMax() print(maxValue)2.答案: def sum(n): res = 0 while n >= 1: if n%2 == 0: res -= 1.0/(n*(n+1)) else: res += 1.0/(n*(n+1)) n-=1 return res num = int(input("请输入一个整数:")) print(sum(num))3.答案: def is_palindrome(n): n=str(n) m=n[::-1] return n==m result = is_palindrome(1247321) print(result)4.答案 def sjx(a, b, c): if (a + b > c and a + c > b and b + c > a): return "能构成三角形" else: return "不能构成三角形" result1 = sjx(3, 4, 5) print(result1) result2 = sjx(1, 1, 2) print(result2)5.答案: # 定义函数 def lcm(x, y): # 获取最大的数 if x > y: greater = x else: greater = y while(True): if((greater % x == 0) and (greater % y == 0)): lcm = greater break greater += 1 return lcm # 获取用户输入 num1 = int(input("输入第一个数字: ")) num2 = int(input("输入第二个数字: ")) print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2)) 第7章高级函数 一、单选题1.B 2.C 3.D 4.A 二、判断题1.错 2.错 3.错 4.对 5.对 6.错 7.错 8.对 9.对 10.错 11.对 三、填空题1.闭包 2.函数 3.被修饰的函数 4.@ 5.内嵌 6.map 7.None 8.filter 9.布尔 10.两 四、简答题1.答案: (1)存在于嵌套关系的函数中; (2)嵌套的内部函数引用了外部函数的变量; (3)嵌套的外部函数会将内部函数名作为返回值返回。 2.答案: (1)引入日志; (2)函数执行时间统计; (3)执行函数前预备处理; (4)执行函数后清理功能; (5)权限校验; (6)缓存。 3.答案: map函数会根据提供的函数对指定的序列做映射。 filter函数会对指定序列执行过滤操作。 reduce函数会对参数序列中的元素进行累积。 五、程序分析题1.能,结果为: 6 7 8 2.能,结果为: 6 6 6 六、编程题答案: result = filter(lambda x:(x+1)%2, [1, 2, 3, 4, 5]) print(result) 第8章文件 一、单选题1.C 2.A 3.C 4.B 5.D 6.D 7.C 二、判断题1.对 2.对 3.对 4.对 5.错 三、填空题1.close() 2.offset 3.列表 4.文件夹 5.tell 四、简答题1.答案: 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符“\n”结尾。二进制文件把对象内容以字节串进行存储,无法用记事本或其他普通字处理软件直接进行编辑,无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。 2.答案: (1)使用read(size)方法可以指定读取的字节数,或者读取整个文件; (2)使用readlines方法可以把整个文件的内容进行一次性读取; (3)使用readline方法一行一行读数据。 五、程序题1.答案: new = [] f = open('itheima.txt', 'r') contents = f.readlines() for ele in contents: if ele.startswith('#') == False: new.append(ele) print(new) f.close()2.答案: # 密码薄 passwordBook = {} def add(password, value): if password not in passwordBook.keys(): passwordBook[password] = value save() else: print("该密码已存在") def delete(password): if password in passwordBook.keys(): del passwordBook[password] print(passwordBook) save() else: print("该密码不存在") def modify(password, newValue): if password in passwordBook.keys(): passwordBook[password] = newValue print(passwordBook) save() else: print("该密码不存在") def find(value): if value in passwordBook.values(): print("该网址存在") else: print("该网址不存在") def save(): f = open("password.txt","w") f.write(str(passwordBook)) f.close() def printInfo(): print("密码簿的功能如下:") print("1.添加") print("2.删除") print("3.修改") print("4.查找") i = 0 while i weightS and weight-weightS < 0.05*weightS: print("体重达标") elif weight < weightS and weightS-weight < 0.05*weightS: print("体重达标") else: print("体重不达标") except HeightException: print("您输入的身高有误")2.答案: try: score = int(input("请输入学生的成绩:")) if score>=90 and score=80 and score=60 and score60,"D:不及格" except Exception as result: print("低于60分:\n",result) 第10章Python模块 一、单选题1.C 2.D 3.A 二、判断题1.错 2.对 3.对 4.对 5.错 三、填空题1.random. randint 2.文件 3.name 4.包 5.安装 6.path 四、简答题1.答案: 每个Python脚本在运行时都有一个“name”属性。如果脚本作为模块被导入,则其“name”属性的值被自动设置为模块名;如果脚本独立运行,则其“name”属性值被自动设置为“name”属性。利用“name”属性即可控制Python程序的运行方式。 2.答案: (1)搜索当前目录,如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。 (2)如果都找不到。Python会继续查看默认路径。 3.答案: 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。 4.答案: 在Python中用关键字import来引入某个模块: (1)导入模块,使用“import 模块”引入; (2)导入模块中的某个函数,使用“from 模块名 import 函数名”引入; (3)导入模块的全部内容,使用“from 模块 import *”。 五、编程题答案: 互换值.py def changeNum1AndNum2(num1, num2): temp = num1 num1 = num2 num2 = temp return (num1, num2) 第11章面向对象编程(上) 一、单选题1.B 2.D 3.C 4.C 5.A 6.A 7.B 二、判断题1.错 2.错 3.错 4.对 5.错 6.对 三、填空题1.class 2.对象 3.self 4.init 5.参数 四、简答题1.不用实例化对象就能够在本类中访问自身的属性或方法。 2.类名,属性,方法 3.分别用于初始化对象的属性和释放类所占用的资源。 五、程序分析题1.能,结果为:我的名字是小明 2.能,结果为: –del– –end– 六、编程题1.答案: class Circle: def __init__(self,tup, radius, color): self.center = tup self.radius = radius self.color = color def perimeter(self): return 3.14 * 2 * self.radius def area(self): return 3.14 * self.radius * self.radius circle = Circle((0,0),5,"蓝色") print(circle.perimeter()) print(circle.area())2.答案: class Curriculum: def __init__(self): self.number = 1001 self.name = "语文" self.teacher = "小明" self.__address = "2号教学楼3层305室" def __str__(self): return """ 课程编号:%d 课程名称:%s 任课教师:%s 上课地点:%s """%(self.number,self.name,self.teacher,self.__address) curri = Curriculum() print(curri) 第12章面向对象编程(下) 一、单选题1.D 2.A 3.C 4.C 5.B 6.C 7.A 二、判断题1.对 2.错 3.对 4.错 5.对 6.错 7.对 8.对 三、填空题1.下划线 2.父类 3.私有 4.多 5.重写 6.super() 7.类 8.@classmethod 四、简答题1.答案: (1)把属性定义为私有属性,即在属性名的前面加上两个下划线; (2)添加用于设置或者获取属性值的两个方法供外界调用。 2.答案: 类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类的属性和方法。 3.答案: 当在一个类的内部定义了私有方法或者私有属性的时候,Python在运行的过程中,把属性或者方法的名字进行了修改,即在属性或者方法名称的前面加上“_类名”,导致原有的方法无法访问到。 4.答案: 在Python中,多态是指在不考虑对象类型的情况下使用对象。 5.答案: 类方法需要使用@classmethod进行标识,该方法可以访问类属性,无法访问实例属性,可以通过类实例和类进行调用。 静态方法使用@staticmethod进行标识,该方法无法访问实例属性和类属性,起到类似于函数的作用,使用类或者类实例进行调用。 实例方法直接在类中使用def进行定义,可以访问其实例属性和类属性,使用类实例进行调用。 如果要修改实例属性的值,就直接使用实例方法;如果要修改类属性的值,就直接使用类方法;如果是辅助功能,比如打印菜单,这时可以考虑使用静态方法,可以在不创建对象的前提下使用。 6.答案: 在Python中,以下划线开头的变量名有着特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员: (1)_xx:这样的对象叫做保护变量,不能用from module import *导入,只有类对象和子类对象能够访问这些变量。 (2)xx:系统定义的特殊成员名字。 (3)_xx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名.类名 xx”这样特殊的方式来访问。Python中没有纯粹的C++意义上的私有成员。 五、编程题1.答案: class Student(object): # 构造方法 def __init__(self, name, age, scores): self.__name = name # 姓名 self.__age = age # 年龄 self.__scores = scores # 分数 def get_name(self): return self.__name def get_age(self): return self.__age def get_course(self): return max(self.__scores) stu = Student('小丸子', 18, [89, 90, 91]) print("姓名:%s"%(stu.get_name())) print("年龄:%s"%(stu.get_age())) print("最高分:%s"%(stu.get_course()))2.答案: class Animal(object): def __init__(self, color): self.color = color #颜色 def call(self): print("动物叫") class Fish(Animal): def __init__(self, color): super().__init__(color) self.tail = True def call(self): print("-%s的鱼在吐泡泡-"%self.color) fish = Fish("蓝色") fish.call() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |