文章目录
- 前言
- 单选题
- 程序填空题
- 函数题
- 编程题
- 熬夜送书 第三期
前言
博主也是第一次接触到python语言,在考试前过了一遍python语法,因为有Java基础学习起来相对比较轻松,学校考的题相对简单一些,也是PTA上机考试,大概30分钟做完就提交了,贴一张成绩单:
单选题
1.一行中输入两个整数语句:
a, b=input("输入两个整数:").split()
的执行步骤不包含:
A.调用input函数,在屏幕输出"输入两个整数:",并从键盘读入一行字符
B.input函数返回所读入的字符串;
C.针对所读入的字符串,执行split操作,得到两个子串
D.把第一个子串转换为整数后,赋值给变量a,把第二个子串转换为整数后,赋值给变量b
2.与关系表达式x==0等价的表达式是
A.not x
B.x!=1
C.x=0
D.x
3.已知x=10,y=20,z=30;以下语句执行后,x,y,z的值是( )。
if x<y:
z=x
x=y
y=z
A.10,20,30
B.10,20,20
C.20,10,10
D.20,10,30
4.下面代码执行结束时,s的值是( )。
A.Hello
B.H
C.W
D.o
5.Python语句a=“Programming”[1:-1],则a的结果是()。
A.‘Programmin’
B.‘rogramming’
C.‘rogrammin’
D.‘Programming’
6.a=[2,3,4,1,6,9,8],执⾏b = [index for index, value in enumerate(a) if value > 3]后,b=( )。
A.[(2,4),(4,6),(5,9),(6,8)]
B.[3,5,6,7]
C.[4,6,9,8]
D.[2,4,5,6]
7.现有一元组:
x = (1, 2, 3, 4)
以下对元组操作正确的是( )。
A.y = x[0]
B.y = x(0)
C.x[0] = 0
D.x(0) = 0
8.可以使用____运算符来确定一个键是否在字典中。
A.&
B.in
C.^替换为正确项
D.?
9.字符串的strip方法的作用是( )。
A.删除字符串首尾指定的字符
B.删除字符串末尾指定的字符
C.删除字符串头部指定的字符
D.通过指定分隔符对字符串切片
10.关于文件关闭的 .close() 方法,以下选项中描述正确的是
A.文件处理遵循严格的 “打开 —操作 —关闭 ”模式
B.文件处理后可以不用 .close() 方法关闭文件,程序退出时会默认关闭
C.文件处理结束之后,一定要用 .close() 方法关闭文件
D.如果文件是只读方式打开,仅在这种情况下可以不用 .close() 方法关闭文件
11.d:\有一个二进制文件file1.dat,以可读可写方式打开该文件,如果写入新的内容,内容会被追加到文件尾部。以下哪个语句是正确的?
A.f=open(“d:\file1.dat”,“rb”)
B.f=open(“d:\file1.dat”,“wb”)
C.f=open(“d:\file1.dat”,“ab+”)
D.f=open(“d:\file1.dat”,“wb+”)
12.Python 类中包含一个特殊的变量(),它表示当前对象自身,可以访问类的成员。
A.self
B.me
C.this
D.there
13.以下选项中,对于函数的定义错误的是 ( )。
*A.def vfunc(a,b):
B.def vfunc(a,b):
C.def vfunc(a,*b):
D.def vfunc(a,b=2):
14.下列代码中绘制散点图的是()。
A.plt.scatter(x,y)
B.plt.plot(x,y)
C.plt.legend(‘upper left’)
D.plt.xlabel("散点图’)
15.当try语句中没有任何错误信息时,一定不会执行( )语句。
A.try
B.else
C.finally
D.except
程序填空题
2.1输入多组数,求每组数的和。
输入:第一行是整数m,m>=1,接下来就是m组数据
对于每组数据:第一行是整数n,n>= 1, 接下来是n行,每行一个整数
输出:对每组数据,输出后面那n个整数的和
m = int(input())
for i in range(m): #m组数据
n = int(input())
total = 0
for j in range(n): #input n次
num = int(input())
total = total + num
print(total)
2.2 购物车
现有列表记录商品名称和价格如下:
goods=[
{"name":"电脑","price":4999},
{"name":"鼠标","price":80},
{"name":"游艇","price":200000},
{"name":"别墅","price":2000000},
]
要求:
要求用户输入总资产,例如: 20000,输出所有商品序号和商品列表, 每行一种商品,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示’账户余额不足,先去赚钱吧!‘,否则,输出’恭 喜你成功购买一个某商品’。
输入格式:第一行输入一个正整数,代表总资产;显示商品列表后再输入一个正整数,代表商品序号。
输出格式:如示例
输入示例:10000
输出示例:
0 电脑
1 鼠标
2 游艇
3 别墅
输入示例: 1
输出示例: 恭喜你成功购买一个鼠标
goods=[
{"name":"电脑","price":4999},
{"name":"鼠标","price":80},
{"name":"游艇","price":200000},
{"name":"别墅","price":2000000},
]
#**********SPACE**********
money = int(input())
for i in range(len(goods)):
print(i,goods[i].get('name'))
choice = int(input())
#**********SPACE**********
dj = goods[choice].get('price')
#**********SPACE**********
if dj <= money:
print('恭喜你成功购买一个{}'.format(goods[choice].get('name')))
else:
print('账户余额不足,先去赚钱吧!')
2.3 python正则表达式-匹配多个单词
请你使用字符组匹配Ruby、Rube、ruby、rube。
需要匹配的
ruby
rube
Ruby on Rails
Rube on Rails
不能匹配的
rubb on rails
ruyye on rails
ruee
hello world
程序写在这里。下面的空分值是3分。
例如:
import re
contents='''
ruby
rube
Ruby on Rails
Rube on Rails
rubb on rails
ruyye on rails
ruee
hello world
'''
p = re.compile(r'[Rr]ub[ye]')
for line in p.findall(contents):
print(line)
2.4 使用函数求区间内素数和
使用函数求区间内素数和。写一个函数fun(m,n)用于求区间[m, n]内所有素数, 用户输入正整数m,n(1<=m<n)以空格间隔。
提示:找到的素数存入列表中。
输入示例:
1 10
输出示例:
17
#**********SPACE**********
def fun (m,n):
ls=[]
for i in range(m,n+1):
if i < 2:
continue #0和1不是素数
for j in range(2, i):
if i % j == 0:
#**********SPACE**********
break
else:
ls.append(i)
#**********SPACE**********
return ls
m,n = map(int,input().split())
print(sum(fun(m,n)))
函数题
6-1 编写函数求短语的缩写词
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。
函数接口定义:
acronym(phrase);
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
/* 请在这里填写答案 */
phrase=input()
print (acronym(phrase))
输入样例:
central processing unit
输出样例:
CPU
def acronym(phrase):
lis = phrase.split(" ")
s = ""
for i in lis:
if i != "":
s += i[0]
s = s.upper()
return s
6-2 sdut-使用函数统计数字字符在某数字中出现的个数
设计函数,统计数字字符在某数字中出现的个数。
函数接口定义:
CountDigit(number,digit )
其中,number是整数,digit为[1, 9]区间内的整数数值;返回number中digit出现的次数。
裁判测试程序样例:
/* 请在这里填写答案 */
number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit 2 in "+str(number)+":",count)
输入样例:
在这里给出一组输入。例如:
-21252 2
输出样例:
Number of digit 2 in -21252: 3
def CountDigit(number,digit ):
if(number < 0):
number *= -1
count = 0
while number != 0:
if(number % 10 == digit):
count += 1
number //= 10
return count
6-3 整数数位和(高教社,《Python编程基础及应用》习题8-3)
编写一个函数,该函数接受一个正整数作为参数,返回该整数的各位数字之和。
函数接口定义:
def digitSum(v)
v为输入整数(正整数);
函数返回一个整数,其值为v的各位数字之和。
裁判测试程序样例:
a = int(input())
print(digitSum(a))
输入样例:
291
输出样例:
12
def digitSum(v):
sum = 0
while v > 0:
sum += (v % 10)
v //= 10
return sum
6-4 定义并实现身体质量指数类(高教社,《Python编程基础及应用》习题9-3)
按图施工,设计下述BMI类,用于计算身体质量指数。该指数等于体重(kg)除以身高(米)的平方。
相应的判定标准如下图所示:
BMI类接口定义:
class BMI:
...
其中,name为姓名,age为年龄,height为身高,单位为米,weight为体重,单位为kg。
getBMI()函数返应计算所得的身体质量指数;
getStatus()返回评价结果,其值应为超轻/标准/超重/肥胖之一。
裁判测试程序样例:
sName = input() #输入姓名
iAge = int(input()) #输入年龄
fHeight = eval(input()) #输入身高,预期为浮点数,单位米
fWeight = eval(input()) #输入体重,预期为浮点数,单位千克
bmi=BMI(sName,iAge,fHeight,fWeight) #实例化BMI类
print("Name:",bmi.name)
print("Age:",bmi.age)
print("BMI = %.3f" % bmi.getBMI())
print("Result =",bmi.getStatus())
class BMI:
def __init__(self, sName, iAge, fHeight, fWeight):
self.name = sName
self.age = iAge
self.height = fHeight
self.weight = fWeight
def getStatus(self):
b = fWeight / (fHeight * fHeight)
if b < 18:
return '超轻'
elif 25 > b >= 18:
return '标准'
elif 25 <= b < 27:
return '超重'
else:
return '肥胖'
def getBMI(self):
b = fWeight / (fHeight * fHeight)
return b
编程题
7-1 数据提取
有一个列表 studs 如下:
studs= [{‘sid’:‘103’,‘Chinese’: 90,‘Math’:95,‘English’:92},{‘sid’:‘101’,‘Chinese’: 80,‘Math’:85,‘English’:82},{‘sid’:‘102’,‘Chinese’: 70,‘Math’:75,‘English’:72}]
将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。
输入格式:
无输入。
输出格式:
输出内容:
101:[85, 82, 80]
102:[75, 72, 70]
103:[95, 92, 90]
输入样例:
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
101:[80, 85, 82]
102:[70, 75, 72]
103:[90, 95, 92]
studs = [{'sid': '103', 'Chinese': 90, 'Math': 95, 'English': 92}, \
{'sid': '101', 'Chinese': 80, 'Math': 85, 'English': 82}, \
{'sid': '102', 'Chinese': 70, 'Math': 75, 'English': 72}]
studs.sort(key=lambda x: eval(x['sid']))
scores = dict()
for student in studs:
scores[student['sid']] = list()
scores[student['sid']].append(student['Chinese'])
scores[student['sid']].append(student['Math'])
scores[student['sid']].append(student['English'])
for score in scores:
print('{}:{}'.format(score, scores[score]))
7-2 下标异常
输入一个非空字符串和一个索引值,输出字符串中,该索引值对应的字符。若发现异常,则输出“输入下标有误”
输入格式:
输入一个非空的字符串,再输入一个索引值(Python中可以是正向索引,也可以是反向索引)。
输出格式:
输出字符串中,该索引值对应的字符。若发现异常(如输入的索引值太大或太小,超出字符串的索引值范围;如输入的索引值为非整数等),则输出“输入下标有误”
输入样例:
在这里给出一组输入。例如:
Hello World
-4
输出样例:
在这里给出相应的输出。例如:
o
输入样例:
在这里给出一组输入。例如:
abcd
4
输出样例:
在这里给出相应的输出。例如:
输入下标有误
输入样例:
在这里给出一组输入。例如:
Good
?
输出样例:
在这里给出相应的输出。例如:
输入下标有误
s = input("")
try:
i = int(input())
except:
print("输入下标有误")
else:
try:
print(s[i])
except:
print("输入下标有误")
7-3 千年老二
在酒席上和初次相逢的人聊天中得知,大家在家里都是排行第2的,他显的很兴奋,口口声声说“千年老二,千年老二,为了千年老二干杯”。
输入格式:
在一行中至少给出两个以上绝对值不超过1000的整数。
输出格式:
对每一组输入,在一行中输出第二个最大值。
输入样例:
在这里给出一组输入。例如:
5 4 3 2 1
输出样例:
在这里给出相应的输出。例如:
4
lis = list(input())
lis.sort()
print(lis[-2])
熬夜送书 第三期
618,清华社 IT BOOK 多得图书活动开始啦!活动时间为 2023 年 6 月 7 日至 6 月 18 日,清华社为您精选多款高分好书,涵盖了 C++、Java、Python、前端、后端、数据库、算法与机器学习等多个 IT 开发领域,适合不同层次的读者。全场 5 折,扫码领券更有优惠哦!快来京东点击链接 IT BOOK 多得(或扫描京东二维码)查看详情吧!
京东链接:点击购买
赠书规则:点赞 | 收藏 | 评论: 人生苦短,熬夜敲Java
活动截止时间:6.16号
赠书数量:3本