python练习题答案.docx

上传人:b****5 文档编号:4534385 上传时间:2022-12-01 格式:DOCX 页数:21 大小:154.51KB
下载 相关 举报
python练习题答案.docx_第1页
第1页 / 共21页
python练习题答案.docx_第2页
第2页 / 共21页
python练习题答案.docx_第3页
第3页 / 共21页
python练习题答案.docx_第4页
第4页 / 共21页
python练习题答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

python练习题答案.docx

《python练习题答案.docx》由会员分享,可在线阅读,更多相关《python练习题答案.docx(21页珍藏版)》请在冰豆网上搜索。

python练习题答案.docx

python练习题答案

Python练习题库

By郑红波2017-12-19

一、填空题

1.Python标准库math中用来计算平方根的函数是。

(sqrt)

2.在Python中表示空类型。

(None)

3.列表、元组、字符串是Python的(有序?

无序)序列。

(有序)

4.查看变量类型的Python内置函数是。

(type())

5.查看变量内存地址的Python内置函数是。

(id())

6.表达式[1,2,3]*3的执行结果为。

([1,2,3,1,2,3,1,2,3])

7.list(map(str,[1,2,3]))的执行结果为。

([1',2',3'])

8.已知x=3,并且id(x)的返回值为496103280,那么执行语句x+=6之后,表达式id(x)==

496103280的值为。

(False)

9.已知x=3,那么执行语句x*=6之后,x的值为。

(18)

10.表达式“[3]in[1,2,3,4]”的值为。

(False)

11.假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:

7]得到的值是

([6,7,9,11])

12.使用列表推导式生成包含10个数字5的列表,语句可以写为。

([5foriin

range(10)])

13.假设有列表a=['name','age','sex']和b=['Dong',38,'Male'],请使用一个语句将这两个列表的内

容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写

为。

(c=dict(zip(a,b)))

14.任意长度的Python列表、元组和字符串中最后一个元素的下标为。

(-1)

15.Python语句''.join(list('helloworld!

'))执行的结果是。

('helloworld!

')

16.转义字符’\n'的含义是。

(回车换行)

17.Python语句list(range(1,10,3))执行结果为。

([1,4,7])

18.切片操作list(range(6))[:

:

2]执行结果为。

([0,2,4])

19.表达式'ab'in'acbed'的值为。

(False)

20.Python3.x语句print(1,2,3,sep=':

')的输出结果为。

(1:

2:

3)

21.表达式int(4**0.5)的值为。

(2)

22.达式sorted([111,2,33],key=lambdax:

-len(str(x)))的值为。

([111,33,2])

23.已知列表对象x=['11','2','3'],则表达式max(x)的值为。

('3')

24.表达式min(['11','2','3'])的值为。

('11')

25.已知列表对象x=['11','2','3'],则表达式max(x,key=len)的值为。

('11')

26.语句x=(3,)执行后x的值为。

((3,))

27.语句x=(3)执行后x的值为。

(3)

28.已知x={1:

2},那么执行语句x[2]=3之后,x的值为。

({1:

2,2:

3})

29.字典对象的方法返回字典中的“键-值对”列表。

(items())

30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作

([iforiinrange(100)ifi%13==0])

31.表达式3**2的值为。

(9)

32.表达式3*2的值为。

(6)

33.已知x=[3,5,7],那么执行语句x[len(x):

]=[1,2]之后,x的值为。

([3,5,7,1,2])

34.表达式list(zip([1,2],[3,4]))的值为。

([(1,3),(2,4)])

35.已知x=[1,2,3,2,3],执行语句x.pop()之后,x的值为。

([1,2,3,2])

36.表达式[xforxin[1,2,3,4,5]ifx<3]的值为。

([1,2])

37.表达式[indexforindex,valueinenumerate([3,5,7,3,7])ifvalue==max([3,5,7,3,7])]的值为

([2,4])

38.已知path=「'c:

\test.html',那么表达式path[:

-4]+'htm'的值为。

('c:

\\test.htm')

39.表达式’%d,%c'%(65,65)的值为。

('65,A')

40.表达式'Thefirst:

{1},thesecondis{0}'.format(65,97)的值为

('Thefirst:

97,thesecondis65')

41.表达式':

'.join('abcdefg'.split('cd'))的值为。

('ab:

efg')

42.表达式isinstance('abcdefg',str)的值为。

(True)

43.表达式'Helloworld.IlikePython.'.find('python')的值为。

(-1)

44.表达式','.join('abccc\n\n\nddd'.split())的值为。

('a,b,ccc,ddd')

45.已知x='123'和y='456',那么表达式x+y的值为。

('123456')

46.表达式'abcab'.replace('a','yy')的值为。

('yybcyyb')

47.已知table=''.maketrans('abcw','xyzc'),那么表达式'Hellowworld'.translate(table)的值为。

('Helloccorld')

48.已知x={'b':

1,'a':

2},那么执行语句x.update({a':

3,d':

4})之后,表达式sorted(x.items())的值为。

([('a',3),('b',1),('d',4)])

49.已知x=list(range(20)),那么语句print(x[100:

200])的输出结果为。

([])

50.表达式sorted({'a':

9,'b':

3,'c':

78}.values())的值为。

([3,9,78])

51.type(1+2*3.14)的结果是:

floatclass

二、阅读程序

1.写出下面代码的执行结果。

defJoin(List,sep=None):

return(sepor',').join(List)

print(Join(['a','b','c']))

print(Join(['a','b','c'],':

'))

答:

a,b,c

a:

b:

c

2.若k为整数,下述while循环执行的次数为:

9

k=1000

whilek>1:

print(k)

k=k//2

3.写出下面代码的运行结果。

defSum(a,b=3,c=5):

returnsum([a,b,c])print(Sum(a=8,c=2))

print(Sum(8))

print(Sum(8,2))

答:

13

16

15

4.写出下列程序输出结果

i=1

whilei+1:

ifi>4:

print("%d"%i)

i+=1

break

print("%d"%i)

i+=1

i+=1

5.写出下面代码的运行结果。

defSum(*p):

returnsum(p)

print(Sum(3,5,8))

print(Sum(8))

print(Sum(8,2,10))

答:

16

8

20

6.下面程序的执行结果是。

(1)

s=0

foriinrange(1,101):

s+=i

else:

print

(1)

7.下面程序的执行结果是。

(1275)

s=0

foriinrange(1,101):

s+=i

ifi==50:

print(s)

break

else:

print

(1)

8.阅读下面的代码,输出结果为。

x=list(range(10))

forindex,valueinenumerate(x):

ifvalue==3:

x[index]=5

else:

print(x)

答:

将列表x中值为3的元素修改为5。

9.阅读下面的代码,解释其功能:

>>>importstring

>>>x=string.ascii_letters+string.digits

>>>importrandom

>>>print(".join(random.sample(x,10)))

答:

输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。

10.下面的代码输出结果为。

(3)defdemo():

x=5

x=3

demo()

print(x)

11.下面程序运行的结果为。

([5,6,1,2,3,4])

defdemo(lst,k):

ifk

returnlst[k:

]+lst[:

k]

lst=[1,2,3,4,5,6]

demo(lst,4)

12.下面程序运行的结果为appyNewYear!

H。

deffoo(s):

ifs=="":

returns

else:

returns[1:

]+s[0]

print(foo('HappyNewYear!

'))

13.下面程序运行的结果是{1:

'aa',2:

'bb',3:

'ff,6:

'dd',87:

'ee'}。

11=[1,2,3,6,87,3]

12=['aa','bb',‘cc','dd','ee','ff']

d={}

forindexinrange(len(l1)):

d[l1[index]]=l2[index]

printd

14.下面程序运行的结果为[3,2][1,2].

list仁[1,2]

list2=list1[:

:

]

list1[0]=3

print(list1,list2)

15.下面程序运行的结果为恭喜,你已获得我公司的面试机会!

age,subject,college=(24,"计算机”,”非重点”)

if(age>25andsubject=="电子信息工程")or(college=="重点"andsubject=="电子信息工程")or(age<=28andsubject=="计算机"):

print("恭喜,你已获得我公司的面试机会!

")

else:

print("抱歉,你未达到面试要求")

16.下面程序运行的结果为_

fornuminrange(2,10):

ifnum%2==0:

continue

print("Findaoddnumer",num)

1

21

321

4321

54321

654321

答案:

Findaoddnumer3

Findaoddnumer5

Findaoddnumer7

Findaoddnumer9

17.下面程序打印结果:

foriinrange(1,7):

print(''*2*(6-i),end=”)

forjinrange(i,0,-1):

print(j,end="")

print()

18.下面程序输入>>>rev(floveyou'返回值为youloveI

defrev1(s):

s=s.split()

s1=‘'.join(reversed(s))

returns1

19.阅读程序,打印结果是1000

defaddInterest(balance,rate):

newBalance=balance*(1+rate)

balance=newBalanee

defmain():

amount=1000

rate=0.05

addInterest(amount,rate)

print(amount)

main()

20.阅读程序,打印结果是

defdemo(newitem,old」ist=[]):

old_list.append(newitem)returnold」ist

defmain():

print(demo(‘a'))

print(demo(‘b'))

main()

答案:

['a']

['a','b']

21.阅读程序,打印结果是

deffunc5(a,b,*c):

print(a,b)

print("lengthofcis%d,cis"%len(c),c)

func5(1,2,3,4,5,6)

答案:

12

lengthofcis4,cis(3,4,5,6)

22.阅读程序,打印结果是(2.5,3,4)

defdemo(*para):

avg=sum(para)/len(para)

g=[iforiinparaifi>avg]return(avg,)+tuple(g)print(demo(1,2,3,4))

23.阅读程序,打印结果是

deff(w=1,h=2):

print(w,h)

f()

f(w=3)

f(h=7)

f(a=3)

答案:

12

32

17

错误

24•阅读程序,打印结果是

defsort(numberl,number2):

ifnumber1

returnnumberl,number2

else:

returnnumber2,numberl

n1,n2=sort(3,2)

print('n1is',n1)

print('n2is',n2)

答案:

n1is2

n2is3

25•阅读程序,打印结果是1060

defdemo(m,n):

ifm>n:

m,n=n,m

p=m*n

whilem!

=0:

r=n%m

n=m

m=r

return(n,p//n)

print(demo(20,30))

三、程序填空题

1.下面代码的功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。

请把

缺少的代码补全。

importrandom

x=[random.(1,20)foriinrange()]

r=dict()

foriinx:

r[i]=r.get(i,)+1

fork,vinr.items():

print(k,v)

答:

分别填写randint、50、0

2.生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高

频字符,以5个位右对齐输出个数。

请把缺少的代码补全。

importrandomx=string.ascii_letters+string.digits+string.punctuation

y=[foriinrange(1000)]

d=dict()

forchiny:

d[ch]=d.get(ch,0)+1

items=list(d.items())

items.sort(,reverse=True)

foriinrange(20):

word,count=items[i]

print(%(word,count))

答案:

importstring、random.choice(x)、key=lambdax:

x[1]、“%-15s%5d”

3.用户输入5,打印如右图字符金字塔图形,请补全代码:

n=input('输入行数:

')foriinrange(1,n+1):

print(,end=‘')

forjinrange(1,2*i):

■I

print(&,)

print()

答案:

n=int(n),''*(n-i),end="

4.质因数分解,如输入60,则得到60=2*2*3*5.请补全代码:

x=eval(input(”请输入小于1000的整数:

"))

k=2whilex>1:

if

print(k,end="")

x=x//k

ifx>1:

print("*",end="")

else

答案:

print(x,"=",end=""),x%k==0,k+=1

5.验证哥德巴赫猜想:

一个大于等于6的偶数可以表示为两个素数之和,请补全代码。

importmath

x=eval(input(输入一个数"))

whilex<6orx%2==1:

#大于6的偶数

x=eval(input(输入一个数"))

forn1in:

m1=int(math.sqrt(n1)+1)

foriinrange(2,m1):

#2-sqrt(n1)

if:

break

else

m2=math.ceil(math.sqrt(n2)+1)forjinrange(2,m2):

ifn2%j==0andj

else:

print(x,'=',n1,'+',n2)

答案:

range(3,x//2,2),n1%i==0,n2=x-n1,break

6.

右对齐九九乘法表,请补全代码:

+

**+++

*******

*********

二二二二+二

呷*+**

答案:

forjinrange(1,i+1):

'%8s'%(s1),end="

7.输出右边图形,请补充程序:

fori:

print(('*'*(center(30))

foriinrange(6,0,-1):

print()

答案:

inrange(6);('*‘(21)).center(5*n)

8.下面代码判断回文串,请补全代码:

s='雾锁山头山锁雾’

low=0

high=

whilelow

if:

#倒序和顺序不一样

print(s,"不是回文")

low+=1

else:

print(s,"是回文串")

答案:

len(s)-1,s[low]!

=s[high],break,high-=1;

9.输出右边图形,请补充程序:

s="'lamateacher!

Youarestudents!

"'

print('='*30)

print('统计信息'.center(28))

print()

item_width=25

line=s.count('\n')+1

word=s.split()

char=list(s)#包含空格、标点符号

w_num=0

forwinword:

w_num+=

print('%-*s%5d'%(item_width-3,'行数',line))

print('%-*s%5d'%(,'单词数',len(word)))

print('%-*s%5d'%(item_width-10,'字符数(包含空格)',))

print('%-*s%5d'%(item_width-11,'字符数(不包含空格)',w_num))

print('-'*30)

答案:

'-'*30;len(w);item_width-4;len(char)

10.输出右边图形,请补充程序:

[1]

【1,1]

[1,2,1]

[1,3,3,1]

[1,4,6,4,1]

[1,5,10,10,5,1]

[1,6,15,20,15,6,1]

[1,7,21,35,35,21,7,1]

[1,8,28,56,70,56,28,8,1]

[1,9,36,84,126,126,84,36,9,1]

defdemo(t):

print([1])

line=[1,1]foriinrange(2,t):

forjinrange(0,len(line)-1):

r.append()

line=[1]+r+[1]

print(line)

demo()

答案:

print([1,1]),r=[],line[j]+line[j+1],10

四、编程题

1.编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串helloworld。

答:

fp=open(r"D:

\test.txt',a+')

print(helloworld),file=fp)

fp.close()

2.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。

(提示:

使用切片。

答:

importrandom

x=[random.randint(0,100)foriinrange(20)]

print(x)

y=x[:

:

2]

y.sort(reverse=True)

x[:

:

2]=y

print(x)

3.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。

再编写测

试函数。

答:

importmath

defIsPrime(v):

n=int(math.sqrt(v)+1)

foriinrange(2,n):

ifv%i==0:

return'No'

else:

return'Yes'

print(lsPrime(77))

4.编写函数,模拟Python内置函数sorted(lst)。

答:

defsorted(v):

t=v[:

:

]

r=[]

whilet:

tt=min(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1