python练习题答案Word格式.docx
《python练习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《python练习题答案Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
22.Python语句print(1,2,3,sep='
)的输出结果为____________。
(1:
2:
3)
23.表达式int(4**的值为____________。
(2)
24.达式sorted([111,2,33],key=lambdax:
-len(str(x)))的值为____________。
([111,33,2])
25.已知列表对象x=['
11'
2'
3'
],则表达式max(x)的值为___________。
26.表达式min(['
])的值为_________________。
27.已知列表对象x=['
],则表达式max(x,key=len)的值为___________。
28.语句x=(3,)执行后x的值为_______________。
((3,))
29.语句x=(3)执行后x的值为________________。
(3)
30.。
31.已知x={1:
2},那么执行语句x[2]=3之后,x的值为________________。
({1:
2,2:
3})
32.字典对象的_____________方法返回字典中的“键-值对”列表。
(items())
33.使用列表推导式得到100以内所有能被13整除的数的代码可以写作___________________________________。
([iforiinrange(100)ifi%13==0])
34.表达式3**2的值为_________。
(9)
35.表达式3*2的值为___________。
(6)
36.已知x=[3,5,7],那么执行语句x[len(x):
]=[1,2]之后,x的值为______________。
([3,5,7,1,2])
37.表达式list(zip([1,2],[3,4]))的值为________________________。
([(1,3),(2,4)])
38.已知x=[1,2,3,2,3],执行语句()之后,x的值为_____________。
([1,2,3,2])
39.表达式[xforxin[1,2,3,4,5]ifx<
3]的值为_____________________。
([1,2])
40.表达式[indexforindex,valueinenumerate([3,5,7,3,7])ifvalue==max([3,5,7,3,7])]的值为__________________。
([2,4])
41.(
42.已知path=r'
c:
\'
,那么表达式path[:
-4]+'
htm'
的值为__________。
\\'
43.表达式'
%d,%c'
%(65,65)的值为________。
65,A'
44.表达式'
Thefirst:
{1},thesecondis{0}'
.format(65,97)的值为______________________________。
97,thesecondis65'
45.表达式'
.join('
abcdefg'
.split('
cd'
))的值为______________。
ab:
efg'
46.表达式isinstance('
str)的值为____________。
(True)
47.表达式'
Helloworld.IlikePython.'
.find('
python'
)的值为________。
48.表达式'
'
abccc\n\n\nddd'
.split())的值为______________。
a,b,ccc,ddd'
49.已知x='
123'
和y='
456'
,那么表达式x+y的值为______________。
123456'
50.表达式'
abcab'
.replace('
a'
yy'
)的值为___________。
yybcyyb'
51.已知table='
.maketrans('
abcw'
xyzc'
),那么表达式'
Hellowworld'
.translate(table)的值为______________________。
Helloccorld'
52.]
53.已知x={'
b'
1,'
2},那么执行语句({‘a’:
3,‘d’:
4})之后,表达式sorted())的值为____________________。
([('
3),('
1),('
d'
4)])
54.已知x=list(range(20)),那么语句print(x[100:
200])的输出结果为_______________。
([])
55.表达式sorted({'
9,'
3,'
c'
78}.values())的值为_____________。
([3,9,78])
56.type(1+2*的结果是:
floatclass
二、阅读程序
1.写出下面代码的执行结果。
defJoin(List,sep=None):
return(sepor'
).join(List)
print(Join(['
]))
^
],'
))
答:
a,b,c
a:
b:
c
2.若k为整数,下述while循环执行的次数为:
9
k=1000
whilek>
1:
print(k)
k=koin(x,10)))
输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。
!
3.下面的代码输出结果为_____________。
defdemo():
x=5
x=3
demo()
print(x)
4.下面程序运行的结果为_______________。
([5,6,1,2,3,4])
defdemo(lst,k):
ifk<
len(lst):
%
returnlst[k:
]+lst[:
k]
lst=[1,2,3,4,5,6]
demo(lst,4)
5.下面程序运行的结果为_____appyNewYear!
H__________。
deffoo(s):
ifs=="
"
returns
else:
returns[1:
]+s[0]
—
print(foo('
HappyNewYear!
6.下面程序运行的结果是{1:
aa'
2:
bb'
3:
ff'
6:
dd'
87:
'
ee'
}。
l1=[1,2,3,6,87,3]
l2=['
cc'
]
d={}
forindexinrange(len(l1)):
d[l1[index]]=l2[index]
printd
7.下面程序运行的结果为[3,2][1,2].
list1=[1,2]
list2=list1[:
list1[0]=3
print(list1,list2)
8.下面程序运行的结果为恭喜,你已获得我公司的面试机会!
age,subject,college=(24,“计算机”,”非重点”)
if(age>
25andsubject=="
电子信息工程"
)or(college=="
重点"
andsubject=="
)or(age<
=28andsubject=="
计算机"
):
print("
恭喜,你已获得我公司的面试机会!
else:
print("
抱歉,你未达到面试要求"
9.下面程序运行的结果为
fornuminrange(2,10):
ifnum%2==0:
continue
print("
Findaoddnumer"
num)
答案:
Findaoddnumer3
Findaoddnumer5
Findaoddnumer7
Findaoddnumer9
10.—
11.下面程序打印结果:
foriinrange(1,7):
print('
*2*(6-i),end='
)
forjinrange(i,0,-1):
print(j,end="
"
print()
12.下面程序输入>
>
rev(‘Iloveyou’)返回值为youloveI
defrev1(s):
s=()
`
s1=‘’.join(reversed(s))
returns1
13.阅读程序,打印结果是1000
defaddInterest(balance,rate):
newBalance=balance*(1+rate)
balance=newBalance
defmain():
amount=1000
rate=
addInterest(amount,rate)
print(amount)
main()
14.阅读程序,打印结果是
defdemo(newitem,old_list=[]):
(newitem)
returnold_list
print(demo(‘a’))
print(demo(‘b’))
!
['
15.阅读程序,打印结果是
deffunc5(a,b,*c):
print(a,b)
lengthofcis%d,cis"
%len(c),c)
func5(1,2,3,4,5,6)
12
lengthofcis4,cis(3,4,5,6)
16.阅读程序,打印结果是,3,4)
@
defdemo(*para):
avg=sum(para)/len(para)
g=[iforiinparaifi>
avg]
return(avg,)+tuple(g)
print(demo(1,2,3,4))
17.阅读程序,打印结果是
deff(w=1,h=2):
print(w,h)
f()
¥
f(w=3)
f(h=7)
f(a=3)
32
17
错误
18.阅读程序,打印结果是
defsort(number1,number2):
ifnumber1<
number2:
~
returnnumber1,number2
returnnumber2,number1
n1,n2=sort(3,2)
print('
n1is'
n1)
n2is'
n2)
n1is2
n2is3
19.阅读程序,打印结果是1060
defdemo(m,n):
ifm>
n:
m,n=n,m
p=m*n
whilem!
=0:
r=n%m
n=m
m=r
1.return(n,p请补全代码:
x=eval(input("
请输入小于1000的整数:
k=2
whilex>
if:
print(k,end="
x=x
enter(30))
foriinrange(6,0,-1):
print()
inrange(6);
*‘(2*i-1)).center(5*n)
2.下面代码判断回文串,请补全代码:
s='
雾锁山头山锁雾'
low=0
high=
whilelow<
high:
【
#倒序和顺序不一样
print(s,"
不是回文"
low+=1
是回文串"
len(s)-1,s[low]!
=s[high],break,high-=1;
3.
输出右边图形,请补充程序:
Iamateacher!
Youarestudents!
='
*30)
统计信息'
.center(28))
print()
item_width=25
line=('
\n'
)+1
word=()
char=list(s)#包含空格、标点符号
w_num=0
forwinword:
w_num+=
%-*s%5d'
%(item_width-3,'
行数'
line))
%(,'
单词数'
len(word)))
%(item_width-10,'
字符数(包含空格)'
))
%(item_width-11,'
字符数(不包含空格)'
w_num))
-'
*30;
len(w);
item_width-4;
len(char)
4.
defdemo(t):
print([1])
line=[1,1]
foriinrange(2,t):
forjinrange(0,len(line)-1):
()
line=[1]+r+[1]
/
print(line)
demo()
print([1,1]),r=[],line[j]+line[j+1],10
三、编程题
1.编写程序,在D盘根目录下创建一个文本文件,并向其中写入字符串helloworld。
fp=open(r’D:
\’,‘a+’)
print(‘helloworld’,file=fp)
()
2.}
3.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
(提示:
使用切片。
importrandom
x=[(0,100)foriinrange(20)]
y=x[:
2]
(reverse=True)
x[:
2]=y
4.!
5.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。
再编写测试函数。
importmath
defIsPrime(v):
n=int(v)+1)
foriinrange(2,n):
ifv%i==0:
return'
No'
Yes'
print(IsPrime(77))
6.编写函数,模拟Python内置函数sorted(lst)。
defsorted(v):
t=v[:
r=[]
whilet:
tt=min(t)
(tt)
…
returnr
print(sorted([1,3,2,4])
7.编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。
y=x[0:
10]
?
x[0:
10]=y
y=x[10:
20]
x[10:
20]=y
x
y
x<
0<
=x<
5
5<
10
3x-5
10<
20
20<
=x
8.编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。
如果年份能被400整除,则为闰年;
如果年份能被4整除但不能被100整除也为闰年。
x=input('
Pleaseinputanintegerof4digitsmeaningtheyear:
x=eval(x)
ifx%400==0or(x%4==0andnotx%100==0):
9.编写程序,实现分段函数计算,如下表所示。
Pleaseinputx:
、
ifx<
0orx>
=20:
print(0)
elif0<
5:
print(x)
elif5<
10:
print(3*x-5)
elif10<
20:
print*x-2)
10.$
11.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同学,最后打印最高分、最低分、平均分、最高分同学。
scores={"
ZhangSan"
45,"
LiSi"
78,"
WangWu"
40,"
ZhouLiu"
96,"
ZhaoQi"
65,"
SunBa"
90,"
ZhengJiu"
WuShi"
99,"
DongShiyi"
60}
highest=max())
lowest=min())
average=sum())/len(scores)
highestPerson=[nameforname,scorein()if/score==highest]#分行
print(highest,lowest,average,highestPerson)
12.统计不及格的学生及成绩,要求:
给定一些学生姓名和成绩;
询问用户是否还需要输入更多的学生姓名和成绩,用户回答是就继续输入,继续询问;
打印所有补考学生名单和成绩。
d=[["
张三"
76],["
李四"
45],["
王五"
83],["
郑六"
66],['
54],['
68],['
89]]
s1=input("
输入数据YorN:
).strip()#去掉前后空格
whiles1=='
Y'
s2=input("
请输入学生及成绩(空格隔开)"
name,grade=()
([name,grade])
#d[name]=int(grade)
s1=input("
继续输入YorN:
).strip()
print(d)
不及格的名单:
forname,gradeind:
iffloat(grade)<
60:
姓名:
name,"
\t"
"
成绩:
grade)
13.由用户一个一个输入一个数值型列表,然后将每个元素逐一打印。
lst=[]
n=eval(input(”请输入数字个数:
”))
foriinrange(n):
number=eval(input(”请输入数字:
(number)
forvalueinlst:
print(value,end=’’)
14.
序列求和,n通过用户输入:
n=int(input(“请输入N的值:
s=0
fh=1
foriinrange(1,n+1):
s+=fh*1/i#求和语句
fh=-fh#正负交替
1-1/2+1/3-1/4...+(-1)^(n-1)/n="
s,i)
15.生成一个包含50个两位随机整数的列表,然后删除