Python语言程序设计习题答案_第1页
Python语言程序设计习题答案_第2页
Python语言程序设计习题答案_第3页
Python语言程序设计习题答案_第4页
Python语言程序设计习题答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

参考答案

第一章答案

第二章答案

第三章答案

练习

1、下列语句中,(B)在Python中是非法的。

A.x=y=z=iB.x=(y=z+1)C.x,y=y,xD.x+=y

2、已知x,y=1,2,那么执行x,y=y,x之后,x的值为(D)。

A.IB.(l,2)C.不符合语法,报错D.2

3、以下选项中不符合Python语言变量命名规则的是(A)。

A.3_1B.XC.ssD.InputStr

4、以下注释语句中,不正确的是(D)。

A.#Python注释B.'''Python注释,,,C."""Python注释-,"D.

//Python注释

5、printer'W)和print。W)的结果是(D)。

A.\和\\B.N和\\(1\和\D.W和'

第!1!章答案

练习

1、编写一个pylhon程序,输入两个数,比较它们的大个并输出其中较大者。

参考代码:

x=int(input("Pleaseenterfirstinteger:"))

y=in((input(,'Pleaseentersecondinteger:"))

if(x==y):

prinl("两数相同!")

elif(x>y):

print("较大数为:",x)

else:

print("较大数为:*y);

2、输入三个数,输出其最大者。

参考代码:

a,b,c=3,4,5

ifa<=b:

ifc<b:

print("b是最大的数")

else:

print("c是最大的数”)

else:

ifc<a:

print("a是最大的数”)

else:

print("c是最大的数”)

PythonShell|oT®

fileEditShellQebogQptionsEndowsHelp

IPython3.3.0(v3.3.0:lxl8«fb90ebf2rSep292012,10:55:4jJ

8)(MSCV.160032bix(Intel))onWin32

Type"copyriahtw,"credics**or"licensee)"forworeinf

ormacion.

»>RESTART*—*—

»>

u是最大的效

>»l

In:6Col:4

3、使用Python编程,求1〜100间所有偶数的和。

参考代码:

sum=O

forxinrange(1,101):

ifx%2==0:

print(x)

sum=sum+x

print("累加和是sum)

4、用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年

定期存款连本带息能翻番?

参考代码:

cunkuan=10000#本金10000元

years=0

whilecunkuan<20000:

ycars+=l

cunkuan=cunkuan*(1+0.0325)

print(str(years)+”年以后,存款会翻番")

5、从键盘接收一百分制成绩(0-100),要求输出其对应的成绩等级A-E。其中,90分以上

为A',80-89分为B,70-79分为'C',60-69分为D,60分以下为E。

参考代码:

score=int(inpulC请输入成绩(0-100):'))

ifscore>100:

grade="输入错误!"

elifscore>=90:

grade='A'

elifscore>=80:

grade=B

elifscore>=70:

grade=C'

clifscore>=60:

grade="D'

elifscore>=0:

grade='E'

else:

grade="输入错误!"

print(grade)

7^PythonShell

fileEditShellQebugOptionsEndowsHelp

Python3.3.0(v3.3.0:M8afb90ebf2rSep292012,10:55:48

)[MSCv.160032bit(Intel>)onWin32

Type"copyright""credits**or"licenseO"fornoreinfo

rmation.

»>—RESTART————

»>

请输入成缗(0—100):76

c

»>l

Ln:7Col7

6、Python的分支语句可使用关键字(C)。

A.thenB.else…ifC.elifD.elseif

7、在循环语句中,(A)语句的作用是提前结束所在循环体。

A.breakB.whileC.forD.continue

8、若a,b=5,6,则经过一下程序段后a和b的值是(A)。

ifa>4andh==6:

a=a-1

b=a

ifa==4orb==4:

a=a*b

A.16,4B.16,16C.25,5D.25,25

9、以下语句执行后输出的结果为(C)。

number-30

ifnumber%5==0:

number-number+5

else:

number=number-5

print(nuinber)

A.30B.20C.35D.11

10、语句fo句inrange(l,10,3)执行过程中,i的值为(C)。

A.1,2,3B.1,4,7,10C.1.4,7D.1,2,3,4

第五章习题答案

1、写代码,有如下变量,请按照要求实现每个功能。name="aleX"

(1)移除name变量对应的值两边的空格,并输入移除有的内容

(2)判断name变量对应的值是否以“al“开头,并输出结果

(3)判断name变量对应的值是否以“X“结尾,并输出结果

(4)将name变量时应的值中的“1”替换为“p”,并输出结果

(5)将name变量对应的值根据“『分割,并输出结果。

(6)请问,上一题分割之后得到值是什么类型?

(7)将name变量对应的值变大写,并输出结果

(8)请输出name变量对应的值的后2个字符?

(9)请输出name变量对应的值中飞”所在索引位置?

参考代码:

(1)print(name.stripO)

(2)print(name.startswith("al"))

(3)prinl(name.endswith("X"))

(4)piint(name.replace("l","p"))

(5)print(name.split(',r,))

(6)列表

(7)print(namc.uppcr())

(8)print(name[-2:])

(9)print(name.index('e,))

2、写代码,有如下列表,按照要求实现每一个功能,li=['alex','eric*,'rain']

(1)计算列表长度井输出

(2)列表中追加元素“seven”,并输出添加后的列表

(3)请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表

(4)请删除列表中的元素“eric”,并输出修改后的列表

(5)请将列表所有的元素反转,并输出反转后的列表

(6)请使用for循环输出列表的所有元素

参考代码:

(1)print(len(li))

(2)li.append("seven")

print(li)

(3)li[l]="Kelly"

print(li)

(4)li.remove("eric")

print(li)

(5)Ii.reverse()

print(li)

(6)foriinli:

print(i)

3、写代码,有如下元组,按照要求实现每一个功能,tu=Calex?eric?rain)

(1)获取元组的第1-2个元素,并输出

(2)请使用for、len、range输出元组的索引

(3)请使用enumraie输出元组元素和序号

参考代码:

(1)print(tu[0:2])

(2)foriinrange(len(tu)):

print(i.tu[i])

(3)forindex,iinenumerate(tu,start=10):

print(index,i)\

4、欲从s=Helloworld字符串中切片出字串HlwF,正确的切片表达式为(A)。

A.sl::3]B,s[:3:2]C.s[3:11:3]D.s[3::3]

5、若列表score=[60,70.60.60.70,90],则执行操作score.remove(score[-2])后score的值是

(D)o

A.[60,60,60,70,90]B.[60,70,60,60,70]

C.[70,60,60.70,90]D,[60,70,60,60,90]

6、若Tup=(2,(2,1),(2,(2,1)),(2,(2,1),(2,(2,1)))),则下列叙述正确的是(5

A.Tup⑶⑵的值为(2,1)B.元组Tup的长度为5

C.Tup⑶的值是(2,(2J),(2,(2,1)))D.Tup⑵的值是(2,1)

7、已知x='abodefg',若要得到'defgabc1结果,应使用表达式(A)。

A.x[3:]+x[:3]B.x[:3]+x[:3]

C.x[3:]+x[3:]D.x[:3]+x[3:]

8、执行结果为[1,2,3,1,2,3,1,2,3]的表达式是(D)。

A.[l,2,3]+[1,2,3]

B.[T,2,3]+[T,2,3]+[T,2,3]

C.[1,2,3]**3

D.[1,2,3]*3

第六章习题答案

I、画出函数的组成部分尹给出标注。为每个部分写出简短的定义。

答案略

2、编写函数将两个足球队的最后得分作为参数输入,输出哪个队获胜或者比赛中止。请引

用变量名“Teaml”和“Team2"。该函数不返回任何内容。

参考代码:

deffun(Teaml,Team2):

ifTeam1>Team2:

print("队伍1获胜”)

elifTeaml<Team2:

print("队伍2获胜”)

else:

prini("平局,比赛中止”)

Team1=input("请输入队伍1的得分”)

Team2=input("请输入队伍2的得分”)

fun(TeamI,Team2)

3、编写函数,输入英文句子(字符串),输出句子中元音的个数和辅音的总个数。该函数不

反悔任何内容。请注意句子可能包含特殊字符,如点、破折号等。

参考代码:

yuan=['a'/e'/i'/o'/u']

'p','q','r','s;'t';vVw';x',y,'z']

deffind(string):

string=string.lower()

yuanent=0

fuent=0

foriinstring:

ifiinyuan:

yuanent+=I

ifiinfu:

fuent+=1

print(string+”中元音共有*yuanent,”个,辅音共有”,fiicnt,"个")

str=input("请输入英文句子:”)

find(str)

4、斐波拉契数列是:1,1,2,3,5,8,13……。可以看到,第一个和第二个数字均为1。

此后,每个数字是前两个数字的总和。

(a)编写函数来输出Fibonacci序列的前n个数字

(b)编写函数,显示序列中的第n个数字

参考代码:

defFib(n):

ifn==1orn==2:

return1

elifn<1:

returnFalse

else:

a=1

b=1

print("l\nl")

while(n>2):

a=a+b

a.b=b,a

n-=1

print(b)

returnb

n=inl(inpui("请输入n值:"))

Fib(n)

5、闰年在公历系统中是能被4整除但不能被100整除,或者能被400整除的那些年份。例

如1896年、1904年和2000年是闰年,但1900年不是。写一个函数,输入为年份,输出是

否为闰年。

参考代码:

defrunnian(year):

if(year%4==0andyear%100!=0)oryear%400=0:

returnTrue

else:

returnFalse

year=int(input("请输入一个年份,以判断是否为闰年:"))

runnian(year)

6、这个函数实现什么功能?对于num=5,该函数返回什么?

defFunc(num):

total=0

whilenum>0:

total=total+num*(num-1)

num=num-1

returntotal

答:对1x2+2x3+…+(rt-1)xri求和。当num=5,返回40。

7、编写函数,输出100以内6和10的所有公倍数。在一般情况下,函数有三个输入参数:

要求公倍数的两个数字(K和y)和上限z。

参考代码:

defCommonMutiple(x,y,z):#x,y为因数,z为范围

ifx>y:

x,y=y,x#使y最大

X1=X

yi=y

whilexl:

yl,xl=xl,yl%xl

c=x*y//y1#c盛装最小公倍数

in=c

whilein<z:

print(m)

m+=c

CommonMutiple(6,8,100)

8、回文。回文向前读和向后读相同的词,“testset”是回文。

(a)编写函数,如果两个字符串是回文,返回真。(提示:可以用lisl()函数对字符串创

建列表,列表使用起来很方便,因为字符串有个reverse。方法)

(b)编写函数,使用你的函数。程序提示输入两个字符串,调用该函数,显示判断结

果(真或假)

参考代码:

defhuiwen(str):

str=list(str)

strl=str

strl.reverse()

ifstrl==str:

returnTrue

else:

returnFalse

defhuiwen2(a,b):

ifhuiwen(a)andhuiwen(b):

returnTrue

else:

returnFalse

stringl=inpul("请输入第一个字符串:")

string2=input("请输入第二个字符串:")

huiwcn2(string1,string?)

9、如下代码输出什么?给出解释。

deff(a,b=2):

pass

f(a=3,b=4)

printa,b

答:报错。原因:此处形参a,b一经脱离函数模块,则不起作用。

10、实参和形参的区别是什么?

答:形参一一定义函数时使用的参数,形式上的参数,没有实际的值,赋值后才有意义。实

参一一调用函数时使用的参数,是实际存在的参数。

11、创建函数,参数是字符串,并以相反的顺序返回字符串(例如字符串“robot”传入函数,

返回“tobor")。

参考代码:

defrev(str):

returnstr[::-l]

rev("robot")

第七章习题

练习

1、下列Python的类型中,非有序类型是(A)。

A.字典B.列表C.元组D.字符串

2、下列关于字典对象方法的描述,不正确的是(D)。

A.方法get()可以获取指定“犍”对应的“值”,并且可以在指定“键”不存在时返

回指定值,如果不指定则返回None

B.方法ilems()返回字典中的“键值对”列表

C.方法keys()返回字典的“键”列表

D.“字典[键]”的表达式(例如dict「name,])的结果与方法get。的结果完全相同

3、以下说法正确的是(C)。

A.valuesO方法将字典中的值以可迭代的diet对象返回

B.del命令不能删除整个字典

C.在字典中,某个键相关联的值可以通过赋值语句来修改,如果指定的键不存在,则

会添加新的键值对

D.updatc()方法将另一个字典中的所有键值对一次性地添加到当前字典中,如果两个

字典中存在有相同的键,则会出错

4、若dicl={‘甲‘:{‘乙':1,‘丙’:5}},执行print(dicl.gct('乙’,沐找到‘))的结

果是(A)o

A.未找到B.1C.报错D.输出空值

5、若字典aDict={•张三":18,“李四”:19,“王五’:20},贝UaDict.get(•赵六",25)

的值为的)。

A.18B.无返回值C.25D.NULL

第八章习题答案

1、当前目录下有一个文本文件xll.lxl,其内容包含小写字母和大写字母。请将该文件复制

到另一文件xtl_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。

参考代码:

file1=opcn("c:\\xtl.txt")

x=filel.readlines()

file2=open("c:\\xtl_copy.txt",'w")

foriinx:

file2.write(i.upper())

filcl.closc()

file2.close()

2、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序

排列),输出到一个新文但C中。

参考代码:

file1=open("c:\\A.txt"7'r")

x=filel.readlines()

file2=opcn("c:\\B.txt"7'r")

y=file2.readlines()

file3=open("c:\\C.txt'\"a")

foriinx:

file3.write(i)

foriiny:

file3.write(i)

filcl.close()

file2.close()

filc3.close()

3、文件打开模式中,使用a模式,文件指针指向(B)。

A.文件头B.文件尾C.文件随机位置D.空

4、若要进行二进制格式的文件读写操作应该选择下列(A)文件打开方式。

A.rbB.r+C.rb-D.w

5、下面代码对文本文件text.txt操作后,变量a的数据类型是(A)。

MyFile=open("textjxt","r")

a=MyFilc.rcadlineO

A.字符串B.列表C.元组D.字典

6、以下代码执行后,a.txi文件的内容是(D)。

f=open("a.txt',,"w")

Is=["test","\2\"201910M,"20"]

forssinIs:

f.write(ss)

f.close()

A.报错B.["test","!?';"201910","20"]

C.test,12,201910,20D.test1220191020

7、下列说法错误的是(A)。

A.文件对象的内置方法f.readlines()可实现读取一个文件中的所有行,并将其作为一个

元组返回。每一行的信息作为元组中的一个字符串元素

B.利用read。方法可读取文件中指定长度的字符,若括号中无数字,则直•接读取文件中

所有的字符;若提供数字,则一次读取指定数最字节的字符

C.文件对象的内置方法readline()可实现逐行读取字符,若括号中无数字,则默认读取

一行:若括号中有数字,则读取这一行中对应数量的字符(如果该数字大于这一行的

字符数,则读取这一行所有字符)

D.建立文件对象f之后,可通过调用其内置方法seek()移动指针的位置

第九章习题答案

第十章习题答案

1、下列语句可以用来查看df列名的是(A)。

A.df.columnsB.df.values

C.df.describe()D.df.index

2、DataFrame判断重复值可以采用以下(C)语句。

A.df.drop_duplicatcs()B.df.rcpcat()

C.df.duplicated()D.df.dropna()

3、执行下述程序后,最终输出的结果为(D)。

importpandasaspd

Data=pd.DataFrame([[2,3],1*3,columns=['A'B'])

B=Data.apply(lambdax:x+1)

print(B.loc[l;B'])

A.3B.1C.2D.4

4、使用Numpy库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论