第3周 python流程控制结构 python流程控制测试 1、不能够正确表达下面语义的python表达式是( )。 知识点:逻辑运算
a、python中,判断一个商品的价格price是否在[1000,3000)之间的逻辑表达式为1000<=price<3000
b、人类按照地球绕太阳公转的时间制定了计时的立法,闰年满足的条件是:年号可以被4整除,但是不能被100整除,比如2020年是闰年,1900年不是闰年;年号能被400整除,例如2000年是闰年。表达闰年的逻辑表达式为:year%4==0 and year % 100!=0 or year@0==0
c、假设a,b,c表示能够构成三角形的三条边,那么它们能构成等边三角形的逻辑表达式为:a==b==c
d、假设math代表数学的成绩,english代表英语的成绩,那么数学和英语至少有一门高于95分的逻辑表达式为:math>95 or english >95
2、以下对 python 程序缩进格式描述错误的选项是( )。 知识点:缩进。
a、不需要缩进的代码必须顶行写,前面不能留空白
b、缩进可以键入多个空格,也可以用 tab 键实现
c、严格的缩进可以约束程序结构,可以多层缩进
d、python的缩进仅针对程序员,用来美化程序格式、提高程序可读性,
3、下面能正确输出如下turtle图的代码是( )。 知识点:循环的嵌套
a、import turtle turtle.width(5) turtle.color("green") for i in range(4): turtle.forward(200) turtle.right(90) for j in range(2): turtle.forward(50) turtle.right(90) turtle.hideturtle() turtle.done()
b、import turtle turtle.width(5) turtle.color("green") for i in range(4): turtle.forward(200) turtle.right(90) for j in range(4): turtle.forward(50) turtle.right(90) turtle.hideturtle() turtle.done()
c、import turtle turtle.width(5) turtle.color("green") for i in range(4): turtle.forward(200) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.hideturtle() turtle.done()
d、import turtle turtle.width(5) turtle.color("green") for i in range(4): turtle.forward(200) turtle.right(90) for j in range(3): turtle.forward(50) turtle.right(90) turtle.hideturtle() turtle.done()
4、关于函数,以下选项中描述错误的是( )。 知识点:函数的理解
a、函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的名字、参数和返回值即可
b、使用函数的主要目的是降低代码规模或者进行代码重用
c、python函数体中一定会使用return语句返回值或者结束函数的运行
d、参数使函数实现了对不同的数据进行相同的加工处理
5、关于python循环结构,以下选项中描述不正确的是( )。 知识点:循环结构的理解
a、for循环结构用遍历的方式对字符串或者range()对象中的每个元素进行操作
b、遇到break语句后,所有层次的循环都会结束
c、所有for循环功能都可以用while循环结构替代
d、使用while循环不需要预知循环次数
6、以下程序的输出结果是( )。 for s in 'xyab': for i in range(3): if s=='a': break print(s,end='') 知识点:循环的嵌套
a、xybxybxyb
b、xyxyxy
c、xxxyyybbb
d、xxxyyy
7、以下程序的输出结果是( )。 for i in range(3): for s in 'xyzabc': if s=='a': break print(s,end='') 知识点:循环的嵌套
a、xyzxyzxyz
b、xyzaxyzaxyza
c、xxxyyyzzz
d、xxxyyyzzzaaa
8、如果自定义一个函数draw_polygon(),能够画出下面的任一正多边形,那么这个函数的参数设计合理的是( )。 知识点:函数首部的设计
a、draw_polygon(n,side_length,pen_color,ploygon_color)
b、draw_polygon(n,side_length,ploygon_color)
c、draw_polygon(n,pen_color,ploygon_color)
d、draw_polygon(pen_color,ploygon_color)
9、下面程序的运行结果是( )。 x,y,z = 5,-2,8 if x>y: if y>=0: z=0 else: z =2 print(z) 知识点:分支的逻辑
a、10
b、没有结果
c、0
d、8
10、下面程序的运行结果是( )。 import math x,y = 3,4 if x>math.sqrt(y): x,y = x**2,y**2 else: x,y = 2*x,2*y print(x,y) 知识点:分支的逻辑
a、9 16
b、3 4
c、6 8
d、提示语法错误
11、已知字符“▼”的unicode码位为“25bc”。 下面的代码,能够正确输出如下图形的是( )。 知识点:for循环。
a、for i in range(4, 0, -1): print(" "*(4-i) "\u25bc"*(2*i-1))
b、for i in range(4): print(" "*i "\u25bc"*(7-2*i))
c、for i in range(4): for j in range(i): print(" ",end="") for j in range(7-2*i): print("\u25bc",end="") print()
d、for i in range(4): print(" "*(4-i) "\u25bc"*(2*i-1))
12、下面的代码,能够正确判断一个正整数位数的是( )。 知识点:分支。
a、a = int(input("输入一个10000以内的正整数:")) if 0
b、a = int(input("输入一个10000以内的正整数:")) if 0 c、a = input("输入一个10000以内的正整数:") if 0 d、a = int(input("输入一个10000以内的正整数:")) if 1000<=a<10000: print(str(a) "是4位数") elif a>=100: print(str(a) "是3位数") elif a>=10: print(str(a) "是2位数") elif a>0: print(str(a) "是1位数") else: print("数据有误") 13、对若干个正数求和,输入“ok”结束,下面正确的代码是( )。 知识点:while循环。 a、s = 0 x = input() while x!="ok": s = int(x) print(s) b、s = 0 while true: x = input() if x=="ok": break s = int(x) print(s) c、s = 0 x = input() while x!="ok": s = int(x) x = input() print(s) d、s = 0 while x!="ok": x = input() s = int(x) print(s) 14、生成[3,9]区间内的随机整数的正确表达是( )。 知识点:random模块 提示:用help()方法查看函数的说明,读懂python提供的信息 a、import random random.randint(3,9) b、import random random.randint(3,10) c、import random random.randrange(3,10) d、range(3,9)第1周 python概述 python概述知识检测 1、python脚本文件的扩展名为( )。 a、python b、py c、pt d、pg 2、关于python代码运行的描述中,不正确的是( )。 a、python代码运行分为交互式和脚本式两种 b、程序员可以在交互式运行中便捷的获取语句运行的结果,交互式运行适用于实验性、验证性的操作 c、当代码量较大时,更适合组织在脚本文件中,采取一次性运行的方式,并且代码将以文件的形式被留存下来 d、假设在e盘根目录下有一个名为hello.py的python脚本文件,在操作系统的命令行方式下运行它的方法是:python e:\hello 3、以下描述中正确的是( )。 a、python是一种跨平台的计算机程序设计语言 b、python是一种解释型脚本语言 c、解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程 d、python具有丰富的第三方库,是人工智能的首选计算机语言第2周 python编程基础 python编程基础检测 1、关于python 中的变量描述错误的是( )。 知识点:对python变量的理解 a、python 不需要显式声明变量类型,在变量被赋值时由值决定变量的类型 b、变量通过变量名进行存取操作 c、python中的变量可以随时更改自己保存的数据,不仅是取值的变化,也包括数据类型的变化 d、python中,变量age与变量age被看作是相同的变量 2、执行以下程序,输入5,输出的结果是( )。 a = input() b = a 6 print(b) 知识点:数据类型 a、11 b、'56' c、56 d、运行出错 3、下面代码的输出结果是( )。 >>> x = 26.59 >>> print(type(x)) >>> y = "100083" >>> print(type(y)) 知识点:数据的类型 a、 b、 c、 d、 4、关于eval()函数的使用,下面正确的说法是( )。 知识点:eval() a、eval("6-12//5")的结果是3.6 b、进入idle后立即执行如下语句: a = eval(input("输入一个字符串:")) 如果运行过程如下: 输入一个字符串:python 那么变量a的取值为"python" c、eval('print("i love python")')的结果是'i love python' d、eval("a=10")的结果是10 5、关于函数,下面说法不正确的是( )。 知识点:python中的函数 a、python的函数分为内置函数、标准库函数和第三方库函数 b、内置函数无需安装也无需导入即可使用 c、在python标准环境中,标准库和第三方库都需要先安装,然后导入后使用 d、turtle是python的标准库 6、以下程序执行时会有错误提示的是( )。 知识点:数据类型 a、print(str(125.68)) b、print(float(15)) c、print(int('4.6')) d、print(2.6e3) 7、关于 python 语言的注释,以下选项中描述错误的是( )。 知识点:注释的形式 a、python 的单行注释以#开头 b、python 的单行注释以单引号'开头 c、python 的多行注释用三引号字符串实现,以三单引号开头和结尾,或者以三双引号开头和结尾 d、python 语言有两种注释方式:单行注释和多行注释 8、在idle中使用 import math help(math.gcd) 查看math库中gcd函数的文档信息。 关于gcd()函数,下面说法正确的是( )。 知识点:查询python帮助信息 a、它有两个参数,返回它们的最大公约数 b、它有两个参数,返回它们的最小公倍数 c、没有这个函数 d、它有三个参数,返回它们的最大公约数 9、下面程序段的输出结果是( )。 s="python''|'很\t有趣\n" print(len(s)) 知识点:转义字符 a、14 b、15 c、16 d、17 10、不够输出20个星号的语句是( )。 知识点:字符串的复制 a、print("中国大学mooc网课答案中国大学mooc网课答案中国大学mooc网课答案**") b、print("*"*20) c、print(20*"*") d、print(20 "*") 11、在python的海龟绘图中,以下说法错误的是( )。 知识点:turtle库基础知识 a、海龟绘图中画板的坐标原点位置在画板左上角 b、海龟绘图的整个画板对应平面直角坐标系,画板的大小可以设置 c、海龟绘图中left(angle)表示向左转angle角度,right(angle)表示向右转angle角度 d、海龟绘图中goto(x,y)实现画笔绝对定位,重新定位时通常用up()先抬起画笔 12、在python语言中海龟绘图,关于circle()函数说法错误的是( )。 知识点:turtle库的circle()函数 a、circle()函数不仅能画圆,还能指定角度画弧,以及指定steps参数画圆的内接正多边形 b、circle(100, 180)在画笔前进方向的右侧画一个半圆 c、circle(100, 180)在画笔前进方向的左侧画一个半圆 d、circle(100, steps=6)在画笔前进方向的左侧画了半径为100像素的圆的内接正六边形 13、设有以下语句: m = eval(input("m=")) n = eval(input("n=")) 如果输入的m和n的取值为100和24,则输出: 100/24=4,100$=6 如果输入的m和n取值为24和100,则输出: 24/100=0,24 % 100=24 那么,可以严格按照该格式输出的print()是( )。 知识点:字面量、变量、、数据类型、print 提示:format()的使用可以自行查询,我们将在第4章学习它的应用 a、print(str(m) "/" str(n) "=" str(m//n),end=",") print(str(m) "%" str(n) "=" str(m%n)) b、print(m/n=m//n) print(m%n=m%n) c、print(m,"/",n,"=",m//n,end=",") print(m,"%",n,"=",m%n) d、print("{}/{}={}".format(m,n,m//n),end=",") print("{}%{}={}".format(m,n,m%n)) 14、在python中表示如下字符串 i'm happy 的常量形式可以是( )。 知识点:字符串常量 a、"i'm happy" b、i'm happy c、'i'm happy' d、'i\'m happy' 15、下面能够计算5的6次幂的方法包括( )。 知识点:算术运算 a、5*5*5*5*5*5 b、5**6 c、pow(5,6) d、import math math.pow(5,6)第4周 python容器数据类型(一) python容器数据类型测试(一) 1、下面代码的运行结果是( )。 s1 = "20201021" for ch in s1: if int(ch) < 2: continue else: s2 = s1.replace(ch, 'a') print(s1) print(s2) 知识点:字符串的不可变性,replace方法 a、20201021 a0a010a1 b、a0a010a1 a0a010a1 c、20201021 20201021 d、a0a010a1 20201021 2、以下代码的输出结果是( )。 print('{:#>12.4}'.format('random')) 知识点:format方法 a、########rand b、######random c、random###### d、rand######## 3、下面有一段英文绕口令,统计其中“wish”出现的次数以及它出现的所有位置,在代码段中需要填入的是( )。 str1 = "i wish to wish the wish you wish to wish, but if you wish the wish the witch wishes, i won't wish the wish you wish to wish." word = "wish" count = str1.count(word) order = "" pos = -4 for i in range(count): 此处应填入的代码是? order = str(pos) " " print("'wish'出现的次数:{}".format(count)) print("'wish'出现的位置包括:{}".format(order)) 知识点:字符串的find方法 a、pos = str1.find(word, pos len(word)) b、pos = str1.find(word, pos) c、pos = str1.find(word, len(word)) d、pos = str1.find(word, pos-len(word)) 4、这是中国最美的几个地方,编写程序,按如下的方式实现输出时,需要填入的代码是( )。 001 云南罗平 002 四川稻城 003 广西龙脊梯田 004 新疆帕米尔高原 005 浙江乌镇 006 云南泸沽湖 str1 = "1、云南罗平;2、四川稻城;3、广西龙脊梯田;4、新疆帕米尔高原;5、浙江乌镇;6、云南泸沽湖" s1 = str1.split(';') for item in s1: s2 = item.split('、') 此处应填入的代码是? 知识点:format方法,字符串的切分与列表 a、print('{:0>3}'.format(s2[0]), s2[1]) b、print('{:>3}'.format(s2[0]), s2[1]) c、print('{:0>3}'.format(s2[1]), s2[2]) d、print('{:>3}'.format(s2[1]), s2[2]) 5、以下程序的输出结果是( )。 s = 'www.python.org' str1=s.split('.') str1.reverse() print(str1) 知识点:列表的reverse方法 a、['org', 'python', 'www'] b、'gro.nohtyp.www' c、['www', 'python', 'org'] d、('org', 'python', 'www') 6、下面程序的输出结果是( )。 ls=["april","march","january","february","may","june"] ls.sort(reverse=true) print(ls) 知识点:排序 a、['may', 'march', 'june', 'january', 'february', 'april'] b、['april', 'february', 'january', 'june', 'march', 'may'] c、["january","february","march","april","may","june"] d、["june","may","april","march","february","january"] 7、以下代码的输出结果是( )。 x=[1,2,3] ls=[4,5,6] for i in range(x[2]): ls.append(i*i) print(ls) 知识点:列表 a、[4, 5, 6, 0, 1, 4] b、[4, 5, 6, 0, 1, 2] c、[4, 5, 6, 0, 1] d、[1, 4, 9] 8、以下代码的输出结果是( )。 ls = [[1,2,3],[4,5,6],[7,8,9]] lt = ls[::-1] print(lt) 知识点:序列的切片 a、[[7, 8, 9], [4, 5, 6], [1, 2, 3]] b、[9, 8, 7, 6, 5, 4, 3, 2, 1] c、[[1, 2, 3], [4, 5, 6]] d、[[7, 8, 9]] 9、以下说法不正确的是( )。 a、python中序列类型包含字符串、列表和元组三种 b、序列类型元素之间存在位置上的先后关系,元素都可以通过索引按位置访问,按位置进行修改 c、序列的索引包括正向索引和反向索引两种 d、python中,容器式的数据类型可以分为三类:序列类型、集合类型和字典类型 10、s='abcdefg',以下表示子串‘abcd’的选项是( )。 知识点:字符串索引及切片 a、s[0:4] b、s[0,4] c、s[:4] d、s[,4] 11、下面说法正确的是( )。 知识点:列表->字符串 a、time = [23,59,59] print(":".join(time)) 的输出结果是23:59:59 b、time = ['23','59','59'] print(":".join(time)) 的输出结果是23:59:59 c、time = ['23','59','59'] t_str = "" for t in time: t_str = t ":" print(t_str) 程序输出结果是23:59:59 d、time = [23,59,59] t_str = "" for i in range(len(time)): if i 12、求解下图所示的数字谜: def fun(x): qian,rest = divmod(x,1000) bai,rest = divmod(rest,100) shi,ge = divmod(rest,10) return qian, bai, shi, ge for x in range(1000, 2500): 此处应填入的代码是? if 1000*d 100*c 10*b a == 4*x: print('该四位数是:',x) 以上空白处可填入的代码是( )。 知识点:元组 a、[a,b,c,d] = fun(x) b、(a,b,c,d) = fun(x) c、a,b,c,d = fun(x) d、d,c,b,a = fun(x)第5周 python容器数据类型(二) 第5周 python容器数据类型(二) 1、下面叙述正确的是( )。 知识点:集合 a、以下代码的输出结果为8。 s = {8,16,9,10,5} ls = list(s) ls.sort() print(ls[1]) b、以下代码的输出结果为16。 s = {8,16,9,10,5} print(s[1]) c、以下代码的输出结果为5。 s = {8,16,5,10,5} print(len(s)) d、以下代码的输出结果为{5,8,9,10,16}。 s = {8,16,9,10,5} s.sort() print(s) 2、假设特等奖、一等奖、二等奖、三等奖的中奖概率分别为1%,6%,28%,65%。下面的程序模拟100次抽奖结果,统计每个奖项的中奖次数。提示:程序生成100个[0,1]区间随机数,通过判断每个随机数落在哪个中奖区间内完成统计。 下面应填入的代码是( )。 import random d_prize={ '特等奖': (0,0.01), '一等奖': (0.01,0.07), '二等奖': (0.07,0.35), '三等奖': (0.35,1.0) } result = dict() for i in range(100): 空1 for key,value in d_prize.items(): if value[0]<=num a、空1:num = random.uniform(0,1) 空2:result[key] = result.get(key,0) 1 b、空1:num = random.randint(0,1) 空2:result[key] = result[key] 1 c、空1:num = random.randint(0,1) 空2:result[key] = result.get(key,0) 1 d、空1:num = random.uniform(0,1) 空2:result[key] = result[key] 1 3、以下关于容器数据类型的描述,正确的是( )。 知识点:容器数据类型 a、序列类型和集合类型中的元素都是可以重复的 b、集合类型中的元素是有位序的 c、字典类型中的关键字可以是任意类型 d、序列类型包含字符串、列表和元组,它们都可以进行索引和切片操作 4、如果要打乱一个序列ls中元素的排列,下面正确的做法是( )。 知识点:random库 a、import random random.shuffle(ls) b、import random random.choice(ls) c、import random random.sample(ls) d、import random random.seed(ls) 5、下面正确的说法是( )。 知识点:随机种子seed()函数 a、运行下面的代码两次,输出的随机数是相同的。 import random print(random.randint(1,100)) b、运行下面的代码两次,输出的随机数是相同的。 import random random.seed(10) print(random.randint(1,100)) c、运行下面的代码两次,输出的随机数是相同的。 import random random.seed() print(random.randint(1,100)) d、运行下面的代码两次,输出的随机数是相同的。 import random from datetime import datetime random.seed(datetime.now()) print(random.randint(1,100)) 6、以下程序不可能的输出结果是( )。 import random ls=[68,35,28,90,53] print(random.choice(ls)) 知识点:random库 a、68 b、35 c、28 d、82 7、生成100个[1,30]内的随机整数,输出每个数字出现的次数,以下选项中可以完成此功能的是( )。注意:输出不允许出现重复,每个数字仅输出一次。 知识点:集合、字典 a、import random num = [ ] for i in range(100): num.append(random.randint(1,30)) s = set(num) for item in s: print(item,':',num.count(item)) b、import random num = [ ] for i in range(100): num.append(random.randint(1,30)) d={} for v in num: d[v] = num.count(v) for key,value in d.items(): print(key,':',value) c、import random num = [ ] for i in range(100): num.append(random.randint(1,30)) s = set(num) for item in s: print(item,':',s.count(item)) d、import random num = [ ] for i in range(100): num.append(random.randint(1,30)) for item in num: print(item,':',num.count(item)) 8、给出如下代码:ds={'周一':'mon.','周二':'tues.','周三':'wed.','周四':'thur.','周五':'fri.'},以下选项中能输出“wed.”的是( )。 知识点:字典 a、print(ds.keys()) b、print(ds.values()) c、print(ds['周三']) d、print(ds.get('周三')) 9、下面创建一个字典,包含以下键值对: '黑': '♠' '红': '♥' '梅': '♣' '方': '◆' 正确的创建方式包括( )。 知识点:字典 a、d = {'黑': '♥', '红': '♠', '梅': '♣', '方': '◆'} b、d = dict([('黑','♥'), ('红','♠'), ('梅','♣'),('方', '◆')]) c、d = dict(('黑','♥'), ('红','♠'), ('梅','♣'),('方', '◆')) d、d = dict(黑='♥', 红='♠', 梅='♣', 方='◆') 10、将一个字典的键、值互换,例如{160: 'aric', 168: 'lily', 155: 'mary'},转换为{'aric': 160, 'lily': 168, 'mary': 155},下面应填入的代码是( )。 d_src = {160: 'aric', 168: 'lily', 155: 'mary'} d_dst = {} for 空1 in 空2 : 空2 print(d_dst) 知识点:字典 a、空1:key, value 空2:d_src.items() 空3:d_dst[value] = key b、空1:key, value 空2:d_src.items() 空3:d_dst[key] = value c、空1:key 空2:d_src.keys() 空3:d_dst[ d_src[key] ] = key d、空1:key, value 空2:d_src.values() 空3:d_dst[ value ] = key 11、编写程序模拟便签纸,记录用户所需信息。要求使用字典保存便签信息,将日期和时间作为键,内容作为值。 例如,python课程的开课时间是2020.10.21 8:00,输出第4周和第5周的学习计划,结果如下: 2020-11-17 08:00:00 python第4周学习内容:列表与元组 2020-11-25 08:00:00 python第5周学习内容:集合与字典 以下代码中,在空白处应填入的代码是( )。 import datetime note={} date = 空1 #设置时间为2020年10月21日8点整 word=['python第4周学习内容:列表与元组', 'python第5周学习内容:集合与字典'] week = 4 for i in range(2): date_now = date datetime.timedelta(days=week*7) #时间计算到week周后 date_str = 空2 note[date_str] = word[i] week = 1 for key,value in note.items(): print(key) print(value) 知识点:datetime库 a、空1:datetime.datetime(2020,10,21,8,0) 空2:format(date_now,'%y-%m-%d %h:%m:%s') b、空1:datetime(2020,10,21,8,0) 空2:format(date_now,'%y-%m-%d %h:%m:%s') c、空1:datetime.datetime(2020,10,21,8,0) 空2:date_now.strftime('%y-%m-%d %h:%m:%s') d、空1:datetime(2020,10,21,8,0) 空2:date_now.strftime('%y-%m-%d %h:%m:%s') 12、有如下字典: elements = { "hydrogen": {"number": 1, "weight": 1.00, "symbol": "h"}, "oxygen": {"number": 8, "weight": 15.99, "symbol": "o"}, "carbon": {"number": 6, "weight": 12.01, "symbol": "c"} } 如果要获取"oxygen"元素的化学符号,下面正确的书写是( )。 知识点:嵌套字典 a、elements["oxygen"]["symbol"] b、elements["oxygen", "symbol"] c、elements.get("oxygen", "symbol") d、elements.get("oxygen").get("symbol")第6周 python编程进阶(一) 第6周 python编程进阶(一) 1、关于程序的异常处理,以下选项中描述错误的是( )。 知识点:异常的概念 a、程序中的异常发生后,妥善处理后程序可以继续执行,所以异常处理提高了程序的健壮性 b、在try代码块中如果有异常发生,则跳过该代码块中剩下的部分,根据异常类型去匹配except后面的异常,匹配成功则执行该except子句的语句块 c、python异常处理中,不论异常是否发生,finally子句中的代码总是会被执行 d、python中一个try代码块只能对应一个处理异常的except代码块 2、以下代的码运行结果是( )。 try: s = "hello world" s[0] = "h" print(s) except: print("error") else: print("no error") finally: print("over") 知识点:异常的处理流程 a、error over b、hello world no error over c、hello world over d、error 3、定义一个函数is_illegal,判断三个参数是否能构成三角形。如果不能形成三角形,则抛出自定义异常illegalargumenterror。当用户输入三个数字后,调用该方法判断三边的合法性,如果不合法捕获异常、打印异常字符串,如果合法计算该三角形的面积。在下面的代码中完成填空。 import math class illegalargumenterror(exception): pass def is_illegal(a, b, c): if a>=b c or b>=a c or c>=a b: 空1 try: a = float(input('请输入三角形的边长:\na=')) b = float(input('b=')) c = float(input('c=')) is_illegal(a, b, c) s = (a b c)/2 area = math.sqrt(s*(s-a)*(s-b)*(s-c)) print("三角形的面积为:",area) except valueerror: print('提示:请输入数字!') 空2 : #捕获illegalargumenterror异常,输出异常字符串"无法构成三角形" print(e) 知识点:自定义异常的抛出和捕获 a、空1:raise illegalargumenterror("无法构成三角形") 空2:except illegalargumenterror as e b、空1:raise illegalargumenterror() 空2:except illegalargumenterror as e c、空1:raise illegalargumenterror("无法构成三角形") 空2:except illegalargumenterror d、空1:raise illegalargumenterror() 空2:except illegalargumenterror 4、下面说法错误的是( )。 知识点:列表推导式 a、dict([(x, x**2) for x in range(6)]) 创建的字典是{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} b、[[x*3 y for y in range(1,4)] for x in range(3)] 创建的是二维列表 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] c、number = [-2, 4, 6, -5] string = 'ab' z = [(i, j) if i>0 else (-i, j) for i in number for j in string] 这段代码创建的列表为[(2, 'a'), (2, 'b'), (4, 'a'), (4, 'b'), (6, 'a'), (6, 'b'), (5, 'a'), (5, 'b')] d、' '.join([i for i in range(1,11)])的运算结果为字符串'1 2 3 4 5 6 7 8 9 10' 5、以下关于函数的描述中,错误的是( )。 知识点:参数 a、只要是在globals(顶层)命名空间内定义的变量,在自定义函数内部都可以直接读取和赋值 b、globals(顶层)命名空间内定义的变量,如果是诸如数字、字符串的不可变类型,必须使用关键字global进行声明后才可以对其重新赋值 c、如果可变类型对象做函数的参数,那么在函数内部修改它的取值并将变化反应在实参上,必须用索引按位置进行赋值 d、如果不可变类型对象做函数的参数,那么在函数内部形参如何变化都不会影响实参的取值 6、关于python函数参数传递的描述中,错误的是( )。 知识点:参数的传递 a、定义函数时,可以赋予参数默认的取值,调用函数时既可以不传递该参数使用默认值,也可以根据需要传递自定义取值 b、调用函数时,以键值对的方式写出参数的名字和取值,这种称为关键字参数,在关键字参数的后面不能再出现位置参数 c、即使使用关键字参数,也必须按照函数定义时的形参次序进行参数传递 d、定义函数时,不定长参数通常出现在形参列表的末尾,如果不在末尾,则其后面的参数必须带有默认值 7、如果函数定义为: def fun(user): pass 则下面对该函数的调用不合法的是( )。 知识点:参数 a、fun() b、fun('lily') c、fun(1007) d、fun(user="lily") 8、下列说法不正确的是( )。 知识点:全局变量 a、x = 5 def fun(): x = 2 x = x * 3 print(x, end=' ') fun() print(x) 程序无误,输出结果为6 5 b、x = 5 def fun(): global x x = 2 x = x*3 print(x, end=' ') fun() print(x) 程序无误,输出结果为6 6 c、x = 5 def fun(): x = x * 3 print(x ,end=' ') fun() print(x) 程序无误,输出的结果为15 15 d、x = 5 def fun(): print(x, end=' ') fun() print(x) 程序无误,输出的结果为5 5 9、以下程序的输出结果是( )。 ls = [1,3,5] def func(x, y): ls[0] = 100 return x*y s = func('py', 2) print(s, ls) 知识点:参数 a、pypy [100, 3, 5] b、pypy [1, 3, 5] c、pypy d、程序无法运行 10、要创建如下列表[5, 15, 25, 35, 45, 55, 65, 75, 85, 95],可以采用的方法包括( )。 知识点:列表的创建 a、a = [] for x in range(10): a.append(x*10 5) b、[x*10 5 for x in range(10)] c、[for x in range(10): x*10 5] d、a = [] for x in range(10): a[x] = x*10 5 11、已知有三个列表: lst1 = [1, 2, 3, 4] lst2 = ['醉乡民谣', '驴得水', '放牛班的春天', '美丽人生'] lst3 = ['美国', '中国', '法国', '意大利'] 如果要得到如下列表: [(1, '醉乡民谣', '美国'), (2, '驴得水', '中国'), (3, '放牛班的春天', '法国'), (4, '美丽人生', '意大利')] 可以采用的方法包括( )。 知识点:列表推导式,zip函数,enumerate函数 a、list(zip(lst1,lst2,lst3)) b、[(lst1[i], lst2[i], lst3[i]) for i in range(len(lst1))] c、[(i 1, lst2[i], lst3[i]) for i in range(len(lst1))] d、[ (i 1,x,y) for i,(x, y) in enumerate(zip(lst2, lst3))] 12、下列代码中,输出结果是字典类型对象 {1: ('apple', 100), 2: ('banana', 50), 3: ('orange', 80)} 的选项是( )。 知识点:字典推导式,zip函数,enumerate函数 a、fruit = [('apple','banana','orange'), (100,50,80)] a= { i 1:item for i,item in enumerate(zip(*fruit)) } b、fruit = ('apple', 'banana', 'orange') weight = (100, 50, 80) b= { i 1:item for i,item in enumerate(zip(fruit, weight)) } c、fruit=[("apple",100),("banana",50),("orange",80)] c= {i 1:item for i,item in enumerate(zip(fruit))} d、fruit = ('apple','banana','orange') weight = (100,50,80) d = {i 1:(a,b) for i,(a,b) in enumerate(zip(fruit, weight))}第7周 python编程进阶(二) 第7周 python编程进阶(二) 1、已知func = lambda x, y : x*2 y,则func([1],[2,3])的结果是( )。 知识点:匿名函数 a、[4, 5] b、[1, 2, 3] c、[1, 1, 2, 3] d、7 2、下列说法错误的是( )。 知识点:函数 a、已知元组列表x=[(2,3,10),(1,2,3),(2,6,7),(3,5,10)],那么sorted(x, key=lambda item : item[0] item[2])排序后,print(x)的输出结果是:[(1, 2, 3), (2, 6, 7), (2, 3, 10), (3, 5, 10)] b、已知num=[2,3,4,5], print('*'.join(map(str, num)))的输出结果是:2*3*4*5 c、已知x=[5, 2, 3, 4, 9],那么执行代码x = sorted(x[0::2], reverse=true)之后,x的值为[9,5,3] d、下面代码定义了求解的函数,并计算x=9的取值 import math def log3(x): return math.log(x)/math.log(3) f = log3 print(f(9)) 3、定义一个函数,计算x=3, y=5时函数的值。不能完成该功能的是( )。 知识点:函数做参数 a、import math def add(f,x,y): return f(x) f(y) print(add(lambda x: math.sin(x*x),3,5)) b、import math def add(f,x,y): return f(x) f(y) def func(x): return math.sin(x**2) print(add(func,3,5)) c、import math def func(x): return math.sin(x**2) ls=list(map(func,[3,5])) print(sum(ls)) d、import math def func(x): return math.sin(x**2) ls = list(filter(func,[3,5])) print(sum(ls)) 4、使用函数式编程的方式,统计一句英文短文中每个单词出现的次数。请完成填空。 txt = "a computer is a device that can be instructed to carry out an arbitrary set of arithmetic or logical operations automatically." def word_count(word_list): #词频统计 word_list.sort() words=[] for word in word_list: if word not in words: times = word_list.count(word) #计数 print("{}:{}次".format(word,times)) words.append(word) #记录已统计的单词 def func(value, ops): for function in ops: value = function(value) operators = 填空 func(txt, operators) 知识点:函数式编程 a、[str.lower, str.split, word_count] b、[lower, split, word_count] c、[str.split, str.lower, word_count] d、[split, lower, word_count] 5、编写程序用递归函数实现将字符串逆序,并把结果存放到列表中。下列选项不能完成该功能的是( )。 知识点:递归函数 a、s = 'abcdefg' ls = [] def str_reverse(length): if length == 0: return ls ls.append(s[length-1]) return str_reverse(length-1) print("".join(str_reverse(len(s)))) b、s = 'abcdefg' def str_reverse(ss): length = len(ss) if length <= 1: return ss return ss[-1] str_reverse(ss[1:-1]) ss[0] print("".join(list(str_reverse(s)))) c、ss = 'abcdefg' ls=[] def str_reverse(x): if x=='': return ls ls.append(x[-1]) return str_reverse(x[:-1]) print("".join(str_reverse(ss))) d、s = 'abcdefg' def str_reverse(ss): length = len(ss) if length <= 1: return ss return ss[-1] str_reverse(ss[1:-2]) ss[0] print("".join(list(str_reverse(s)))) 6、已知包文件夹test和模块fac.py的关系如下。 求阶乘的函数fac()定义如下: def fac(n): y = 1 for i in range(1, n 1): y = y * i return y 那么下列选项中,能够执行函数fac的是( )。 知识点:模块 a、import test.fac print(test.fac.fac(8)) b、import test.fac print(test.fac(8)) c、import test print(test.fac.fac(8)) d、import test print(test.fac(8)) 7、已知位于同一文件夹下的两个文件,output.py和test.py的内容如下: #output.py def show(): print(__name__) #test.py import output if __name__=='__main__': output.show() 运行test.py的输出结果是( )。 知识点:模块和主模块 a、output b、__main__ c、__name__ d、test 8、能够判断当前环境是主模块还是被导入的模块的属性是( )。 知识点:主模块 a、__name__ b、__path__ c、__package__ d、__file__ 9、已知一个按升序排列的列表ls,使用二分法在该列表中查找某数字。现用递归函数实现该功能,请完成填空。 def binary_search(ls, target): if 空1 : print('未找到') return midindex = len(ls) // 2 if target ls[midindex] : 空3 else: print('找到了,位置为' str(midindex)) ls = [2,8,10,18,25,30,36,40,50,88] #升序排列 num = eval(input('请输入要查找的数:')) binary_search(ls, num) 在空白处可以填入的正确选项是( )。 知识点:递归函数 a、len(ls)==0 binary_search(ls[ :midindex], target) binary_search(ls[midindex 1: ], target) b、not ls binary_search(ls[ :midindex], target) binary_search(ls[midindex 1: ], target) c、len(ls)==0 binary_search(ls[midindex 1: ], target) binary_search(ls[ :midindex], target) d、ls==[] binary_search(ls[midindex 1: ], target) binary_search(ls[ :midindex], target) 10、下列说法正确的是( )。 知识点:os库和os.path库 a、假设os模块已导入, 那么 for lib in ["numpy", "pandas", "matplotlib"]: os.system("pip install -u " lib) 的作用是批量安装、更新这三个库 b、假设os模块已导入,那么列表推导式: [filename for filename in os.listdir('d:\\source') if filename.endswith('.py')] 的作用是创建d:\source文件夹中所有扩展名为.py的文件名列表 c、python标准库os.path中的方法isfile()可以用来测试给定的路径是否为文件 d、python标准库os.path中的split()方法用于分割指定路径中主文件和文件扩展名第8周 python面向对象基础 python面向对象基础测试 1、下面的代码运行后会报错。 class people(object): __name = "luffy" __age = 18 p1 = people() print(p1.__name, p1.__age) 知识点:类的基本使用 2、语句 pass 仅起到占位符的作用,并不会做任何操作。 知识点:类定义 3、在类定义的外部没有任何办法可以访问对象的私有成员。 知识点:访问权限 4、python 中一切内容都可以称为对象。 知识点:类和对象 5、定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值。 知识点:类和对象 6、python中没有严格意义上的私有成员。 知识点:类和对象 7、python 类的构造函数是__init__()。 知识点:构造函数 8、定义类时,在一个方法前面使用@classmethod 进行修饰,则该方法成为类方法。 知识点:类方法 9、python中,通过对象不能调用类方法和静态方法。 知识点:类方法和静态方法 10、在 python中可以为自定义类的对象动态增加新成员。 知识点:类的定义 11、现有如下代码, 请分两行写出其运行结果。 class people(object): def __init__(self): print("__init__") def __new__(cls, *args, **kwargs): print("__new__") return object.__new__(cls, *args, **kwargs) people() 知识点:类的定义和使用 12、请执行以下代码,说明错误出现的行数。 1. class dog(object): 2. def __init__(self,name): 3. self.name = name 4. @property 5. def eat(self): 6. print(" %s is eating" %self.name) 7. 8. d = dog("wangwang") 9. d.eat() 知识点:属性的定义和使用 13、如下学生类,使用一个计数器属性统计一共实例化了多少个学生。请输出程序运行结果。 class student: count = 0 def __init__(self, name): self.name = name student.count = 1 s1 = student("zhang3") s2 = student("li4") print(s1.count) 知识点:类和对象第9周 python面向对象进阶 python面向对象进阶测试 1、关于面向对象的继承,以下选项中描述正确的是( )。 知识点:继承的概念 a、继承是类之间共享属性和操作的机制 b、继承是指一组对象所具有的相似性质 c、继承是指各对象之间的共同性质 d、继承是指一个对象具有另一个对象的性质 2、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( )。 知识点:基本理论 a、消息 b、命令 c、口令 d、调用语句 3、下列选项中,与class person等价的是( )。 知识点:继承 a、class person(object) b、class person(object) c、class person: object d、class person: object 4、python 支持多继承,如果父类中有相同的方法名,而在子类中调用时没有指定父类名,则 python解释器将从左向右按顺序进行搜索。 知识点:多继承 5、在设计派生类时,基类的私有成员默认是不会被继承的。 知识点:继承 6、子类能继承父类的一切属性和方法。 7、子类可以通过重写父类方法覆盖掉与父类同名的方法。 知识点:多态性 8、如果类属性和实例属性重名,对象优先访问类属性的值。 知识点:访问控制 9、使用类名获取到的值一定是类属性的值。 知识点:访问控制 10、静态方法中一定不能访问实例属性的值。 知识点:访问控制 11、下面这段代码的输出结果是( )。 class parent(object): x = 1 class child1(parent): pass class child2(parent): pass print(parent.x, child1.x, child2.x) child1.x = 2 print(parent.x, child1.x, child2.x) parent.x = 3 print(parent.x, child1.x, child2.x) 知识点:继承 提示:答案分为3行,每个数据之间用一个空格分隔。 12、使用实例a进行获取数据、设置数据和删除数据操作, 分别会触发类的哪个私有方法? class a(object): pass a = a() a["key"] = "val" # 触发【 填空1 】方法 a = a["key"] # 触发【 填空2 】方法 del a["key"] # 触发【 填空3 】方法 知识点:运算符重载 提示:每行写出一个空的答案。期末考试 《python程序设计及应用(上)》期末考试 1、下列程序的运行结果是( )。 lst = ['one', 'two', 'three', 'four', 'five', 'six'] def f(s): return len(s) res = sorted(lst, key=f) print(res) a、['one', 'two', 'six', 'four', 'five', 'three'] b、['one', 'two', 'three', 'four', 'five', 'six'] c、['five', 'four', 'one', 'six', 'three', 'two'] d、['two', 'three', 'six', 'one', 'four', 'five'] 2、下面程序的输出结果是( )。 def change(stringb, listb): stringb="hi,python" listb[0]=100 stringa="hi,py" lista=[1,2,3] change(stringa, lista) print(stringa) print(lista) a、hi,py [100, 2, 3] b、hi,python [100, 2, 3] c、hi,py [1, 2, 3] d、hi,python [1, 2, 3] 3、如果程序运行时从键盘输入“1.234”,下面程序的运行结果是( )。 try: a=int(input("a number:")) 1 / a except zerodivisionerror : print("division by zero!") except valueerror: print("value is not an integer!") else: print("that went well!") finally: print("cleaning up.") a、value is not an integer! cleaning up. b、division by zero! cleaning up. c、that went well! cleaning up. d、value is not an integer! 4、设变量a=15.69458 能够输出: rmb15.69 的是()。 a、print("rmb{:.2f}".format(a)) b、print("rmb" str(a)) c、print("rmb",a) d、print("rmb{}".format(a)) 5、下面程序的输出结果是( )。 def buy_eggs(): egg_count = 12 egg_count = 0 buy_eggs() print(egg_count) a、报错unboundlocalerror b、0 c、12 d、无输出 6、下列代码运行结果是 ( )。 c = map( lambda x : x%2 ,[1,2,3,4] ) print(list(c)) a、[1, 0, 1,0] b、[0, 1, 0,1] c、[1, 0, 1,1] d、[1, 2, 3,4] 7、执行以下程序,输入9,输出的结果是( )。 a = input() b = a 7 print(b) a、运行出错 b、16 c、97 d、'97' 8、投掷骰子6000次,记录每面出现的次数。 下面程序中应填入的是( )。 import random def rolldice(): return random.randint(1,6) times=[0]*6 #初始化6个计数器 for i in range(6000): roll = rolldice() #置骰子 填空 #计数 for i,t in enumerate(times): print("{}点出现{}次".format(i 1,t)) a、times[roll-1] =1 b、times[roll] =1 c、times[roll]=1 d、times[roll 1] =1 9、已知有一个求阶乘的递归函数如下: def fac(n): if n==0 or n==1: return 1 else: 填空 其中,应填入的是( )。 a、return n*fac(n-1) b、n*fac(n-1) c、return (n-1)*fac(n) d、(n-1)*fac(n) 10、下面的程序要求取一个数的逆序数(例如1234的逆序数为4321),则下面程序段中可以填入的是( )。 x=int(input("输入一个数:")) y=0 while 填空1 : r = x % 10 y = 填空1 x = x//10 print(y) a、x!=0 y*10 r b、x!=0 y r c、x==0 y r d、x==0 y*10 r 11、如果运行下面的程序时,从键盘上输入's',那么程序的输出结果是( )。 import math a=3 b=4 c=5 t=input('输入要求哪种形状的面积 t(三角形) s(正方形) c(圆):') if t=='t': s=(a b c)/2.0; area=math.sqrt(s*(s-a)*(s-b)*(s-c)) print("三角形面积={:.2f}".format(area)) elif t=='s': area=b*b print("正方形面积={:.2f}".format(area)) elif t=='c': area=3.14*c*c print("圆面积={:.2f}".format(area)) else: print('类型有误') a、三角形面积=6.00 b、正方形面积=16.00 c、圆面积=78.50 d、类型有误 12、设x=1, y=2, 下面程序段执行后x,y的取值是( )。 t=x x=y y=t a、x=2 y=1 b、x=1 y=2 c、x=1 y=1 d、x=2 y=2 13、下面程序的运行结果为( )。 import turtle t = turtle.turtle() def drawpolygon(n): t.begin_fill() if n%2==1: t.color("red","red") else: t.color("blue","blue") for i in range(n): t.forward(30) t.left(360//n) t.end_fill() t.up() t.fd(70) t.down() for i in range(3,7): drawpolygon(i) turtle.done() a、 b、 c、 d、 14、下列不是python语言关键字的是( )。 a、print b、finally c、while d、lambda 15、以下说法正确的是( )。 a、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} sorted(scores.keys()) 的运算结果是 ['bill', 'jack', 'jay', 'mike'] b、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} del scores['bill'] len(scores)的结果是6 c、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} s = dict(jack=90, mike=80, jay=85, bill=60) 则scores == s 判断结果是false d、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} 无法执行命令 scores['bill']=90 因为字典中已经有了一个值为90 16、python源文件的扩展名是( )。 a、.py b、.python c、.pyt d、.pt 17、在python语言中,关于赋值语句的作用,正确的描述是( )。 a、赋值语句将变量绑定到对象 b、变量和对象必须类型相同 c、每个赋值语句只能给一个变量赋值 d、通过赋值将变量改写为新的取值 18、能够返回x的整数部分的表达式是( )。 a、math.trunc(x) b、math.ceil() c、math.fabs() d、math.pow(x,y) 19、已知有一个列表: a= [55, 99, 88, 19, 7, 86, 93, 99, 28, 5] 从该列表中随机获取一个整数的方法是( )。 a、import random random.choice(a) b、import random random.shuffle(a) c、import random random.sample(a,1) d、import random random.randint(a) 20、解百鸡百钱问题时,如果只想得到满足条件的一组解,下面正确的代码是( )。 a、class getoutofloop(exception): pass try: for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: raise getoutofloop except getoutofloop: print("cock=",cock, "hen=",hen,"chick=",chick) b、for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: print("cock=",cock, "hen=",hen,"chick=",chick) break c、loop:for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: print("cock=",cock, "hen=",hen,"chick=",chick) break loop d、for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: break else: print("cock=",cock, "hen=",hen,"chick=",chick) 21、如果不断的向一个变量中添加数据,且需保证数据不会出现重复,那么这个变量应使用( )类型。 a、集合 b、列表 c、元组 d、字典 22、python中定义私有属性的方法是( )。 a、使用__xx定义属性名 b、使用private关键字 c、使用public关键字 d、使用__xx__定义属性名 23、下列选项中,不属于面向对象程序设计的三个特征的是( )。 a、抽象 b、封装 c、继承 d、多态 24、下列关于类属性和实例属性的说法,描述正确的是( )。 a、公有类属性可以通过类和类的实例访问 b、通过类可以访问实例属性的值 c、通过类的实例不能访问类属性的值 d、类属性既可以在类体中所有方法之外定义,也可以在方法内定义 25、下列选项中,与class person等价的是( )。 a、class person(object) b、class person(animal) c、class person(object) d、class person: object 26、下列选项中,用于标识为静态方法的是( )。 a、@staticmethod b、@privatemethod c、@instancemethod d、@classmethood 27、关于面向对象中的继承,以下选项中描述正确的是( )。 a、继承是指类之间共享属性和操作的机制 b、继承是指一组对象所具有的相似性质 c、继承是指各对象之间的共同性质 d、继承是指一个对象具有另一个对象的性质 28、写一个程序,打印数字1到100,3的倍数打印“fizz”来替换这个数,5的倍数打印“buzz”,对于既是3的倍数又是5的倍数的数字打印“fizzbuzz”,都不是的原样输出。 下面能正确完成此任务的是( )。 a、for x in range(1,101): if x%3==0: if x%5==0: print("fizzbuzz") else: print("fizz") elif x%5==0: print("buzz") else: print(x) b、for x in range(1,101): if x==0: print("fizzbuzz") elif x%3==0: print("fizz") elif x%5==0: print("buzz") else: print(x) c、for x in range(1,101): if x%3==0: print("fizz") elif x%5==0: print("buzz") elif x%3==0 and x%5==0: print("fizzbuzz") else: print(x) d、for x in range(1,101): if x%3==0: print("fizz") elif x%5==0: print("buzz") elif x==0: print("fizzbuzz") else: print(x) 29、创建26个大写字母的列表推导式正确的是( )。 a、[chr(65 i) for i in range(26)] b、import string [ch for ch in string.ascii_uppercase] #string.ascii_uppercase为ascii码表中的所有大写字母 c、[chr(97 i) for i in range(26)] d、import string [ch for ch in string.ascii_lowercase] #string.ascii_lowercase为ascii码表中的所有小写字母 30、已知有列表a如下: a=["abc","xyzz"] 能够使用zip函数,产生如下列表对象的是( )。 [('a', 'x'), ('b', 'y'), ('c', 'z')] a、list(zip(a[0], a[1])) b、list(zip(*a)) c、zip(a) d、zip(*a) 31、已知turtle库画圆的函数原型如下: circle(radius[,extent,steps]) 能够画一个半径为100的圆的内接正六边形的是( )。 a、circle(100, steps=6) b、circle(100, 360, 6) c、circle(100, 6) d、circle(100, steps=6, 360) 32、已知有如下函数定义: def funadd(f, x, y): #定义函数funadd return f(x) f(y) def square(x): #定义函数square return x**2 def cube(x): #定义函数cube return x**3 如果要求得 25的平方与-19的平方和,那么可以使用的方法是( )。 a、funadd(square, 25, -19) b、square(25) square(-19) c、funadd(cube, 25, -19) d、cube(25) cube(-19) 33、能够输出如下九九乘法表的程序是( )。 a、for i in range(1,10): for j in range(1,i 1): print("{}*{}={}".format(j,i,i*j),end='\t') print() b、i = 1 while i <= 9: j = 1 while j <= i: print("{}*{}={}".format(j,i,i*j),end='\t') j = 1 i = 1 print() c、for i in range(1,10): for j in range(1,i 1): print("{}*{}={}".format(i,j,i*j),end='\t') print() d、i = 1 j = 1 while i <= 9: while j <= i: print("{}*{}={}".format(j,i,i*j),end='\t') j = 1 i = 1 print() 34、下面不是有效变量名的是( )。 a、my-score b、def c、_demo d、sum 35、以下叙述正确的是( )。 a、python是一种跨平台的计算机语言 b、python具有丰富的第三方库,是人工智能的首选计算机语言 c、python是一种解释型脚本语言 d、解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程 36、下列说法正确的是( )。 a、假设os模块已导入, 那么 for lib in ["numpy", "pandas", "matplotlib"]: os.system("pip install -u " lib) 的作用是批量安装、更新这三个库 b、假设os模块已导入,那么列表推导式: [filename for filename in os.listdir('d:\\source') if filename.endswith('.py')] 的作用是创建d:\source文件夹中所有扩展名为.py的文件名列表 c、python标准库os.path中的方法isfile()可以用来测试给定的路径是否为文件 d、python标准库os.path中的split()方法用于分割指定路径中主文件和文件扩展名 37、python的应用领域包括( )。 a、科学计算 b、数据分析 c、人工智能 d、网络爬虫 38、关于以下代码说法正确的是( )。 class student: def language(self): print ("all the students like python") class mary(student): def work(self): print("mary is programming") class tom(student): def language(self): print("tom likes java") mary = mary() tom = tom() a、tom.language()会打印出tom likes java b、mary.language()会打印出all the students like python c、tom.work()会打印出tom is programming d、tom.language()会打印出all the students like python 39、下面程序画的是一个正五边形。 import turtle t = turtle.turtle() t.pencolor("seagreen") t.pensize(10) for i in range(5): t.fd(100) t.right(144) turtle.done() 40、下面代码绘制的是如下图形。 for i in range(6): print(" "*(6-i),end="") print("*"*(2*i 1)) 41、如下代码会正确输出luffy和18。 class people(object): __name = "luffy" __age = 18 p1 = people() print(p1.__name, p1.__age) 42、python不使用任何关键字区分公有属性和私有属性。 43、子类通过重写继承的方法,覆盖掉与父类同名的方法。 44、子类能继承父类的一切属性和方法。 45、下面程序的输出结果是( )。 s="hi,python" #逗号为英文符号 s.replace("hi","hello") print(s) 提示:注意大小写,字符串中间不要添加多余空格 46、下面程序的运行结果是( )。 c=[1,2,3] d=[4,5,6] print(c d) 47、已知s字符串,写出下面切片选择的子串。 s = "python" print( s[:-1] ) print( s[1:] ) print( s[::-1] ) 提示:每行写一个答案。 48、已知有如下字典: elements = { "hydrogen": {"number": 1, "weight": 1.00, "symbol": "h"}, "oxygen": {"number": 8, "weight": 15.99, "symbol": "o"}, "carbon": {"number": 6, "weight": 12.01, "symbol": "c"} } 如果要获取"oxygen"元素的化学符号,下面正确的书写是( )。 提示:两个维度的引用方式请保持一致。 49、下面程序的执行结果是( )。 word = "life is short, you need python" list = word.split() length = len(list) for i in range(length): if i==1 or i==3 or i==5: print(list[i], end=" ") #end为一个空格 50、下面的程序使用除留余数法将十进制整数换为十六进制整数,请完成填空。 n=int(input("请您输入一个十进制整数:")) hex={10:'a',11:'b',12:'c',13:'d',14:'e',15:'f'} res='' while n!=0: x=n if x<10: res=str(x) res else: res= 填空 #表达式中间不要添加多余空格 n=n//16 print(res) 51、下面程序输出数值的个数为( )。 age = 23 start = 2 if age % 2 != 0: start = 1 for x in range(start, age 2, 2): print(x) 52、能够判断当前环境是主模块还是被导入的模块的属性是( )。 53、已知 is_prime()函数判断某数x是否是素数,是素数返回true,不是素数返回false。 请在下面的代码中填空。 def is_prime(x): for div in range(2, x): if x%div==0: return false 填空 #词汇之间使用一个空格 54、已知有如下字符串列表: ls=["欧阳修","苏洵","苏轼","苏辙","王安石","曾巩"] 现要以“欧阳修、苏洵、苏轼、苏辙、王安石、曾巩”的形式输出。 可以使用的语句是print( 填空 )。 55、下面程序的输出结果是( )。 class student: count = 0 def __init__(self, name): self.name = name student.count = 1 s1 = student("alex") s2 = student("jack") print(s1.count) 56、下面代码的输出结果是( )。 class people(object): def __init__(self): print("__init__") def __new__(cls, *args, **kwargs): print("__new__") return object.__new__(cls, *args, **kwargs) people()期末考试 《python程序设计及应用(上)》期末考试 1、下列程序的运行结果是( )。 lst = ['one', 'two', 'three', 'four', 'five', 'six'] def f(s): return len(s) res = sorted(lst, key=f) print(res) a、['one', 'two', 'six', 'four', 'five', 'three'] b、['one', 'two', 'three', 'four', 'five', 'six'] c、['five', 'four', 'one', 'six', 'three', 'two'] d、['two', 'three', 'six', 'one', 'four', 'five'] 2、下面程序的输出结果是( )。 def change(stringb, listb): stringb="hi,python" listb[0]=100 stringa="hi,py" lista=[1,2,3] change(stringa, lista) print(stringa) print(lista) a、hi,py [100, 2, 3] b、hi,python [100, 2, 3] c、hi,py [1, 2, 3] d、hi,python [1, 2, 3] 3、如果程序运行时从键盘输入“1.234”,下面程序的运行结果是( )。 try: a=int(input("a number:")) 1 / a except zerodivisionerror : print("division by zero!") except valueerror: print("value is not an integer!") else: print("that went well!") finally: print("cleaning up.") a、value is not an integer! cleaning up. b、division by zero! cleaning up. c、that went well! cleaning up. d、value is not an integer! 4、设变量a=15.69458 能够输出: rmb15.69 的是()。 a、print("rmb{:.2f}".format(a)) b、print("rmb" str(a)) c、print("rmb",a) d、print("rmb{}".format(a)) 5、下面程序的输出结果是( )。 def buy_eggs(): egg_count = 12 egg_count = 0 buy_eggs() print(egg_count) a、报错unboundlocalerror b、0 c、12 d、无输出 6、下列代码运行结果是 ( )。 c = map( lambda x : x%2 ,[1,2,3,4] ) print(list(c)) a、[1, 0, 1,0] b、[0, 1, 0,1] c、[1, 0, 1,1] d、[1, 2, 3,4] 7、执行以下程序,输入9,输出的结果是( )。 a = input() b = a 7 print(b) a、运行出错 b、16 c、97 d、'97' 8、投掷骰子6000次,记录每面出现的次数。 下面程序中应填入的是( )。 import random def rolldice(): return random.randint(1,6) times=[0]*6 #初始化6个计数器 for i in range(6000): roll = rolldice() #置骰子 填空 #计数 for i,t in enumerate(times): print("{}点出现{}次".format(i 1,t)) a、times[roll-1] =1 b、times[roll] =1 c、times[roll]=1 d、times[roll 1] =1 9、已知有一个求阶乘的递归函数如下: def fac(n): if n==0 or n==1: return 1 else: 填空 其中,应填入的是( )。 a、return n*fac(n-1) b、n*fac(n-1) c、return (n-1)*fac(n) d、(n-1)*fac(n) 10、下面的程序要求取一个数的逆序数(例如1234的逆序数为4321),则下面程序段中可以填入的是( )。 x=int(input("输入一个数:")) y=0 while 填空1 : r = x % 10 y = 填空1 x = x//10 print(y) a、x!=0 y*10 r b、x!=0 y r c、x==0 y r d、x==0 y*10 r 11、如果运行下面的程序时,从键盘上输入's',那么程序的输出结果是( )。 import math a=3 b=4 c=5 t=input('输入要求哪种形状的面积 t(三角形) s(正方形) c(圆):') if t=='t': s=(a b c)/2.0; area=math.sqrt(s*(s-a)*(s-b)*(s-c)) print("三角形面积={:.2f}".format(area)) elif t=='s': area=b*b print("正方形面积={:.2f}".format(area)) elif t=='c': area=3.14*c*c print("圆面积={:.2f}".format(area)) else: print('类型有误') a、三角形面积=6.00 b、正方形面积=16.00 c、圆面积=78.50 d、类型有误 12、设x=1, y=2, 下面程序段执行后x,y的取值是( )。 t=x x=y y=t a、x=2 y=1 b、x=1 y=2 c、x=1 y=1 d、x=2 y=2 13、下面程序的运行结果为( )。 import turtle t = turtle.turtle() def drawpolygon(n): t.begin_fill() if n%2==1: t.color("red","red") else: t.color("blue","blue") for i in range(n): t.forward(30) t.left(360//n) t.end_fill() t.up() t.fd(70) t.down() for i in range(3,7): drawpolygon(i) turtle.done() a、 b、 c、 d、 14、下列不是python语言关键字的是( )。 a、print b、finally c、while d、lambda 15、以下说法正确的是( )。 a、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} sorted(scores.keys()) 的运算结果是 ['bill', 'jack', 'jay', 'mike'] b、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} del scores['bill'] len(scores)的结果是6 c、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} s = dict(jack=90, mike=80, jay=85, bill=60) 则scores == s 判断结果是false d、scores = {'jack': 90, 'mike': 80, 'jay': 85, 'bill': 60} 无法执行命令 scores['bill']=90 因为字典中已经有了一个值为90 16、python源文件的扩展名是( )。 a、.py b、.python c、.pyt d、.pt 17、在python语言中,关于赋值语句的作用,正确的描述是( )。 a、赋值语句将变量绑定到对象 b、变量和对象必须类型相同 c、每个赋值语句只能给一个变量赋值 d、通过赋值将变量改写为新的取值 18、能够返回x的整数部分的表达式是( )。 a、math.trunc(x) b、math.ceil() c、math.fabs() d、math.pow(x,y) 19、已知有一个列表: a= [55, 99, 88, 19, 7, 86, 93, 99, 28, 5] 从该列表中随机获取一个整数的方法是( )。 a、import random random.choice(a) b、import random random.shuffle(a) c、import random random.sample(a,1) d、import random random.randint(a) 20、解百鸡百钱问题时,如果只想得到满足条件的一组解,下面正确的代码是( )。 a、class getoutofloop(exception): pass try: for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: raise getoutofloop except getoutofloop: print("cock=",cock, "hen=",hen,"chick=",chick) b、for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: print("cock=",cock, "hen=",hen,"chick=",chick) break c、loop:for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: print("cock=",cock, "hen=",hen,"chick=",chick) break loop d、for cock in range(1,20): for hen in range(1,33): chick=100-cock-hen if chick%3==0 and 5*cock 3*hen chick//3==100: break else: print("cock=",cock, "hen=",hen,"chick=",chick) 21、如果不断的向一个变量中添加数据,且需保证数据不会出现重复,那么这个变量应使用( )类型。 a、集合 b、列表 c、元组 d、字典 22、python中定义私有属性的方法是( )。 a、使用__xx定义属性名 b、使用private关键字 c、使用public关键字 d、使用__xx__定义属性名 23、下列选项中,不属于面向对象程序设计的三个特征的是( )。 a、抽象 b、封装 c、继承 d、多态 24、下列关于类属性和实例属性的说法,描述正确的是( )。 a、公有类属性可以通过类和类的实例访问 b、通过类可以访问实例属性的值 c、通过类的实例不能访问类属性的值 d、类属性既可以在类体中所有方法之外定义,也可以在方法内定义 25、下列选项中,与class person等价的是( )。 a、class person(object) b、class person(animal) c、class person(object) d、class person: object 26、下列选项中,用于标识为静态方法的是( )。 a、@staticmethod b、@privatemethod c、@instancemethod d、@classmethood 27、关于面向对象中的继承,以下选项中描述正确的是( )。 a、继承是指类之间共享属性和操作的机制 b、继承是指一组对象所具有的相似性质 c、继承是指各对象之间的共同性质 d、继承是指一个对象具有另一个对象的性质 28、写一个程序,打印数字1到100,3的倍数打印“fizz”来替换这个数,5的倍数打印“buzz”,对于既是3的倍数又是5的倍数的数字打印“fizzbuzz”,都不是的原样输出。 下面能正确完成此任务的是( )。 a、for x in range(1,101): if x%3==0: if x%5==0: print("fizzbuzz") else: print("fizz") elif x%5==0: print("buzz") else: print(x) b、for x in range(1,101): if x==0: print("fizzbuzz") elif x%3==0: print("fizz") elif x%5==0: print("buzz") else: print(x) c、for x in range(1,101): if x%3==0: print("fizz") elif x%5==0: print("buzz") elif x%3==0 and x%5==0: print("fizzbuzz") else: print(x) d、for x in range(1,101): if x%3==0: print("fizz") elif x%5==0: print("buzz") elif x==0: print("fizzbuzz") else: print(x) 29、创建26个大写字母的列表推导式正确的是( )。 a、[chr(65 i) for i in range(26)] b、import string [ch for ch in string.ascii_uppercase] #string.ascii_uppercase为ascii码表中的所有大写字母 c、[chr(97 i) for i in range(26)] d、import string [ch for ch in string.ascii_lowercase] #string.ascii_lowercase为ascii码表中的所有小写字母 30、已知有列表a如下: a=["abc","xyzz"] 能够使用zip函数,产生如下列表对象的是( )。 [('a', 'x'), ('b', 'y'), ('c', 'z')] a、list(zip(a[0], a[1])) b、list(zip(*a)) c、zip(a) d、zip(*a) 31、已知turtle库画圆的函数原型如下: circle(radius[,extent,steps]) 能够画一个半径为100的圆的内接正六边形的是( )。 a、circle(100, steps=6) b、circle(100, 360, 6) c、circle(100, 6) d、circle(100, steps=6, 360) 32、已知有如下函数定义: def funadd(f, x, y): #定义函数funadd return f(x) f(y) def square(x): #定义函数square return x**2 def cube(x): #定义函数cube return x**3 如果要求得 25的平方与-19的平方和,那么可以使用的方法是( )。 a、funadd(square, 25, -19) b、square(25) square(-19) c、funadd(cube, 25, -19) d、cube(25) cube(-19) 33、能够输出如下九九乘法表的程序是( )。 a、for i in range(1,10): for j in range(1,i 1): print("{}*{}={}".format(j,i,i*j),end='\t') print() b、i = 1 while i <= 9: j = 1 while j <= i: print("{}*{}={}".format(j,i,i*j),end='\t') j = 1 i = 1 print() c、for i in range(1,10): for j in range(1,i 1): print("{}*{}={}".format(i,j,i*j),end='\t') print() d、i = 1 j = 1 while i <= 9: while j <= i: print("{}*{}={}".format(j,i,i*j),end='\t') j = 1 i = 1 print() 34、下面不是有效变量名的是( )。 a、my-score b、def c、_demo d、sum 35、以下叙述正确的是( )。 a、python是一种跨平台的计算机语言 b、python具有丰富的第三方库,是人工智能的首选计算机语言 c、python是一种解释型脚本语言 d、解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程 36、下列说法正确的是( )。 a、假设os模块已导入, 那么 for lib in ["numpy", "pandas", "matplotlib"]: os.system("pip install -u " lib) 的作用是批量安装、更新这三个库 b、假设os模块已导入,那么列表推导式: [filename for filename in os.listdir('d:\\source') if filename.endswith('.py')] 的作用是创建d:\source文件夹中所有扩展名为.py的文件名列表 c、python标准库os.path中的方法isfile()可以用来测试给定的路径是否为文件 d、python标准库os.path中的split()方法用于分割指定路径中主文件和文件扩展名 37、python的应用领域包括( )。 a、科学计算 b、数据分析 c、人工智能 d、网络爬虫 38、关于以下代码说法正确的是( )。 class student: def language(self): print ("all the students like python") class mary(student): def work(self): print("mary is programming") class tom(student): def language(self): print("tom likes java") mary = mary() tom = tom() a、tom.language()会打印出tom likes java b、mary.language()会打印出all the students like python c、tom.work()会打印出tom is programming d、tom.language()会打印出all the students like python 39、下面程序画的是一个正五边形。 import turtle t = turtle.turtle() t.pencolor("seagreen") t.pensize(10) for i in range(5): t.fd(100) t.right(144) turtle.done() 40、下面代码绘制的是如下图形。 for i in range(6): print(" "*(6-i),end="") print("*"*(2*i 1)) 41、如下代码会正确输出luffy和18。 class people(object): __name = "luffy" __age = 18 p1 = people() print(p1.__name, p1.__age) 42、python不使用任何关键字区分公有属性和私有属性。 43、子类通过重写继承的方法,覆盖掉与父类同名的方法。 44、子类能继承父类的一切属性和方法。 45、下面程序的输出结果是( )。 s="hi,python" #逗号为英文符号 s.replace("hi","hello") print(s) 提示:注意大小写,字符串中间不要添加多余空格 46、下面程序的运行结果是( )。 c=[1,2,3] d=[4,5,6] print(c d) 47、已知s字符串,写出下面切片选择的子串。 s = "python" print( s[:-1] ) print( s[1:] ) print( s[::-1] ) 提示:每行写一个答案。 48、已知有如下字典: elements = { "hydrogen": {"number": 1, "weight": 1.00, "symbol": "h"}, "oxygen": {"number": 8, "weight": 15.99, "symbol": "o"}, "carbon": {"number": 6, "weight": 12.01, "symbol": "c"} } 如果要获取"oxygen"元素的化学符号,下面正确的书写是( )。 提示:两个维度的引用方式请保持一致。 49、下面程序的执行结果是( )。 word = "life is short, you need python" list = word.split() length = len(list) for i in range(length): if i==1 or i==3 or i==5: print(list[i], end=" ") #end为一个空格 50、下面的程序使用除留余数法将十进制整数换为十六进制整数,请完成填空。 n=int(input("请您输入一个十进制整数:")) hex={10:'a',11:'b',12:'c',13:'d',14:'e',15:'f'} res='' while n!=0: x=n if x<10: res=str(x) res else: res= 填空 #表达式中间不要添加多余空格 n=n//16 print(res) 51、下面程序输出数值的个数为( )。 age = 23 start = 2 if age % 2 != 0: start = 1 for x in range(start, age 2, 2): print(x) 52、能够判断当前环境是主模块还是被导入的模块的属性是( )。 53、已知 is_prime()函数判断某数x是否是素数,是素数返回true,不是素数返回false。 请在下面的代码中填空。 def is_prime(x): for div in range(2, x): if x%div==0: return false 填空 #词汇之间使用一个空格 54、已知有如下字符串列表: ls=["欧阳修","苏洵","苏轼","苏辙","王安石","曾巩"] 现要以“欧阳修、苏洵、苏轼、苏辙、王安石、曾巩”的形式输出。 可以使用的语句是print( 填空 )。 55、下面程序的输出结果是( )。 class student: count = 0 def __init__(self, name): self.name = name student.count = 1 s1 = student("alex") s2 = student("jack") print(s1.count) 56、下面代码的输出结果是( )。 class people(object): def __init__(self): print("__init__") def __new__(cls, *args, **kwargs): print("__new__") return object.__new__(cls, *args, **kwargs) people()猜你喜欢 2023-10-22 23:26 2023-10-22 23:01 2023-10-22 22:58 2023-10-22 22:25 2023-10-22 22:18 2023-10-22 21:44 2023-10-22 21:37 2023-10-22 21:30 2023-10-22 21:28 2023-10-22 21:23