Python等级考试(1~6级)全部真题・点这里
关于open()函数的参数,下列描述正确的是?
A: “w+” 以十六进制格式打开一个文件只用于写入
B: "r+"打开一个文件用于读写。文件指针将会放在文件的末尾
C: “w” 打开一个文件只用于写入。如果该文件已存在则打开文件,并从原有位置开始编辑,即保留原有内容。如果该文件不存在,创建新文件
D: “r” 以只读方式打开文件,文件的指针将会放在文件的开头
答案:D
“w+” 打开一个文件用于读写。"r+"打开一个文件用于读写。文件指针将会放在文件的开头。
“w” 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。“r” 以只读方式打开文件,文件的指针将会放在文件的开头。
如下图代码,请问两条红线处应该填入?
A: 1、没有变化 2、没有变化
B: 1、没有变化 2、顺序会有变化
C: 1、顺序会有变化 2、顺序会有变化
D: 1、顺序会有变化 2、没有变化
答案:B
考查学生对列表的sort函数以及sorted函数的掌握与理解。正确答案是B
下面不同数制数据中,数值最大的是?
A: 0x2B
B: 0o37
C: 41
D: 0b100111
答案:A
十六进制数0x2B转换为十进制是43,而其他选项的数值分别是31、41和39。因此,A选项中的数值最大。
执行下面代码:print(bool(2)+3)打印出的结果为?
A: 3
B: 4
C: 5
D: 报错
答案:B
bool函数是int子类型,如果有参数,会返回true也就是整数1,所以正确答案是选项B,也就是数字4
求既是3的倍数且各个位上的数的和是8的倍数的三位数,适合的算法是?
A: 解析算法
B: 枚举算法
C: 排序算法
D: 对分查找法
答案:B
枚举算法可以遍历所有可能的三位数,然后判断每个数是否既是3的倍数且各个位上的数的和是8的倍数。通过枚举算法,可以找到满足条件的三位数。
下列选项不是Python异常处理可能用到的关键字?
A: try
B: else
C: if
D: finally
答案:C
try、else和finally是Python中用于异常处理的关键字,而if是用于条件判断的关键字,与异常处理无直接关系。
已定义学期末考核科目km=[“语文”,“数学”,“英语”],先根据安排需要添加综合学科进入考试科目,操作正确的是?
A: km.append(“综合”)
B: km.insert(“综合”)
C: km.write(“综合”)
D: km.read(“综合”)
答案:A
使用append方法可以将"综合"添加到列表km的末尾,即将综合学科添加到考试科目中。
表达式chr(ord(“0”)+3)的结果是?
A: 333
B: ‘3’
C: “000”
D: “0”,“0”,“0”
答案:B
ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符,chr(ord(“0”)+3)的值为’3’
与十进制数 1770 对应的八进制数是?
A: 3350
B: 3351
C: 3352
D: 3540
答案:C
正确的转换方法是将十进制数 1770 除以 8,得到商和余数。依次将余数作为八进制数的位数,直到商为0。因此,1770 的八进制表示为 3352。
下面代码的输出结果是?
a = [5,1,3,4]
print(sorted(a,reverse = True))
A: [5, 1, 3, 4]
B: [5, 4, 3, 1]
C: [4, 3, 1, 5]
D: [1, 3, 4, 5]
答案:B
sorted函数用于对列表进行排序,默认按照升序排序。通过设置reverse参数为True,可以实现降序排序。因此,给定的代码会将列表a按照降序排序,输出结果为[5, 4, 3, 1]。
用冒泡排序算法对6个数进行排序,进行比较的次数为?
A: 4
B: 5
C: 10
D: 15
答案:D
冒泡排序算法的基本思想是通过相邻元素的比较和交换来进行排序。对于n个元素的列表,冒泡排序需要进行n-1轮的比较。在每一轮比较中,相邻元素的比较次数为n-1次。因此,对于6个数进行排序,进行比较的次数为15次。
下面是比较的过程:
第一轮比较:需要进行5次比较
第二轮比较:需要进行4次比较
第三轮比较:需要进行3次比较
第四轮比较:需要进行2次比较
第五轮比较:需要进行1次比较
总共进行的比较次数为5 + 4 + 3 + 2 + 1 = 15次。
以下代码执行后,如果用户输入为:3*6,则输出为?( )
cal=input("请输入计算公式:\n")
print(eval(cal))
A: 36
B: "36"
C: 18
D: “18”
答案:C
代码中使用了eval函数来执行用户输入的计算公式。eval函数会将字符串作为有效的Python表达式进行求值。因此,用户输入的36会被计算为18,并输出结果为18。选项A: 36是用户输入的内容,选项B: "36"是用户输入的字符串,选项D: "18"是将计算结果转换为字符串。正确的输出结果是选项C: 18。
关于Python函数的描述,正确的是?
A: 表达式float(“3.14”) 的结果是3.14
B: 表达式type(100)的结果是十进制数
C: 表达式oct(100)可以获得十六进制数
D: 表达式hex(100)可以获得八进制数
答案:A
选项A正确,选项B.type(100)的结果是,选项C.oct(100)的值是’0o144’,获得八进制数,选项D.hex(100)的值是’0x64’,获得十六进制数。
Python中abs ()函数的作用为?
A: 求绝对值
B: 求开方结果
C: 求平方结果
D: 求立方结果
答案:A
在Python中,abs()函数可以用于计算一个数的绝对值,无论这个数是正数、负数还是零,都会返回其绝对值。
以下代码的执行结果为?
t=(11,25,36)
avg=sum(t)/len(t)
print(avg)
A: 24
B: 24.0
C: 12
D: 12.0
答案:B
sum是求和函数,len是计数函数。两者相除就是就平均数,结果为小数。故有(11+25+36)/3等于24.0。
Python中十六进制与十进制进行转换时,下列表述错误的是?
A: 十进制数57转换成十六进制,可以表示成int(‘57’,16)
B: 十进制数57转换成十六进制,可以表示成hex(57)
C: 十六进制数39转换成十进制,可以表示成int(‘39’,16)
D: 十六进制数39转换成十进制,可以表示成0x39
答案:A
A选项是将十六进制转为十进制
Python中使用open()函数打开文件完成读的功能,下列说法错误的是?
A: readlines()方法是读取文本所有的行,直到文件末尾
B: readline()方法是读取文件的第一行
C: 在同一个程序中,多次使用readline()方法后,程序仍读取第一行的内容
D: 执行readline()方法后,运行的结果不是列表,而是字符串
答案:C
在同一个程序中,每次调用readline()方法,它会读取文件的下一行内容。所以,每次调用readline()方法后,程序会读取文件的下一行,而不是一直读取第一行的内容。
以下代码执行后,得到的结果为?
list1 = [5, 0, 6, 1, 2, 7, 3, 4]
print(sorted(list1, reverse=True))
A: [7, 6, 5, 4, 3, 2, 1, 0]
B: [0, 1, 2, 3, 4, 5, 6, 7]
C: [4, 3, 7, 2, 1, 6, 0, 5]
D: [5, 0, 6, 1, 2, 7, 3, 4]
答案:A
这段代码会对列表list1进行降序排序,并打印排序后的结果。
int(7.8)的执行结果是?
A: 8
B: 8.0
C: 7
D: 7.0
答案:C
int(7.8)的执行结果是7。int()函数用于将一个数值或字符串转换为整数,它会将小数部分舍去,只保留整数部分。
关于查找的说法,下列说法正确的是?
A: 顺序查找属于无序查找
B: 对分查找一定能找到数据
C: 对分查找是一种低效的查找方法
D: 顺序查找次数一定比对分查找次数多
答案:A
顺序查找和对分不一定能查找到数据。对分查找是一种高效的查找方法。如果数据元素在第一个位置,顺序查找次数不一定比对分查找次数多。
当try子句中没有任何错误时,一定不会执行语句?
A: try
B: else
C: except
D: finally
答案:C
当try子句中没有任何错误时,不会执行except语句块。except语句块用于捕获和处理try子句中发生的异常。所以,正确的答案是选项C。
Python可以通过哪个函数实现字符串数据的格式化处理?
A: format
B: int
C: max
D: str
答案:A
Python可以通过format函数实现字符串数据的格式化处理。format函数允许将变量的值插入到字符串中的占位符位置,从而实现字符串的格式化。所以,正确的答案是选项A。
以下代码的输出结果是?
ls =[]
for m in '想念':
for n in '家人':
ls.append(m+n)
print(ls)
A: 想念家人
B: 想想念念家家人人
C: 想家想人念家念人
D: [‘想家’, ‘想人’,‘念家’,‘念人’]
答案:D
这段代码使用了两个嵌套的for循环,分别遍历字符串’想念’和’家人’中的字符。在每次循环中,将两个字符拼接起来,并将结果添加到列表ls中。最后,打印列表ls的内容。所以,正确的答案是选项D。
format方法通常用来格式化print的输出格式。以下程序中使用format来输出: 我叫小明,我今年12岁了,则代码中缺失部分应该填写?
name="小明"
age=12
print("我叫{},我今年{}岁了".format(_________________))
A: age,name
B: name,age
C: name:age
D: age name
答案:B
在使用format方法进行字符串格式化时,可以通过占位符{}来表示需要插入变量的位置。在这个例子中,需要插入name和age两个变量的值,所以正确的填写方式是"我叫{},我今年{}岁了".format(name, age)。因此,正确的答案是选项B。
下列数据中,不可能表示十六进制数的是?
A: ABC
B: 17F
C: 8H5
D: 9a01
答案:C
在十六进制表示中,只能使用0-9和A-F(或a-f)来表示数字。选项C中的8H5包含了字母H,不符合十六进制的表示规则。所以,选项C不可能表示十六进制数。
except语句可以有多个,Python会按except语句的顺序依次匹配你指定的异常。
答案:正确
except语句可以有多个,Python会按except语句的顺序依次匹配你指定的异常,如果异常已经处理就不会再进入后面的except语句。
any([])函数和any(())函数的结果是False。
答案:正确
any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。
利用Python3自带的csv库进行操作,可使用以下程序获取class.csv文件中存储的表头信息,并进行输出。
import csv
with open('class.csv') as f:
reader=csv.reader(f)
head_row=next(reader)
print(head_row)
答案:正确
代码中使用了open()
函数打开名为"class.csv"的文件,并将其赋值给变量f
。然后,使用csv.reader()
函数创建一个CSV读取器对象reader
,并将文件对象f
作为参数传递给它。
接下来,使用next()
函数读取reader
对象的下一行,也就是CSV文件的第一行,即表头信息,并将其赋值给变量head_row
。
最后,使用print()
函数输出head_row
,即表头信息。
所以,这段代码可以获取"class.csv"文件中存储的表头信息,并进行输出。
利用csv格式存储二维数据时,每行都是一个一维数据,用逗号分隔,可以有空行。
答案:错误
利用csv格式存储二维数据时,每行都是一个一维数据,用逗号分隔,不能有空行
数学老师对小明说:我要计算[4,6,3,2,5,8,7,9]这几个整数的平方,你能帮我编程实现吗?
小明说:两行代码就能实现。程序如下!
请判断,小明的这个程序是否正确。
答案:正确
本题综合考查学生对list()与map()函数的掌握情况。答案是正确。
多次使用readline()读取文件,如果要退到文件的起始位置,可以使用seek()实现。
答案:正确
在Python中,可以使用seek()
方法将文件指针移动到文件的起始位置,以便重新读取文件内容。seek()
方法接受一个参数,用于指定要移动的字节数。
如果你多次使用readline()
方法读取文件,文件指针会随着每次读取逐渐向文件的末尾移动。如果想要重新读取文件,可以使用seek(0)
将文件指针移动到文件的起始位置,然后再次使用readline()
方法读取文件内容。
所以,使用seek()
方法可以将文件指针退到文件的起始位置,以便重新读取文件内容。
Python中使用print函数输出时,输出完毕默认会换行,不能通过修改参数改为其它间隔方式。
答案:错误
print函数中使用end参数可以指定换行之外的其它间隔符,如Tab等。
十六进制与八进制数值之间的转换,常常借助二进制或者十进制作为中间的桥梁。
答案:正确
在进行十六进制与八进制数值之间的转换时,常常使用二进制或者十进制作为中间的桥梁。
对于十六进制数值,每一位可以表示4个二进制位,而每一位的十进制值可以表示3个二进制位。因此,可以将十六进制数值转换为二进制数值,然后再将二进制数值转换为八进制数值。
类似地,对于八进制数值,每一位可以表示3个二进制位,而每一位的十进制值可以表示1个二进制位。因此,可以将八进制数值转换为二进制数值,然后再将二进制数值转换为十六进制数值。
所以,在十六进制与八进制数值之间的转换中,常常借助二进制或者十进制作为中间的桥梁。
同一个整数分别用十六进制和八进制表示后,数值一定不相等。
答案:错误
同一个整数可以用不同进制表示,包括十六进制和八进制。虽然表示形式不同,但数值是相等的。
例如,整数10可以用十六进制表示为0xA,用八进制表示为0o12。虽然表示形式不同,但数值都是10。
所以,同一个整数分别用十六进制和八进制表示后,数值是相等的。
语句print(“a”,“b”,“c”,sep=“,”)的输出结果是:“a” “b” “c”。
答案:错误
在这个语句中,print()
函数接受了三个参数:“a”、“b"和"c”。这些参数会被打印到控制台上,使用逗号分隔。通过设置sep
参数为",",我们指定了打印时使用逗号作为分隔符。
因此,输出结果是:“a,b,c”,而不是你所提到的:“a” “b” “c”。
法定节假日是根据各国、各名族的风俗习惯或纪念要求,由国家法律统一规定的用以进行庆祝及度假的休息时间。法定节假日制度是国家政治、经济、文化制度的重要反映,涉及经济社会的多个方面,涉及广大人民群众的切身利益。法定节假日的休假安排,为居民出行购物和休闲提供了时间上的便利,为拉动内需、促进经济增长做出了积极贡献。给出一个2020年的节假日的放假日期CSV文件(vacations.csv),内容示例如下:
以第1行为例,1230表示12月30日,0101表示1月1日。
代码功能为:读入CSV文件中数据,获得用户输入。根据用户输入的节假日名称,输出此节假日的假期范围。请补全代码。
fi=open("/data/① ","r")
ls=[]
for line in fi:
ls.append(line.strip("\n").split(","))
fi.close()
s=input("请输入节假日名称:")
for line in ls:
if ② :
print("{}的假期位于{}-{}之间".format(line[1], line[2], line[3]))
答案:
① vacations.csv (2分)
② s == line[1] (2分)
fi = open("/data/vacations.csv", "r")
ls = []
for line in fi:
ls.append(line.strip("\n").split(","))
fi.close()
s = input("请输入节假日名称: ")
for line in ls:
if s == line[0]:
print("{}的假期位于{}-{}之间".format(line[1], line[2], line[3]))
代码中的①处需要替换为正确的文件路径。②处需要补充适当的条件来判断用户输入的节假日名称是否匹配。
尊老王国有一个默认规则,排队必须遵守年长的在前,年幼的在后。一支正要出城的队伍,请帮助他们顺利出城。
输入:
15、78、96、45、36
输出
[96, 78, 45, 36, 15]
[3, 2, 4, 5, 1]
请在划线处补全代码,实现以上功能
s = input()
x= s.split('、')
a = []
b = []
n = 0
for i in range(0, len(x)):
a.append(int(x[i]))
n = ___________
b.append(n)
for i in range(n-1):
for j in range(i+1, n):
if (__________):
_________________
b[i], b[j] = b[j], b[i]
print(a)
print(b)
答案:
① n+1(5分)