文档库 最新最全的文档下载
当前位置:文档库 › Python课后题答案-20180305

Python课后题答案-20180305

Python课后题答案-20180305
Python课后题答案-20180305

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具有的特点如下:

●简单易学

●开源

●高级语言

●可移植性

●解释性

●面向对象

●可扩展性

●丰富的库

●规范的代码

2. Python可以应用在下列领域:

●web应用开发

●操作系统管理、服务器运维的自动化脚本

●科学计算

●桌面软件

●服务器软件(网络软件)

●游戏

●构思实现,产品早期原型和迭代

3. Python2.x和Python3.x的区别如下:

(1)在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数

(2)python2有ASCII Str()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。

(3)在python 2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python 3.x 中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。

(4)相比python2.x版本,python3.x版本在异常方面有很多改变:

?在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。

?在python2.x版本中,捕获异常的语法是except exc,var。在python3.x 版本中,引入了as关键字,捕获异常的语法变更为except exc as var。

?在python2.x版本中,处理异常使用raise Exception(args)。在python3.x 版本中,处理异常使用raiseException,args。

?python3.x取消了异常类的序列行为和.message属性。

(5)在Python 3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。

(6)Python 2.x中不等于有两种写法!= 和<>;但是,Python 3.x中去掉了<>, 只有!=一种写法

(7)python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。

4. Python程序的执行原理如图所示。

python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行

5. IPython的特点如下:

●IPython具有卓越的Python shell,其性能远远优于标准Python的shell。

●IPython支持变量自动补全,自动缩进,支持bash shell 命令,内置了

许多很有用的功能和函数。

●IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交

互式Python shell包含在各种Python应用中,甚至可以当作系统级shell

来使用。

五、编程题。

1.代码如下:

print("+++++++++++")

print("+ +")

print("+++++++++++")

2. 代码如下:

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

四、简答题

1. Python中标识符的命名规则如下所示:

●标示符由字母、下划线和数字组成,且数字不能开头

●python中的标识符是区分大小写的。

●python中的标示符不能使用关键字

2. 简述Python中的数字类型有:int(整型)、long(长整型)、float(浮点数)、complex(复数)

五、编程题

1. 代码如下:

import math

a=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,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<0:

print("a是一个负数")

else:

print("a等于0")

3.代码如下:

i=1

while i<10:

j=1

while j<=i:

print("%d*%d=%-2d "%(i,j,i*j),end='')

j+=1

print("\n")

i+=1

第4章字符串

一、单选题

1.A

2.D

3.B

4.C

5.C

6.B

7.A

二、判断题

1.对

2.对

3.错

4.对

5.错

6.错

7.错

三、填空题

1.文本

2.转义

3.input

4.切片

5.开

四、程序分析题

1.答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。

2.结果为:J

3.答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。

4.结果为:Hello World(默认删除两头的空格)

5.结果为:HelloPython

五、编程题

1.答案:

myStr = input("请输入任意字符串:")

num = 0

for s in myStr:

if s.isdigit():

num += 1

print(num)

2.答案:

week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

while True:

myStr = input("请输入任意一个字母:")

upMyStr = myStr.upper()

for weekS in week:

if upMyStr == weekS[0]:

if weekS.startswith("M"):

print("星期一")

elif weekS.startswith("W"):

print("星期三")

elif weekS.startswith("F"):

print("星期五")

elif weekS.startswith("T") or weekS.startswith("S"): secondStr = input("请再输入任意一个字母:")

newStr = upMyStr+secondStr

print(newStr)

for weekStr in week:

if weekStr.find(newStr,0,2) != -1:

if newStr == "Tu":

print("星期二")

elif newStr == "Th":

print("星期四")

elif newStr == "Sa":

print("星期六")

elif newStr == "Su":

print("星期日")

break

break

3.答案:

str = "Hello,welcome to itheima!!"

print(str.count("o"))

第5章列表、元组和字典

一、单选题

1. D

2. B

3. C

4. D

5. D

6. C

7. A

8. B

9. C

二、判断题

1.对

2.对

3.对

4.对

5.错

6.错

7.错

三、填空题

1.字典

2.字典,列表

3.not in

4.sort

5.小括号

四、简答题

1.答案:

(1)外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据

(2)存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,

键是唯一的,值是任何类型的。

(3)访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。

(4)是否可变类型:列表是可变类型,列表是不可变类型,字典是可变类型。

五、程序分析题

1.答案:程序运行错误,元组不能使用下标增加元素。

2.结果为:3

3.结果为:1,26

六、编程题

1.答案:

def message():

myStr = input("请输入密码,只能为字母和数字:")

if myStr.isalnum():

print("符合要求")

