python练习题
吴辉呆呆吴辉
一、单选题 ( 本大题 10 道小题 ,每小题 1.5 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1.已知 x, y = 1, 2,那么执行x, y = y, x 之后,x的值为____D_____。
A.1
B.(1, 2)
C.不符合语法,报错
D.2
2.已知 x = ‘abcdefg’,若要得到’defgabc’结果,应使用表达式______A____________。
A.x[3:] + x[:3]
B.x[:3] + x[:3]
C.x[3:] + x[3:]
D.x[:3] + x[3:]
3.执行结果为[1, 2, 3, 1, 2, 3, 1, 2, 3] 的表达式是__________D__________。
A.[1,2,3]+ [1,2,3]
B.[‘1’,‘2’,‘3’]+ [‘1’,‘2’,‘3’]+ [‘1’,‘2’,‘3’]
C.[1, 2, 3]**3
D.[1, 2, 3]*3
4.表达式 (1, 2, 3)+(4, 5) 的值为________B_________。
A.(5,7,3)
B.(1, 2, 3, 4, 5)
C.(1,6,8)
D.(15,)
5.下列关于字典对象方法的描述,不正确的是___D____。
A.方法get()可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回None
B.方法items()返回字典中的“键-值对”列表
C.方法keys()返回字典的“键”列表
D.“字典[键]”的表达式(例如dict[‘name’])的结果与方法get()的结果完全相同
6.Python的分支语句可使用关键字___C___。
A.then
B.else if
C.elif
D.elseif
7.在循环语句中,____A_____语句的作用是提前结束所在循环体。
A.break
B.while
C.for
D.continue
8.已知有函数定义
def demo(x):
return x**2
则该函数用lambda表达式应表示为____C____。
A.x:lambda x**2
B.x:x**2(lambda)
C.lambda x:x**2
D.x**2: lambda x
9.下面代码对文本文件“text.txt”操作后,变量a的数据类型是___A____。
MyFile=open(‘text.txt’,‘r’)
a=MyFile.readline()
A.字符串
B.列表
C.元组
D.字典
10.描述对象静态特性的数据称为____C____。
A.方法
B.类型
C.属性
D.消息
二、程序填空题 ( 本大题 2 道小题 ,每空 2.5 分,共 20 分)。
- 程序功能为:输入十进制整数和欲转换的进制数r,将十进制转换为r进制。编程思想为:调用函数DToR,逐位求模。若该位为大于9的数,则以字母代表(提示:大写字母’A’的ASCII码值等于65);若该位为9以下的数,则转换为字符格式。从低位至高位连接字符串并返回结果。
def DToR(m,r):
t=__(1)’’____
while m!=0 and r!=0:
c=m % r #求模
if (c>9):
t=chr(c-10+65)+t
else:
t=_____(2)str(c)_____+t
m = m // r #整除
return_____(3)t_____
while True:
ipt=input("请输入十进制整数('q' 退出程序):\n")
if ipt=='q':
break
r=int(input("请输入欲转换进制(如2,8,16等):\n"))
rst=DToR(______(4)int(ipt)______,r)
print('将%s转换为%d进制的结果为:%s' %(ipt,r,rst))
- 某班男女两队同学各若干人,已按身高由低到高存放在两个列表中。体育课排队欲由男、女两队合为一队。请保持从低到高的顺序不变,将合并队列的结果按格式"身高(性别)"输出。如下图所示。
boy = [1.69, 1.72, 1.78, 1.83, 1.89]
girl = [1.61, 1.64, 1.65, 1.72]
i = j = 0
print('男队身高:', end='')
for b in boy:
print(b, end=' ')
print('\n女队身高:', end='')
for g in girl:
print(g, end=' ')
print('\n合并后:', end='')
while i < len(boy) and j < len(girl):
if boy[i] < girl[j]:
print(____(1)boy[i]____, '(男)', sep='', end = ' ')
i += 1
else:
print(____(2)girl[j]____, '(女)', sep='', end = ' ')
j += 1
while i < ____(3)len(boy)____:
print(boy[i], '(男)', sep='', end = ' ')
i += 1
while j < len(girl):
print(girl[j], '(女)', sep='', end = ' ')
j = ____(4)j+1____
三、程序调试题********(********本大题3道小题,********各有3处语法或逻辑错误********,根据题目功能描述,在C:\KS\相应程序中,********不增删语句,********调试修改错误,实现功能。请在改正过的语句后面以“********####********”作为标记。********每题10分,共30分********)
- 调试题1
某理财产品的每日收益率如下表所示,按日计算收益(不计复利)。
天数 | 每日收益率 |
---|---|
1≤T<90 | 0.00015 |
90≤T<180 | 0.00020 |
180≤T | 0.00025 |
c:\ks\程序调试题1.py程序的功能:输入理财产品金额和存款天数,计算预计收益金额。
s = input('请输入购买理财产品金额:')
money=float(s)
s = input('请输入存款天数:')
days = int(s)
if 1 <= days < 90:
rate = 0.00015####
elif 90 <= days < 180:####
rate = 0.00020
else:
rate = 0.00025
income = money * rate *days####
print('收益金额为:',income)
2.调试题2
c:\ks\程序调试题2.py程序的功能:输入正整数作为行数,用字母输出每行固定4个字符的平行四边形图案。结果如下图所示。
s = input('输入行数:')
line=int(s)
for i in range(line):####
space=line-1-i
print(' '*space, end = '')####
ch = chr(ord('A') + i)
print(ch*4) ####
- 调试题3
c:\ks\程序调试题3.py程序的功能:某共享单车的收费标准按用户类型不同计价,合作院校师生:0.5元/小时,其他用户:1元/小时。编程实现根据用户类型和使用时间计算支付费用。
p=[0.5,1.0] #单价
tn=['合作院校师生','其他用户']
while True:
sel=input('请输入用户选择:0为合作院校师生,1为其他用户,输入其他字符为退出')
if sel not in (str(0),str(1)):####
break
time=float(input('请输入骑行时间'))####
fee=p[int(sel)] * time
s='{}骑行{}小时,收费{}元'.format(tn[int(sel)], time, fee)
print(s)####
四、编程题(共35分)
1.数据分析题(17分):
“C:/素材/BP.txt”是以逗号分隔的日期、血压、心率记录数据文本文件(局部如下图所示)
请找出并打印收缩压<140而心率>75的记录,并统计收缩压的总平均值(保留3位小数)。运行结果(局部)如图所示。程序保存在C:\KS目录下,名为****4_1.py**** ,不必生成.exe文件。
数据分析题运行结果局部图
txt = open('C:/素材/BP.txt', 'r')
nr = txt.readlines()
list = []
for line in nr:
line = line.strip('\n')
lists = line .split(',')
list.append(lists)
ans = 0
for a in range(1, len(list)):
if (int(list[a][1]) < 140) and (int(list[a][3]) > 75):
print('符合条件的计入为:时间:' + str(list[a][0]) + ',收缩压:' + str(list[a][1]) + ',舒张压:' + str(list[a][2]) + ',心率:' + str(list[a][3]))
ans = ans + int(list[a][1])
print('收缩压平均值:' + str(ans/(len(list)-1)))
a = input()
2.运算题(18分):
计算结果由两部分构成:
(1)输入要计算的多项式项数值n(1≤n<10),计算下列多项式的前n项之和。
(2)“c:\素材\AIfuna-1.0-py3-none-any.whl”是某第三方智能算法包,其中包含两个函数funa(x)和funb(x),传入和输出均为数值类型。请导入第三方包aifuna,并计算aifuna.funb(n)的结果(n为上述多项式项数)。
将两部分计算结果求和输出为总结果 s+ aifuna.funb(n)。程序保存在c:\ks目录下,名为 ****4_2.py****。
计算题运行结果图
import aifuna
n = int(input("请输入正整数(输入0退出程序):"))
s = 0
for i in range(1, n + 1):
s = s + ((-1) ** i) * ((2 * i - 1) / ((2 * i + 1)*(i + 1)))
print('该多项式前 ' + 'n' + ' 项之和为 ' + str(s))
ans = s + aifuna.funb(n)
print('总和为 ' + str(ans))
本文地址:https://blog.csdn.net/qq_43307268/article/details/109880013