python练习题-答案
别妄想泡我
570次浏览
2021年01月23日 02:27
最佳经验
本文由作者推荐
-高中英语日记
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
]
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