else:

print("不符合要求")

2.答案:

arr = []

evenStr = ""

oddStr = ""

message = input("请输入任意字符串:")

for string in message:

arr.append(string)

for eStr in (arr[::2]):

evenStr = evenStr+eStr

for oStr in (arr[1::2]):

oddStr = oddStr+oStr

print(evenStr+oddStr)

3.答案:

arr = []

def count():

myStr = input("请输入只包含字母的字符串:") if myStr.isalpha():

newStr = myStr.lower()

for string in newStr:

arr.append(string)

a = {}

for i in arr:

if arr.count(i) >= 1:

a[i] = arr.count(i)

print(a)

else:

print("输入的内容有误")

count()

4.答案:

arr = []

result = ""

myStr = input("请输入字符串:")

for string in myStr:

arr.append(string)

last = arr[-1]

arr.remove(last)

arr.insert(0,last)

for new in arr:

result = result + new

print(result)

5.答案:

arr = []

length = int(input("请要输入数字的总个数(必须为奇数):"))

i = 0

while i < length:

num = int(input("输入第%d个数字:"%(i+1)))

arr.append(num)

i+=1

arr.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 = 0

while i < length:

num = int(input("输入第%d个数字:"%(i+1)))

arr.append(num)

i+=1

print("排序前:%s"%arr)

# 对列表排序

for i in range(length):

flag = 0

for j in range(1,length):

if arr[j-1] > arr[j]:

arr[j-1],arr[j] = arr[j],arr[j-1]

flag = 1

if not flag:

break

print("排序后:%s"%arr)

8.答案:

arr = []

length = int(input("请输入列表的总个数:"))

i = 0

while i < length:

element = input("输入第%d个元素:"%(i+1))

arr.append(element)

i+=1

# 列表转为集合

newList = set(arr)

print(newList)

9.答案:

def add(a, b):

# 下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以

assert (len(a) == len(b))

assert (all([len(a[i]) == len(b[i]) == len(a[0]) for i in range(len(a))])) i, j = len(a), len(a[0])

c = [[0] * j] * i

for m in range(i):

for n in range(j):

c[m][n] = a[m][n] + b[m][n]

return c

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]

c = add(a, b)

print(c)

10.答案:

dic = {}

i=0

while i<3:

number = input("输入学生学号:")

name = input("输入学生姓名:")

dic.__setitem__(number,name)

i+=1

print("排序前:%s"%dic)

def dict2list(dic:dict):

''' 将字典转化为列表 '''

keys = dic.keys()

vals = dic.values()

lst = [(key, val) for key, val in zip(keys, vals)]

return lst

new = sorted(dict2list(dic), key=lambda x:x[0], reverse=False) print("排序后:%s"%new)

11.答案:

def delMale(dict):

keys = []

values = []

for (key,value) in dict.items():

keys.append(key)

values.append(value)

for value in values:

if value == 0:

index = values.index(value)

arrKey = keys[index]

del dict[arrKey]

values[index] = 3

keys[index] = "占位"

dic = {"小明":0, "小红":1,"小兰":1,"小白":0} print("删除前:%s"%dic)

delMale(dic)

print("删除后:%s"%dic)

12.答案:

arr = [12,3,37,7,91,67,27,45,6]

def delPrime(arr):

for element in arr:

# 质数大于 1

if element > 1:

# 查看因子

for i in range(2, element):

if (element % i) == 0:

break

else:

arr.remove(element)

delPrime(arr)

print(arr)

第6章函数

一、单选题

1. C

2. D

3. C

4. A

5. C

6. D

二、判断题

1.错

2.对

3.对

4.错

5.对

6.对

7.错

8.对

三、填空题

1.逗号

2.return

3.return

4.不定长

5.嵌套

6.局部

7.整个程序

8.global

四、简答题

1.答案:

局部变量:

(1)函数内部定义的变量;

(2)作用域是函数的内部。

全局变量:

(1)函数外部定义的变量;

(2)作用域是整个程序。

2.答案:

(1)以def关键字开头,后面接函数标识符名称和圆括号;

(2)给函数起名字的时候,规则跟变量的名字是一样的;

(3)任何传入参数和自变量必须放在圆括号中间;

(4)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明;

(5)函数内容以冒号起始,并且缩进;

(6)return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。

五、程序分析题

1.结果为100

2.结果为:200

3.结果为:200,100

六、编程题

1.答案:

def getMax():

num1 = int(input("请输入第1个整数:"))

num2 = int(input("请输入第2个整数:"))

num3 = int(input("请输入第3个整数:"))

temp = 0 # 临时变量,存放中间产生的第2大数值 if num1 > 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

相关文档