python练习题-答案

巡山小妖精
717次浏览
2021年01月23日 02:27
最佳经验
本文由作者推荐

-高中英语日记

2021年1月23日发(作者:识记生字的方法)

Python
练习题库

By
郑红波

2017
-
12
-
19

一、

填空题

1.

Python
标准库
math中用来计算平方根的函数是
__________
。
(
sqrt
)

2.

在
Python
中
_________ _
表示空类型。
(
None
)

3.

列 表、元组、字符串是
Python
的
_________(
有序?无序
)
序列。
(有序)

4.

查看变量类型的
Py thon
内置函数是
________________
。
(
typ e()
)

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,
1 7]
,那么切片
aList[3:7]
得到的值是
____________ __________
。
(
[6, 7, 9, 11]
)

12.

使用列表推导式生成包含
10
个数字
5
的 列表,语句可以写为
_______________
。
(
[5
for
i
in
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('hello world!'))< br>执行的结果是
____________________
。
(
'he llo world!'
)

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.

Python 3.x
语句

print(1, 2, 3, sep=':')
的输出结果为
____________
。
(
1:2:3
)

21.

表达式

int(4**0.5)
的值为
____________
。
(
2
)

22.

达式

sorted([111, 2, 33], key=lambda x:
-
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< br>的值为
________________
。
(
3
)

28.

已知

x = {1:2}
,那么执行语句

x[2] = 3
之后,
x
的 值为
________________
。
(
{1: 2, 2: 3}
)

29.

字典对象的
_____________
方法返回字典中的“键
-
值对”列表。
(
items()
)

30.

使
用
列
表
推
导
式
得
到
100
以
内
所
有
能
被< br>13
整
除
的
数
的
代
码
可
以
写
作
___________________________________< br>。
(
[i for i in range(100) if i%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
的值为_____________
。
(
[1, 2, 3, 2]
)

36.

表达式

[x for x in [1,2,3,4,5] if x<3]
的值为
_____________________
。
(
[1, 2]
)

37.

表达式

[index
for
index,
value
in
enumerate([3,5,7,3,7])
if
value
==
max([3,5,7,3,7])]
的值为
__________________
。
(
[2, 4]
)

38.

已知

path = r'c:'
,那么表达式

path[:
-
4]+'htm'
的值为
__________
。
(
'c:'
)


39.

表达式

'%d,%c' % (65, 65)
的值为
________
。
(
'65,A'
)

40.

表达式

'The first:{1}, the second is {0}'.format(65,97)
的值为
__________ ____________________
。
(
'The first:97, the second is 65'
)

41.

表达式

':'.join('abcdefg'.split('cd'))
的值为
___ ___________
。
(
'ab:efg'
)

42.

表达式

isinstance('abcdefg', str)
的值为
____________
。
(
True
)

43.

表达式

'Hello world. I like Python.'.find('python')
的值为
________
。
(
-
1
)

44.

表达式

','.join('a




b

cccnnnddd




'.split())
的值为
______________
。
(
'a,b,ccc,ddd'
)

45.

已知

x = '123'
和

y = '456'
,那么表达式

x + y
的值为
_________ _____
。
(
'123456'
)

46.

表达式

'abcab'.replace('a','yy')
的值为< br>___________
。
(
'yybcyyb'
)

47.

已知

table
=
''.maketrans('abcw',
'xyzc')
,那么表达式

'Hellow
world'.translate(table)
的值为
______________________
。
(
'Helloc corld'
)

48.

已知
x = {'b':1, 'a':2}
,那么执行语句
({‘a’:3, ‘d’:4})
之后,表达式
sorted(())
的值为
____________________
。
(
[('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)
的结果是:




















float class


二、

阅读程序

1.

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

def Join(List, sep=None):







return (sep or ',').join(List)

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

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

答:

a,b,c

a:b:c

2.

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



9






k=1000

while k>1:






print(k)






k=k//2


3.

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

def Sum(a, b=3, c=5):





return sum([a, b, c])

print(Sum(a=8, c=2))

print(Sum(8))

print(Sum(8,2))

答:

13

16

15


4.

写出下列程序输出结果

i=1

while i+1:


if i>4:



print(



i+=1




break


print(


i+=1


i+=1

5.

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

def Sum(*p):





return sum(p)

print(Sum(3, 5, 8))

print(Sum(8))

print(Sum(8, 2, 10))

答:

16

8

20


6.

下面程序的执行结果是
__________________
。
(
1
)

s = 0

for i in range(1,101):





s += i

else:

print(1)


7.

下面程序的执行结果是
______________
。(
1275
)

s = 0

for i in range(1,101):





s += i





if

i == 50:









print(s)









break

else:





print(1)

8.

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

x = list(range(10))

for index, value in enumerate(x):





if value == 3:





x[index] = 5

else:





print(x)

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

9.

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
















































>>> import string

>>> x = _letters +

>>> import random

>>> print(''.join((x, 10)))

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


10.

下面的代码输出结果为
_____________。
(
3
)

def demo():





x = 5


x = 3

demo()

print(x)

11.

下面程序运行的结果为
_______________
。
(
[5, 6, 1, 2, 3, 4]
)

def demo(lst, k):


if k


return lst[k:]+lst[:k]


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

demo(lst,4)

12.

下面程序运行的结果为
_____ appy New Year!H__________
。

def foo(s):


if s==



return s


else:



return s[1:]+s[0]

print (foo('Happy New Year!'))

13.

下面程序运行的结果是
{1:'aa',2:'bb',3:'ff',6:'dd',87: 'ee'}














。

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

l2
=[
'aa'
,
'bb'
,
'cc'
,
'dd'
,
'ee'
,
'ff']

d
={}

for
index
in
range
(
len
(
l1
)):

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

print
d

14.

下面程序运行的结果为


[3
,
2] [1
,
2]




























.

list1=[1,2]

list2=list1[::]


list1[0]=3


print(list1,list2)

15.

下面程序运行的结果为






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













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

if
(age
>
25
and
subject==
电子信息工程

or
(college==
重点

and
subject==
电子信息工程

)
or
(age<=28 and subject==
计算机






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

else:

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


16.

下面程序运行的结果为




















for num in range(2,10):










if

num%2 == 0:

























continue










print(

答案:

1
Find a odd numer 3

2 1
3 2 1
Find a odd numer 5

4 3 2 1
Find a odd numer 7

5 4 3 2 1
Find a odd numer 9

6 5 4 3 2 1
17.

下面程序打印结果:


for i in range(1, 7):










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









for j in range(i, 0,
-
1):













print(j, end =









print()


18.

下面程序输入
>>>rev(‘I love you’)
返回值为



you love I












def rev1(s):





s=()











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

return s1

19.

阅读程序,打印结果是


















1000



















def addInterest(balance,rate):





newBalance=balance*(1+rate)





balance=newBalance

def main():





amount=1000





rate=0.05





addInterest(amount,rate)





print (amount)

main()

20.

阅读程序,打印结果是






































def demo(newitem,old_list=[]):





old_(newitem)





return old_list

def main():





print(demo(‘a’))








print(demo(‘b’))

main()

答案:
['a']

['a', 'b']

21.

阅读程序,打印结果是






































def func5(a, b, *c):




print(a,b)




print(

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

答案:
1 2







length of c is 4,c is (3, 4, 5, 6)

22.

阅读程序,打印结果是

(2.5, 3, 4)

































def demo(*para):





avg = sum(para)/len(para)





g = [i for i in para if i>avg]





return (avg,)+tuple(g)

print(demo(1,2,3,4))


23.

阅读程序,打印结果是


































def f(w=1,h=2):




print(w,h)

f()

f(w=3)


f(h=7)

f(a=3)

答案:
1 2







3 2







1 7







错误

24.

阅读程序,打印结果是


































def sort(number1,number2):


if number1


return number1,number2


else:







return number2,number1


n1,n2=sort(3,2)

print('n1 is ',n1)

print('n2 is ',n2)

答案:
n1 is

2







n2 is

3

25.

阅读程序,打印结果是

10 60
































def demo(m, n):





if m>n:









m, n = n, m





p = m*n





while m!=0:









r = n%m









n = m









m = r





return (n,p//n)

print( demo(20, 30))


三、程序填空题

1.

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

import random

x = [random.____________(1,20) for i in range(_______)]

r = dict()

for i in x:





r[i] = (i, _____)+1

for k, v in ():

print(k, v)

答:

分别填写
randint
、
50
、
0

2.

生成包含
1000
个随机字符的字符串,
然后统计前
20
个高频字符,
最后以
15
个位左对齐输出高
频字符,以
5
个位右对齐输出个数。请把缺少的代码补全。


import
random


















x = _letters + + ation

y = [

















for
i
in
range(1000)]

d = dict()


for
ch
in y
:








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




i
tems=list(())



















(


















,reverse=
True
)


for
i
in
range(20):










word,count = items[i]










print(















%(word,count))


答案:
import
string
、


(x)
、
key=
lambda
x:x[1]
、
“
%
-
15s%5d
”


3.

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

n=input('
输入行数:
')























for i in range(1,n+1):





print(












,end=‘ ')





for j in range(1,2*i):









print('&',











)













print()

答案:
n=int(n)
,
' '*(n
-
i)
,
end=''


4.

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

x=eval(input(

请输入小于
1 000
的整数:

))

k=2




































while

x>1:





if































:










print(k,end=

)










x = x//k










if
x >1:














print(

,end=

)









else
:




































答案:
print(x,
,end=

)
,
x % k==0
,
k += 1


5.

验证哥德巴赫猜想:一个大于等于
6
的偶数可以表示为两个素数之和,请补全代码。

import math

x=eval(input(
“
输入一个数
”
))

while
x<6
or
x%2==1:













#
大于
6
的偶数





x=eval(input(
“
输入一个数
”
))

for
n1
in



























:










m1=int((n1)+1)





for
i
in
range(2,m1):








#2
-
sqrt(n1)









if




















:













break





else
:










































































m2=((n2)+1)









for
j
in
range(2,m2):













if
n2%j==0
and
j

-高中英语日记


-高中英语日记


-高中英语日记


-高中英语日记


-高中英语日记


-高中英语日记


-高中英语日记


-高中英语日记