Python课后题0305.docx
《Python课后题0305.docx》由会员分享,可在线阅读,更多相关《Python课后题0305.docx(59页珍藏版)》请在冰豆网上搜索。
![Python课后题0305.docx](https://file1.bdocx.com/fileroot1/2023-2/28/335e0393-6d29-4fcf-98a6-079d734ac18e/335e0393-6d29-4fcf-98a6-079d734ac18e1.gif)
Python课后题0305
Python课后题答案
第1章Python概述
第2章
一、填空题
二、
1.对象
2.
3.可移植
4.
5.字节码
6.
7.UTF-8
8.
三、判断题
四、
1.对
2.
3.对
4.
5.对
6.
7.对
8.
9.错
10.
11.错
12.
13.对
14.
15.错
16.
17.对
18.
19.错
20.
五、选择题
六、
1.C
2.
3.ABCD
4.
5.B
6.
7.C
8.
9.D
10.
七、简答题。
八、
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,来传智播客黑马程序员")
第3章Python基本语法
第4章
一、填空题
二、
1.int
2.
3.TrueFalse
4.
5.8
6.
7.1.2e5
8.
9.00000010
10.
11.0b10100
12.
13.type()
14.
15.1
16.
17.20
18.
19.4.34×103
20.
三、判断题
四、
1.对
2.
3.错
4.
5.对
6.
7.对
8.
9.错
10.
11.错
12.
13.对
14.
15.对
16.
17.对
18.
19.对
20.
五、选择题
六、
1.D
2.
3.D
4.
5.A
6.
7.A
8.
9.C
10.
11.A
12.
13.B
14.
15.B
16.
17.C
18.
19.D
20.
七、简答题
八、
1.Python中标识符的命名规则如下所示:
●标示符由字母、下划线和数字组成,且数字不能开头
●
●python中的标识符是区分大小写的。
●
●python中的标示符不能使用关键字
●
2.简述Python中的数字类型有:
int(整型)、long(长整型)、float(浮点数)、complex(复数)
九、编程题
一十、
1.代码如下:
importmath
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))
第5章Python常用语句
第6章
一、填空题
二、
1.break
2.
3.elif
4.
5.continue
6.
7.True
8.
9.pass
10.
三、判断题
四、
1.错
2.
3.对
4.
5.对
6.
7.对
8.
9.对
10.
五、选择题
六、
1.C
2.
3.C
4.
5.C
6.
7.C
8.
9.D
10.
七、简答题
八、
1.Pass语句Python中的pass是空语句,它的出现是为了保持程序结构的完整性。
pass不做任何事情,一般用做占位语句。
2.
3.break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。
4.
九、编程题
一十、
1.代码如下:
2.
foriinrange(1,11):
print(i)
3.代码如下:
4.
a=int(input("请输入一个数:
"))
ifa>0:
print("a是一个正数")
elifa<0:
print("a是一个负数")
else:
print("a等于0")
5.代码如下:
6.
i=1
whilei<10:
j=1
whilej<=i:
print("%d*%d=%-2d"%(i,j,i*j),end='')
j+=1
print("\n")
i+=1
第7章字符串
第8章
一、单选题
二、
1.A
2.
3.D
4.
5.B
6.
7.C
8.
9.C
10.
11.B
12.
13.A
14.
三、判断题
四、
1.对
2.
3.对
4.
5.错
6.
7.对
8.
9.错
10.
11.错
12.
13.错
14.
五、填空题
六、
1.文本
2.
3.转义
4.
5.input
6.
7.切片
8.
9.开
10.
七、程序分析题
八、
1.答:
不能编译通过。
因为num1和num2属于字符串类型,不能执行取余操作。
2.
3.结果为:
J
4.
5.答:
由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。
6.
7.结果为:
HelloWorld(默认删除两头的空格)
8.
9.结果为:
HelloPython
10.
九、编程题
一十、
1.答案:
2.
myStr=input("请输入任意字符串:
")
num=0
forsinmyStr:
ifs.isdigit():
num+=1
print(num)
3.答案:
4.
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+secondStr
print(newStr)
forweekStrinweek:
ifweekStr.find(newStr,0,2)!
=-1:
ifnewStr=="Tu":
print("星期二")
elifnewStr=="Th":
print("星期四")
elifnewStr=="Sa":
print("星期六")
elifnewStr=="Su":
print("星期日")
break
break
5.答案:
6.
str="Hello,welcometoitheima!
!
"
print(str.count("o"))
第9章列表、元组和字典
第10章
一、单选题
二、
1.D
2.
3.B
4.
5.C
6.
7.D
8.
9.D
10.
11.C
12.
13.A
14.
15.B
16.
17.C
18.
三、判断题
四、
1.对
2.
3.对
4.
5.对
6.
7.对
8.
9.错
10.
11.错
12.
13.错
14.
五、填空题
六、
1.字典
2.
3.字典,列表
4.
5.notin
6.
7.sort
8.
9.小括号
10.
七、简答题
八、
1.答案:
(1)外形:
列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据
(2)存储结构:
列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。
(3)访问方式:
列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。
(4)是否可变类型:
列表是可变类型,列表是不可变类型,字典是可变类型。
九、程序分析题
一十、
1.答案:
程序运行错误,元组不能使用下标增加元素。
2.
3.结果为:
3
4.
5.结果为:
1,26
6.
一十一、编程题
一十二、
1.答案:
2.
defmessage():
myStr=input("请输入密码,只能为字母和数字:
")
ifmyStr.isalnum():
print("符合要求")
else:
print("不符合要求")
3.答案:
4.
arr=[]
evenStr=""
oddStr=""
message=input("请输入任意字符串:
")
forstringinmessage:
arr.append(string)
foreStrin(arr[:
:
2]):
evenStr=evenStr+eStr
foroStrin(arr[1:
:
2]):
oddStr=oddStr+oStr
print(evenStr+oddStr)
5.答案:
6.
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()
7.答案:
8.
arr=[]
result=""
myStr=input("请输入字符串:
")
forstringinmyStr:
arr.append(string)
last=arr[-1]
arr.remove(last)
arr.insert(0,last)
fornewinarr:
result=result+new
print(result)
9.答案:
10.
arr=[]
length=int(input("请要输入数字的总个数(必须为奇数):
"))
i=0
whileinum=int(input("输入第%d个数字:
"%(i+1)))
arr.append(num)
i+=1
arr.sort()
index=int(length/2)
print(arr[index])
11.答案:
12.
第一种:
arr=[1,2,3,4,5]
arr.reverse()
print(arr)
第二种:
arr=[1,2,3,4,5]
arr.sort(reverse=True)
print(arr)
13.答案:
14.
arr=[]
length=int(input("请输入数字的总个数:
"))
i=0
whileinum=int(input("输入第%d个数字:
"%(i+1)))
arr.append(num)
i+=1
print("排序前:
%s"%arr)
#对列表排序
foriinrange(length):
flag=0
forjinrange(1,length):
ifarr[j-1]>arr[j]:
arr[j-1],arr[j]=arr[j],arr[j-1]
flag=1
ifnotflag:
break
print("排序后:
%s"%arr)
15.答案:
16.
arr=[]
length=int(input("请输入列表的总个数:
"))
i=0
whileielement=input("输入第%d个元素:
"%(i+1))
arr.append(element)
i+=1
#列表转为集合
newList=set(arr)
print(newList)
17.答案:
18.
defadd(a,b):
#下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以
assert(len(a)==len(b))
assert(all([len(a[i])==len(b[i])==len(a[0])foriinrange(len(a))]))
i,j=len(a),len(a[0])
c=[[0]*j]*i
forminrange(i):
forninrange(j):
c[m][n]=a[m][n]+b[m][n]
returnc
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)
19.答案:
20.
dic={}
i=0
whilei<3:
number=input("输入学生学号:
")
name=input("输入学生姓名:
")
dic.__setitem__(number,name)
i+=1
print("排序前:
%s"%dic)
defdict2list(dic:
dict):
'''将字典转化为列表'''
keys=dic.keys()
vals=dic.values()
lst=[(key,val)forkey,valinzip(keys,vals)]
returnlst
new=sorted(dict2list(dic),key=lambdax:
x[0],reverse=False)
print("排序后:
%s"%new)
21.答案:
22.
defdelMale(dict):
keys=[]
values=[]
for(key,value)indict.items():
keys.append(key)
values.append(value)
forvalueinvalues:
ifvalue==0:
index=values.index(value)
arrKey=keys[index]
deldict[arrKey]
values[index]=3
keys[index]="占位"
dic={"小明":
0,"小红":
1,"小兰":
1,"小白":
0}
print("删除前:
%s"%dic)
delMale(dic)
print("删除后:
%s"%dic)
23.答案:
24.
arr=[12,3,37,7,91,67,27,45,6]
defdelPrime(arr):
forelementinarr:
#质数大于1
ifelement>1:
#查看因子
foriinrange(2,element):
if(element%i)==0:
break
else:
arr.remove(element)
delPrime(arr)
print(arr)
第11章函数
第12章
一、单选题
二、
1.C
2.
3.D
4.
5.C
6.
7.A
8.
9.C
10.
11.D
12.
三、判断题
四、
1.错
2.
3.对
4.
5.对
6.
7.错
8.
9.对
10.
11.对
12.
13.错
14.
15.对
16.
五、填空题
六、
1.逗号
2.
3.return
4.
5.return
6.
7.不定长
8.
9.嵌套
10.
11.局部
12.
13.整个程序
14.
15.global
16.
七、简答题
八、
1.答案:
2.
局部变量:
(1)函数内部定义的变量;
(2)作用域是函数的内部。
全局变量:
(1)函数外部定义的变量;
(2)作用域是整个程序。
3.答案:
4.
(1)以def关键字开头,后面接函数标识符名称和圆括号;
(2)给函数起名字的时候,规则跟变量的名字是一样的;
(3)任何传入参数和自变量必须放在圆括号中间;
(4)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明;
(5)函数内容以冒号起始,并且缩进;
(6)return[表达式]结束函数,选择性地返回一个值给调用方。
不带表达式的return相当于返回None。
九、程序分析题
一十、
1.结果为100
2.结果为:
200
3.结果为:
200,100
一十一、编程题
一十二、
1.答案:
2.
defgetMax():
num1=int(input("请输入第1个整数:
"))
num2=int(input("请输入第2个整数:
"))
num3=int(input("请输入第3个整数:
"))
temp=0#临时变量,存放中间产生的第2大数值
ifnum1>num2:
temp=num1
else:
temp=num2
iftemp>num3:
return"其中最大值为:
"+str(temp)
else: