《Python编程与实践》习题3答案_第1页
《Python编程与实践》习题3答案_第2页
《Python编程与实践》习题3答案_第3页
《Python编程与实践》习题3答案_第4页
《Python编程与实践》习题3答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

实践问题3答案

实践问题3.1的答案(针对本书3.1-3.3节内容)

1.Python语言中,对象的类型和内存占用都是运行时确定的。Python是一种解释型

语言,在创建一一也就是赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型,

在对象创建后,一个该对象的应用就会赋值给左侧的变量。

2.areais11.0

3.有效标识符:miles,Test,apps,x,y,radius

效标识符:a+b,b-a,4#R,$4,#44,if,elif

关键字:if,elif

4.value=eval(input("请输入一个数:”))

5.print(int(value))4

print(round(value))5

print(eval(n4*5+2”))22

print(int(n04"))4

print(int(n4.5M))错误

print(eval(n04n))错误

实践问题3.2的答案(针对本书3.4节内容)

6.44,乘法运算优先于加法运算。

7.第一个赋值语句将变量value2的值赋给了变量value1,而第二个赋值语句将变量

value]的值赋给了value2.

8.25/4=6.25,如果想让结果为整数的话用25〃4

9.4.0/(3.0*(r+34))-9*(a+b*c)+(3.0+d*(2+a))/(a+b*d)

10.a+=4(a=5)

a-=4(a=-3)

a*=4(a=4)

a/=4(a=0.25)

a//=4(a=0)

a%=4(a=1)

a=56*a+6(a=62)

实践问题3.3的答案(针对本书3.5节内容)

11.code=ord('1')

code=ord('A')

code=ord('B*)

code=ord('a')

code=ord('b')

ch=chr(40)

ch=chr(59)

ch=chr(79)

ch=chr(85)

ch=chr(90)

12.D

13.title="Chapter"+str(3)

14.7

25

15.答案如下表:

a.s1==s2True1.4*s4totototo

b.s2.count('o')3m.len(si)17

c.id(si)==id(s2)Truen.max(si)y

d.id(si)==id(s3)Falseo.min(si)aspacechar

e.si<=s4TrueP-si[-4]t

f.s2>=s4Falseq・si・lower()welcometopython

g.si!=s4Truer.si・rfind('o*)15

h.si.upper()WELCOMETO1s.si.startswith(nWelcoH)True

i.si.find(s4)8t.si.endswith("on*')True

j.sl[4]ou.si.isalpha()False

k.si[4:8]omeV.si+s2

16.除了s3=si-s2不对之外,其它都是对的。

17.WelcometoPython

WelcabcmetabcPythabcn

18.答案如下:

(1)isEqual=(si==s2)(2)isEqual=(si.upper。==s2.upper())

(3)b=s1.startswith(nAAAu)(4)b=si.endswith(MAAAn)

(5)x=len(sl)(6)x=sl[0]

(7)s3=sl+s2(8)s3=sl[l:]

(9)s3=sl[l:5](10)s3=sl.lower()

(11)s3=sl.upper()(12)s3=sl.stripO

(13)s3=sl.replace('e\K)(14)x=slfnd('e')

(15)x=sl.rfind('abc')

19.firstandsecond

20.Asknotwhatyourcountrycandoforyou,askwhatyoucandoforyourcountry

21.输出如下:

54.70

5.47e+01

6789.30

0.457

36

22.输出如下:

Programmingisfun

Programmingisfun

Programmingisfun

23.A[A-Za-zO-9]+$

24.输入只能是汉字的表达式:A[\u4e00-\u9fa5]{0,}$

25./A\d{l}[\w|_|\d]{4,19)$/

实践问题3.4的答案(针对本书3.6节内容)

26.输出结果如下:

[xforxinlistlifx>1]=>[30,2]

[xforxinrange(0^10,2)]=>[0,2,4,6,8]

[xforxinrange(10>0,-2)]=>[10,8,6,4,2]

27.输出结果如下:

listlis[22,43]

list2is[1,43]

28.输出结果如下:

[1,1,1,1,1,1]

29.输出结果如下:

[111,3,5,7,9]

[1,3,5,7,9]

30.输出结果如下:

[[2,1,1]>[1>1,1],[1,1,1]]

31.不能向元组添加元素,不能从元组中删除元素,也不能替换元组中的元素。

32.(1,2,3,7,9,0,5)

1

(2,3)

5

(1,2,3,7,9,0)

(2,3,7,9,0)

实践问题3.5的答案(针对本书3.7节内容)

33.s={1,3,4}#正确

s={{1,2},{4,5}}#错误,因为集合不能包括集合{1,2},{3,4}

s={[1,2],[4,5]}#错误,因为集合不能包括列表[1,21,[4,5]

s={(1,2),(4,5))#正确,集合可以包括元组(1,2),(4,5)

34.集合类似于存储项目集合的列表。与列表不同,集合中的元素是唯一的,不会以任

何特定的顺序放置。要从列表创建集合,请使用set(list)。要从集合创建列表,请使

用list(set)o

35.输出结果:46116

实践问题3.6的答案(针对本书3.8节内容)

36.第二行错误

37.被称作键值对。

38.输出结果:4

39.tuple元组,固定长度不可变的顺序容器,访问效率高,是和存储一些常量数据,可

以作为字典的键使用。

list列表,是长度可变有序的数据存储容器,。可以通过下标索引取到相应的数据。

diet字典,长度可变的hash字典容器。存储的方式为键值对,可以通过相应的键获取

相应的值,key支持多种类型。

习题3答案

习题3.1答案(针对本书3.4节内容)

1.合法:fOrM_1024不合法:years.2018wall&Door1040Bytesexpensive?

INCOME2018

2.2014161698

3.18

4.1012

5.300

6.4016

7.结果如下:

表达式结果表达式结果

int(-b/2)-3abs(a-3))0

int(a*0.5)1round(b/a)1

abs(4-b)1round(b+0.5)6

8.答案如下:

l)price*=0.82)sum/=23)count%=2

4)cost+=105)seconds-=106)num//=6

9.代码如下:

pounds=eval(input("Enteranumberinpounds:"))

kilograms=pounds*0.454;

print(poundsj"poundsis”,kilograms,"kilograms")

10.代码如下:

#Readanumber

number=eval(input(nEnteranintegerbetween0and1000:"))

lastDigit=number%10

remainingNumber=number//10

secondLastDigit=remainingNumber%10

remainingNumber=remainingNumber//10

thirdLastDigit=remainingNumber%10

#0btainthesumofalldigits

sum=lastDigit+secondLastDigit+thirdLastDigit

#Displayresults

print("Thesumofalldigitsin”,number,"is",sum)

11.代码如下:

importmath

side=eval(input(HEntertheside:*'))

#Computethearea

area=5*side*side/math.tan(math.pi/5)/4

print("Theareaofthepentagonis”,area)

12.代码如下:

totalMinutes=eval(input("Enterthenumberofminutes:"))

totalHours=totalMinutes//60

remainingMinutes=totalMinutes%60

totalDays=totalHours//24

remainingHours=totalHours%24

totalYears=totalDays//365

remainingDays=totalDays%365

print("1000000000minutesisapproximately",totalYears"yearsand"

remainingDays,"days")

习题3.2答案(针对本书3.5节内容)

13.one,two,three

14.a)'o'b)'h'c)'Pyt'd)'Py'e)'h'f)'th'g)'Python'

h)2i)-1j)2k)'BALLCOURSE,1)6

m)'TheBook'n)-1o)4p)3

15.a)s[:-1]

b)s[2:]

16.输出结果如下:

$12,345.68

12,346

1.23

$12,345.00

17.输出结果如下:

planfirst,codelater

abcAAAabc

18.A[a-zA-Z]\w{7,10}$

19.代码如下:

##Wordreplacement.

sentence=input("Enterasentence:")

wordl=input("Enterwordtoreplace:")

word2=input("Enterreplacementword:")

location=sentence.find(wordl)

newSentence=sentence[:location]+word2+sentence[location+len(wordl):]

print(newSentence)

20.代码如下:

#PrompttheusertoenteradegreeinCelsius

code=eval(input("EnteranASCIIcode:"))

#Displayresult

print(*'ThecharacterforASCIIcode",code,"is”,chr(code))

21.代码如下:

defmain():

first=input("Enterthefirststring:").strip()

second=input("Enterthesecondstring:").strip()

ifisSubstring(first>second)!=-1:

print(first+"isasubstringof"+second)

else:

print(first+"isnotasubstringof"+second)

#Checkifthefirststringisasubstringofthesecondstring

defisSubstring(firstssecond):

remainingLength=len(second)

startingindex=0;

whilelen(first)<=remainingLength:

iffirst!=second[startingindex:startingindex+len(first)]:

startingindex+=1

remainingLength-=1

else:

returnstartingindex

return-1

main()

22.代码如下:

defmain():

s=input("Enterabinarynumberstring:").strip(),upper()

print("Thedecimalvalueis"+str(binaryToDecimal(s)))

defbinaryToDecimal(binarystring):

value=ord(binanyString[0])-ord('0')

foriinrange(l,len(binaryString)):

value=value*2+ord(binarystring[i])-ord('0')

returnvalue;

main()

23.代码如下:

defmain():

value=eval(input("Enteraninteger:"))

print("Thebinaryvalueis"+str(decimalToBinary(value)))

defdecimalToBinary(value):

result=""

whilevalue!=0:

bit=value%2;

result=str(bit)+result

value=value//2

returnresult

main()

24.代码如下

defmain():

printChars('l',Z,10)

defprintCharsCchl^ch2,numberPerLine):

count=1

foriinrange(ord(chl),ord(ch2)+1):

ifcount%numberPerLine==0:

print(chr(i))

else:

print(chr(i),end="")

count+=1

main()

25.代码如下:

defformat(number,width):

result=str(number)

foriinrange⑶width-len(number)):

result="0"+result

returnresult

deflen(number):

size=0

whilenumber>0:

size+=1

number=number//10

returnsize

defmain():

number=eval(input("Enteraninteger:"))

width=eval(input("Enterthewidth:"))

print("Theformattednumberis",format(number,width))

main()#Callthemainfunction

26.代码如下:

sentence=input("Enterasentence:")

L=sentence.split("")

print("Numberofwords:",len(L))

27.代码如下:

sentence=input("Enterasentence:")

L=sentence.split()

print("Firstword:",L[0])

print("Lastword:",L[-l][:-l])

习题3.3答案(针对本书3.6节内容)

28.lst.append(40)=>[30,1,2,1,0,40]

Ist.insertCl,43)=>[30,43,1,2,1,0]

lst.extend([l,43])=>[30,1,2,1,0,1,43]

1st.remove(1)=>[30,20]

Ist.pop(l)=>[30,2)10]

lst.pop()=>[30,1,2,1]

lst.sort()=>[0,1,1,2,30]

1st.reverse()=>[0,1,2,1,30]

random.shuffle(list)=>listisrandomlyshuffled

29.[Ill,3,5,7,9]

[111,3,5,7,9]

20.代码如下:

defmain():

s=input("Enternumbersseparatedbyspacesfromoneline:")

items=s.split()

numbers=[eval(x)forxinitems]

numbers.reverse()

print(numbers)

main()

31.代码如下:

defmain():

s=input("Enternumbersseparatedbyspacesfromoneline:")

items=s.split()

numbers=[eval(x)forxinitems]

numbers.reverse()

print(numbers)

main()

32.代码如下:

defmain():

s=input("Enterscoresseparatedbyspacesfromoneline:")

items=s.split()

numbers=[eval(x)forxinitems]

print("Theindexofthesmallestelementis”,indexOfSmallestElement(numbers))

defindexOfSmallestElement(list):

min=list[0]

minindex=0

foriinrange(l4len(list)):

ifmin>list[i]:

min=list[i]

minindex=i

returnminindex

main()

33.代码如下:

defmain():

s=input("Enterlistl:")

items=s.split()

listl=[eval(x)forxinitems]

s=input("Enterlist2:")

items=s.split()

list2=[eval(x)forxinitems]

list3=mergeClistljlist2);

print("Themergedlistis”,end=*'")

foreinlist3:

print(e,end="")

defmerge(listljlist2):

result=[]

currentl=0

current2=0

whilecurrentl<len(listl)andcurrent2len(list2):

iflistl[currentl]<Iist2[current2]:

result.append(list1[currentl])

currentl+=1

else:

result.append(list2[current2])

current2+=1

whilecurrentl<len(listl):

result.append(listl[currentl])

currentl+=1

whilecurrent2<len(list2):

result.append(Iist2[current2])

current2+=1

returnresult

main()

34.代码如下:

importrandom

defmain():

n=6

matrix=[]

foriinrange(n):

matrix.append([])

forjinrange(n):

matrixfi].append(random.randint(0,1))

print(matrix[i][j]?end="")

print()

ifisEvenParity(matrix):

print("Allrowsandcolumnsareeven")

else:

print("Notallrowsandcolumnsareeven")

defisEvenParity(matrix):

foriinrange(len(matrix)):

sum=0

forjinrange(len(matrix[i])):

sum+=matrix[i][j]

ifsum%2!=0:

returnFalse

forjinrange(len(matrix[0])):

sum=0

foriinrange(len(matrix)):

sum+=matrix[i][j]

ifsum%2!=0:

returnFalse

returnTrue

main()

35.代码如下:

defmain():

SIZE=3

print("Entera3by3matrixrowbyrow:")

m=[]

foriinrange(SIZE):

line=input().split()

m.append([eval(x)forxinline])

print("Therow-sortedlistis")

printMatrix(sortRows(m))

defprintMatrix(m):

foriinrange(len(m)):

forjinrange(len(m[i])):

print(m[i][j],end="")

print()

defsortRows(m):

result=[]

forrowinm:

result.append(row)

forrowinresult:

row.sort()

returnresult

main()

习题3.4答案(针对本书3.7节内容)

36.输出如下:

{1,2,3){3,4,5}{1,2,3,4,

温馨提示

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

评论

0/150

提交评论