python基础
1、python文件的扩展名是( )
A、doc
B、txt
C、py
D、html
参考答案:C
参考答案:C
2、下列哪种说法错误的是( )
A、python是一门面向对象的语言
B、python是一门面向过程的语言
C、python是一种解释型的计算机程序设计语言
D、python程序无需编译成二进制代码,而是在执行时对语句一条一条编译
参考答案:B
3、下列选项中,不属于Python特点的是( )
A、简单易学
B、开源
C、面向过程
D、可移植性
参考答案:C
4、以下语句的输出结果为( )
print("2"+5)
A、7
B、22222
C、25
D、报错
参考答案:D
解析:"2"是字符串,5是数值型,类型不一致,不能相加,语法错误
5、以下横线处应填入的内容为( )
age = 18
print("你好,我叫小明,今年__岁了。" % age)
A、%s
B、%d
C、%f
D、%.2f
参考答案:B
解析:不同的标记对应不同的数据类型,%s对应字符串,%d对应十进制数,%f对应浮点数,%.2f则是对应浮点数且保留2位有效数字
6、以下选项中合法的用户标识符是( )
A、"Int"
B、_2Test
C、3Dmax
D、A.dat#
参考答案: B
解析:合法的标识符由字母、下划线、数字组成,并以字母或下划线开头,不能以数字开头,不能出现下划线以外的符号,不能使用python的关键字做为标识符。
7、下列合法的变量名是( )
A、main()
B、car2
C、2car
D、var-name
参考答案: B
解析:同上。
8、关于input()函数和print()函数的说法中,描述错误的是( )
A、input()函数用于接收用户从键盘输入的数据
B、input()函数会返回一个字符串类型数据
C、print()函数可以输出任何类型的数据
D、print()函数输出的数据结果一定会换行
参考答案:D
A、C选项正确。无论用户在键盘输入的是什么,input()函数都以字符串的形式接收,
C选项正确。无论用户在键盘输入的是什么,input()函数都以字符串的形式接收,
C选项正确。无论用户在键盘输入的是什么,input()函数都以字符串的形式接收,B选项正确。print()函数可以通过修改end=""参数来设置输出数据不换行,所以
D错误。
9、以下程序的输出结果为( )
print("Hello", end="#")
A、Hello
B、#Hello
C、Hello#
D、Hello
#
参考答案:C
解析:print()函数中,end参数用于描述输出最终以什么字符结尾,因此是C。
10、已知x,y=5,10,则表达式print(x or y)的输出结果是( )
A、5
B、True
C、False
D、10
参考答案:A
解析:x or y:如果x的布尔值为True,则返回x,否则返回y值。x=5明显布尔值为True,所以返回5。
11、已知x,y=5,10
则表达式print(x and y)的输出结果是( )
A、5
B、true
C、false
D、10
参考答案:D
解析:x and y:如果x的布尔值为True,则返回y,否则返回x值。x=5明显布尔值为True,所以返回10。
12、以下程序的输出结果是( )
print(5 // 2, 5 % 2)
A、2.5 2
B、2 1
C、2.5 1
D、2 2
参考答案:B
解析://是整除符号,最终结果需要取整。%是求余符号,求两数相除的余数。
13、下列语句执行过后,变量x的值是( )
x = 10
x += x % 3
A、11
B、2
C、语法错误
D、10
参考答案:A
解析:语句中包含两个计算,+=和%。%属于数学运算,+=属于赋值运算,%的优先级更高。因此先计算x % 3 = 1,然后计算x += 1 = 11,最终结果为11。
14、关于字符串下列说法错误的是( )
A、单引号创建的字符串中不能包含双引号
B、字符串是用来表示文本的数据
C、可以使用单引号、双引号、三引号创建字符串
D、三引号可以用作多行注释
参考答案:A
解析:单引号和双引号可以互相嵌套使用,A选项错误。三引号常用于创建多行字符串、带格式的字符串,也可以单独成行作为注释,D选项正确。
15、在Python语言中,以下非法的赋值语句是( )
A、j++
B、a = x and (y+1)
C、x = a > 0
D、a += b
参考答案:A
解析:python中没有++运算符,C语言、Java语言中才有。
16、除了十进制,Python中原生支持使用的进制不包括 ( )
A、二进制
B、四进制
C、八进制
D、十六进制
参考答案:B
17、下列函数中,用于将字符串类型的数据转为整形数据的是( )
A、int()
B、float()
C、bool()
D、str()
参考答案:A
18、下列符号中,用于在Python中作单行注释的是( )
A、#
B、//
C、<!-- -->
D、@
参考答案:A
19、下列选项中,用来表示Python代码块的是( )
A、{ }
B、( )
C、[ ]
D、缩进
参考答案:D
20、下列转义字符中,表示换行的是( )
A、\\
B、\0
C、\n
D、\t
参考答案:C
21、下列选项中,Python不支持的数据类型有( )
A、int
B、char
C、tuple
D、dict
参考答案:B
A是整形,C是元组,D是字典,python都支持。
C是元组,D是字典,python都支持。
C是元组,
D是字典,python都支持。B是字符,见于C语言与Java语言中,python里面没有相关数据类型。
22、下列选项中,能成功输出字符串的是( )
A、print("我叫%s,我今年%d岁了" % (name,age))
B、print("我叫%s,我今年%d岁了" .format (name,age))
C、print("我叫{},我今年{}岁了" % (name,age))
D、print("我叫{name},我今年{age}岁了")
参考答案:A
A选项是%格式化法,在需要插空的地方使用%标记,然后在后面用%连接需要填入的内容,A正确。
B选项是format法,插空标记应为{},B错误。
C选项是%格式化法,插空的地方应该使用%标记而不是{},C错误。
D选项为
f-string法,在使用{}标记挖空后,直接填入参数,但是字符串前面没有使用前缀f,D错误。
23、下列关于字符串的操作中,描述正确的是( )
A、字符串支持加减乘除操作
B、可以使用"{}"对字符串进行切片
C、使用replace()方法可以替换字符串中的子串
D、使用split()方法可以清除字符串两侧的空格
参考答案:C
A错误。字符串使用"[]"进行切片,
B错误。字符串使用strip()方法清除两侧的空格,D错误。
D错误。
D错误。C正确。
24、已知a=3,b=5。下列表达式中,计算错误的是( )
A、a > b 的值为False
B、a ** b 的值为15
C、a and b 的值为5
D、a // b 的值为0
参考答案:B
A选项为比较运算,a大于
b的结果为False,A正确。B选项为次方运算,不是乘法运算,a ** b的结果应该为243,B错误。
C选项为与and算,左侧的布尔值为True,因此返回右侧,结果为5,C正确。
D选项为整除运算,先进行除法得到0.6,然后取整得到0,D正确。
25、已知字符串s = "python",要想得到子串"th",应该进行切片如下( )
A、s[3:4]
B、s[3:5]
C、s[2:3]
D、s[2:4]
参考答案:D
解析:计算机当中,首位的数字索引是0而不是1,因此t对应的索引是2,h对应的索引是3。在切片操作中,第一个数是起始字符的索引,第二个数是结束字符的索引+1,因此最终结果是2:4,D正确。
流程控制—条件语句
26、以下语句执行后,a的值为( )
a,
b,
c=1,2,3
A、1
B、2
C、3
D、4
参考答案:A
a>
b 为False,所以后面的语句均为执行, a保持初始值1不变。
27、在python语言中,if表达式后面使用的标点符号是( )
A、无
B、分号 ;
C、冒号 :
D、大括号组 {}
参考答案:C
28、以下语句的输出结果为( )
a,
b,
c = 2,1,2
A、0
B、1
C、2
D、3
29、判断变量ch是否为大写字母的表达式正确的是( )
A、if ch>='A' and ch <='Z':
B、if ch>='A' or ch <='Z':
C、if ch>=A and ch <=Z:
D、if ch>=A or ch <=Z:
参考答案:A
A、Z比大小,因此需要添加引号,没有引号指的是变量,C、D错误。只有同时满足在A的后面,Z的前面两个条件的才是大写字母,因此应该为and关系,表示“且”,A正确,
C、D错误。只有同时满足在A的后面,Z的前面两个条件的才是大写字母,因此应该为and关系,表示“且”,A正确,
C、
D错误。只有同时满足在A的后面,Z的前面两个条件的才是大写字母,因此应该为and关系,表示“且”,A正确,B错误。
30、正确描述条件“x的值在80到90之间,不包含80、90”的语句为( )
A、 if x < 80 and x > 90:
B、 if x > 80 and x < 90:
C、 if x > 80 or x < 90:
D、 if x < 80 or x > 90:
参考答案:B
31、在以下程序中,最终输出结果为( )
n = 12
if n >= 0 and n == 10 and n <= 15:
print( 'hello' )
else:
print ('hi')
A、hello
B、hi
C、n
D、12
参考答案:B
解析:n >= 0 and n == 10 and n <= 15使用and连接了3个条件,因此需要三个条件都满足才视为True。显然,n = 12不满足第二个条件n == 10,因次最终运算得到False,进入else分支,输出hi。
32、已知有以下程序段:
n = int(input("请输入一个整数") )
if n == 3:
print ("老板")
elif n == 2:
print ("经理")
elif n == 1:
print ("员工")
elif n < 0:
print ("类型错误")
else:
print ("纯路人")
输入-2时,程序的输出结果为( )
A、经理
B、员工
C、类型错误
D、纯路人
参考答案:C
33、已知n是一个三位数,得到其百位数字h的语句是( )
A、h = n / 100
B、h = n // 100
C、h = n % 100
D、h = n % 10
参考答案:B
解析:三位数取得百位数的方法就是整除100。
34、已知n是一个三位数,得到其十位数字d的语句是( )
A、d = n // 10 % 10
B、d = n // 10
C、d = n % 10
D、d = n % 100
参考答案:A
解析:三位数取得十位数的方法是,先整除10得到前两位数,此时再对10求余数,得到前两位数的个位数,就是三位数的十位数。
35、条件语句中的条件部分实际上可以使用非布尔值的值,在运行时会先将其转为布尔值,再进行判断。下列哪个数对应条件为False?( )
A、-1
B、1
C、0
D、非零的数
参考答案:C
36、能使下列语句正常输出的a的赋值是( )
if a:
print("*****")
A、None
B、" "
C、0e-3
D、{}
参考答案:B
a的值转化为布尔值应该为True。其它数据转为布尔值时,只有①None ②实际意义为0的数字 ③空字符串 ④空列表、空元组、空字典、空集合 这四种数据会转为False,其余都会转为True。A满足①,错误。
B不是空字符串,其中有空格,因此会转化为True,B正确。
C是科学计数法,为0.000,满足②,错误。
D满足④,错误。
37、关于分支语句缩进的书写格式,以下说法正确的是( )
A、同一层的语句必须要有相同的缩进
B、只要逻辑书写正确有没有缩进无所谓
C、相同的语句在不同缩进位置上的含义相同
D、缩进可以同时使用空格和Tab键
参考答案:A
38、python语言的if语句嵌套时,else与if的配对关系是( )
A、每个else总是与最外层的if配对
B、每个else总是与最内层的if配对
C、每个else总是与前述内容中最近的if配对
D、每个else总是与有相同缩进的if配对
参考答案:D
39、以下语句执行后,c的值为( )
a,
b,
c=1,2,3
A、0
B、1
C、2
D、3
参考答案:B
a=1,
b=2,
c=3,a < c 为True,进入if分支
40、判断一个整数n是否是3的倍数的条件表达式正确的是( )
A、if n/3==0
B、if n//3==0
C、if n%3=0
D、if n%3==0
参考答案:D
解析:整除意味着余数为0,所以使用求余%运算。= 是赋值运算符,== 是关系运算符,判断是否相等用==,所以D正确。
41、以下程序段实现的功能为( )
n = int(input("输入一个整数"))
if n > 0:
print(n)
else:
print(-1 * n)
A、输出n
B、输出n的相反数
C、输出n的绝对值
D、输出n是否是正数
参考答案:C
42、以下程序段的输出结果为( )
a,
b,
c = 1,2,3
A、1 2 3
B、3 6 2
C、2 6 3
D、3 2 1
参考答案:B
解析:b<c为True,进入if分支
①c -= a,c的值由3-1得到2
② a += b,a的值由1+2得到3
③b*=c,b的值由2*3得到6
因此a,b,c的值为3,6,2
43、根据分支的数量,条件语句可以分为( )
A、单分支语句、多分支语句
B、单分支语句、双分支语句、多分支语句
C、无分支语句、单分支语句、多分支语句
D、单分支语句、双分支语句、三分支语句
参考答案:B
44、下列程序的执行结果为( )
天晴 = False
朋友有空 = False
if 天晴:
if 朋友有空:
print("一起逛街")
else:
print("自己逛街")
else:
print("在家歇着")
A、一起逛街
B、自己逛街
C、在家歇着
D、闲着也是闲着
参考答案: C
45、多分支语句中,根据情况,可以没有( )关键字。
A、if
B、elif
C、else
D、缺一不可
参考答案: C
流程控制—循环语句
46、下列循环的循环次数为( )
k=1000
while k > 1:
print(k)
k //= 2
A、9
B、10
C、11
D、2
参考答案:B
解析:每次k都除以2并取整,因此总共循环执行了以下10次
1000
500
250
125
62
31
15
7
3
1
第11次,k = 0,不再执行
47、运行以下程序段:
count =1
while count < 11:
print ("hello!")
count +=1
print ("hi!")
则hello和hi的输出次数分别为( )
A、10次 1次
B、10次 10次
C、11次 1次
D、11次 11次
参考答案:A
解析:每次输出hello以后count都会加1,从1到10总共输出了10次。第11次时,count = 11不再满足 < 11,循环停止。hi的输出语句在循环外,不受次数的影响只执行一次。故选A。
48、运行以下程序段:
n = 1
while n < 11:
print (“hello world!”)
则循环执行的次数为( )
A、10
B、11
C、12
D、无限
参考答案:D
解析:因为在循环里没有对n做出修改,n没有变化,一直为1,条件始终为True。
49、以下循环语句的执行次数为( )
x,y = 0,1
while y and x<4:
print("2")
x+=1
A、0
B、1
C、4
D、无限
参考答案:C
解析:循环条件y and x<4,y=1,对应的布尔值为True,所以只看x<4。x初值为0,每次加1,所以执行x=0,x=1,x=2,x=3四次循环。
50、运行以下程序段:
n =1
while n < 3:
print ("1",end='')
print ("0",end='')
则输出结果为( )
A、1100
B、1110
C、101010
D、死循环
参考答案:D
解析:循环里没有对n改变值,所以是死循环。
51、运行以下程序段,输出结果为( )
y = 5
while y - 1:
y -= 1
print(y)
A、死循环
B、0
C、1
D、2
参考答案:C
解析:
y=10,每次循环,y的值都减1,循环体里面的y值为4 3 2 1,之后,循环条件y-1=0,被视为False,循环结束。此时输出y,结果为1。
52、运行以下程序段,输出结果为( )
n =1
while n < 3:
print ("hello!",end='''')
print ("goodbye!",end='''')
则输出结果为( )
A、hello!hello!hello!goodbye!
B、hello!hello!goodbye!
C、goodbye!
D、死循环
参考答案:C
解析:循环里虽然没有对n改变值,但是事实上n从一开始就不满足循环条件,因此循环部分一次也没有执行。最后只执行了循环外的一次输出。
53、下列关于循环的说法中,描述正确的是( )
A、for循环一定可以被改写成while循环,while循环不一定能被改写成for循环
B、在面对次数已知的情况时,优先考虑使用while循环
C、在面对条件已知的情况时,优先考虑使用for循环
D、for语句可以控制循环的次数
参考答案:A
A正确。面对次数已知的情况时,优先考虑使用for循环,在面对条件已知的情况时,优先考虑使用while循环,
B、
C错误。for循环只是适用于次数已知的场合,但其自身并不能直接控制循环的次数,控制循环次数的是被迭代的对象,所以
D错误。
54、下列哪个关键字与循环没有直接关联( )
A、break
B、continue
C、return
D、in
参考答案:C
55、下列关于for循环的说法中,描述正确的是( )
A、for循环可以遍历可迭代对象
B、for循环不能嵌套使用
C、for循环不可以与if语句一起使用
D、for循环不能与 continue配合使用
参考答案:A
56、以下对break语句的作用描述正确的是( )
A、终止程序
B、终止本次循环
C、终止当前层级的循环,继续执行其它语句
D、终止正在进行的所有循环,继续执行其它语句
参考答案:C
57、结束本次循环,继续下一次循环的语句是( )
A、break
B、continue
C、return
D、pass
参考答案:B
58、运行以下程序段,输出结果为( )
for i in range(1,4):
print(i,end= " ")
A、1 2 3 4
B、1 2 3
C、0 1 2 3 4
D、0 1 2 3
参考答案:B
解析:range()函数创建的数字序列是从第一个数开始,到第二个数-1结束。
59、运行以下程序段,输出结果为( )
for i in range(1,101):
if i%2==0:
if i%3==0:
if i%7==0:
print(i)
A、28 70
B、39 81
C、42 84
D、26 68
参考答案:C
解析:for循环实现从1-100里面找出既能被2整除,也能被3整除,又能被7整除的数。
60、运行以下程序段,输出结果为( )
for x in range(1,11):
sum = sum + x
print(sum)
A、55
B、66
C、12
D、报错,不能正常运行
参考答案:D
解析:sum 没有赋初值 ,所以报错。
如果在for循环上面有sum = 0,则结果是输出1-10的累加,为55
61、运行以下程序段,输出结果为( )
for i in range(10):
if i%2 != 0:
continue
print(i)
A、1,3,5,7,9
B、2,4,6,8,10
C、0,2,4,6,8
D、0,1,3,5,7
参考答案: C
解析:条件i%2 != 0描述奇数,range(10)创造了从0到9的数字序列。因此,程序的意思是,每当遇到奇数,就执行continue,跳过输出步骤,其它情况正常输出(偶数),故选C。
62、运行以下程序段,输出结果为( )
c = "FishC"
for i in c:
print(i,end=" ")
A、FishC
B、F i s h C
C、(FishC)
D、(F i s h C)
参考答案: B
解析:for循环遍历字符串,输出每个字符,并用空格隔开。
63、运行以下程序段,输出结果为( )
for i in range(1,4):
for j in range(1,i+1):
print("#",end=',')
A、#,#,#,#,#,#,
B、#,#,#,#
C、#,#,#
D、#,#,#,#,#,#,#
参考答案:A
解析:外循环i=1,2,3,每次内循环j的次数由i决定。当i=1时,j的次数为range(1,2)执行1次循环,以此类推,当i=2时,内循环j执行2次循环,当i=3时,执行 3次循环,所以一共执行1+2+3=6,输出6个#,并用逗号分隔开。
64、以下循环语句的执行次数为( )
for i in range(1,10):
for j in range(1,10):
print(i*j)
A、100
B、81
C、121
D、20
参考答案:B
解析:外循环有9次,每一次外循环执行内循环9次,所以9*9=81次。
65、运行以下程序段,输出结果为( )
for k in range(2,6):
s=1
for j in range(k,6):
s+=j
print(s)
A、15
B、10
C、6
D、9
参考答案:C
解析:每次执行外循环,s都会重置为1,所以只需算最后一次外循环k=5时的情况。此时内循环range(5,6)创建了数字序列5,即j=5,因此s+=j =1+5=6,随后循环结束,输出s的最终值为6。
67、请阅读下面的程序:
for i in range(10):
i+=1
if i==8 or i==5:
continue
print(i)
上述程序中,print语句会执行( )次。
A、5
B、6
C、7
D、8
参考答案:D
解析:for循环i遍历了0至9,循环里面i+=1,因此i的值为1至10,如果i=8或i=5就执行continue,跳过后续内容,不输出i的值 ,因此循环执行了8次i的输出,分别是1,2,3,4,6,7,9,10。
68、运行以下程序段,输出结果为( )
for x in range(5):
x += 1
if x == 3:
break
print(x)
A、1 2
B、1 2 3
C、1 2 3 4
D、1 2 3 4 5
参考答案:A
解析:循环的数字序列为0~4,x每次都加1,所以x的值为1~5。但是当x刚等于3时,函数就因为break而终止了,此时还未输出,因此只有之前输出的1和2。
69、下述关于break语句的描述中,错误的是( )
A、break语句可用于循环语句中
B、break语句可用于选择语句中
C、break语句只会跳出一重循环
D、break语句在一个循环体内可以出现多次
参考答案:B
70、运行以下程序段,"#"的输出个数是( )
for x in range(3):
y = 0
while y <= 2:
y += 1
print("#")
A、9
B、12
C、5
D、6
序列数据
71、创建列表的函数是( )
A、 int()
B、 list()
C、 tuple()
D、 float()
参考答案:B
72、append()函数的作用是在列表的( )添加新元素。
A、开头
B、末尾
C、指定位置
D、随机位置
参考答案:B
73、以下程序的运行结果是( )
menu1=['红烧肉','熘肝尖']
menu2=['番茄炒蛋','油焖大虾']
menu1.extend(menu2)
print(menu1)
A、['红烧肉','熘肝尖','番茄炒蛋','油焖大虾']
B、['红烧肉','熘肝尖']
C、['番茄炒蛋','油焖大虾']
D、['番茄炒蛋','油焖大虾','红烧肉','熘肝尖']
参考答案:A
74、需要对列表排序,可以使用下面哪个函数( )
A、sorted()
B、reversed()
C、max()
D、extend()
参考答案:A
75、可以删除列表元素的函数是( )
A、pop()
B、del()
C、extend()
D、insert()
参考答案:A
76、这是一个成绩列表grade=[100,89,28,90,66,82,57],下面命令不能将列表的最后一个元素删除的是( )
A、grade.remove(57)
B、grade.pop()
C、del grade[-1]
D、grade[6] = ""
参考答案:D
A,
B,
D选项是将列表下标为6的元素赋值为空字符,并没有删除掉元素,A,B,
D选项是将列表下标为6的元素赋值为空字符,并没有删除掉元素,A,B,C选项都可以删除。
77、使用以下哪条命令可以访问 egg=["鸡蛋","鸭蛋","鹅蛋","李狗蛋"] 列表中的"鸭蛋"和"鹅蛋"?( )
A、egg[1]
B、egg[2]
C、egg[1:2]
D、egg[1:3]
参考答案:D
78、3 in (1,2,3)的结果是( )
A、True
B、False
C、2
D、3
79、列表a = [1, 2, 3, 4],以下那个选项的运算结果是错误的( )
A、a.insert(2, -1)之后a变为 [1, 2, -1, 4]
B、a.pop(1)之后a变为[1, 3, 4]
C、a.pop()此时输出a.index(3) 结果为2
D、a.reverse( )此时输出a[1]结果为3
参考答案:A
A选项是插入,在索引位置为2的位置插入-1,原有的其它元素向后退,a应该变为[1, 2, -1, 3, 4],A错误。
B选项删除索引为1的数据,也就是删除了"2"这一项,变为[1, 3, 4],B正确。
C选项pop()函数不写索引,默认删除最后一项,a变为[1, 2, 3],此时查询数据"3"的索引位置,结果是2,C正确。
D选项先将a逆序,a变为[4, 3, 2, 1],此时输出索引值为1的数据,结果是3,D正确。
80、下列函数中,不能使列表中元素的个数增加的函数是( )
A、insert()
B、extend()
C、append()
D、len()
参考答案:D
81、需要查询列表中某元素的索引位置应该使用( )
A、insert()
B、index()
C、sort()
D、clear()
参考答案:B
82、list=['中国','美国','韩国'],可以访问列表中的'中国'元素的是( ):
A、list[0]
B、list[1]
C、list[2]
D、list[3]
参考答案:A
解析:访问列表是采用获取索引值来访问的,第一个元素的索引值是0,第二个元素的索引值是1,以此类推……
83、python中使用sort()函数将列表升序排列,需要将参数reverse设置为( )
A、True
B、False
C、Yes
D、Up
参考答案:B
解析:reverse=True是降序,reverse=False是升序。
84、已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为( )
A、[1,2]
B、[2,3]
C、[1,3]
D、[1,2,3]
参考答案:B
85、假设列表a = [3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片a [3:7]得到的值是( )
A、[6,7,9,11]
B、[7,9,11,13]
C、[6,7,9,11,13]
D、[7,9,11,13,15]
参考答案:A
86、已知列表 x = [1, 3, 2],那么执行语句 x.reverse() 之后,x的值为( )
A、[1,2,3]
B、[3,2,1]
C、[2,3,1]
D、[1,3,2]
参考答案:C
87、下列创建元组的语句中,正确的是( )
A、t1 = tuple('1', '2')
B、t2 = ('q')
C、t3 = ('on',)
D、t4 = tuple(3,5)
参考答案:C
B错,C对。tuple()函数是将另一个可迭代对象转化为元组,不能直接作用于多个数字,
B错,
C对。tuple()函数是将另一个可迭代对象转化为元组,不能直接作用于多个数字,A、
D错误。
88、关于Python的元组类型,以下选项中描述错误的是 ( )
A、一个元组可以作为另一个元组的元素
B、元组一旦创建就不能被修改
C、Python中元组采用圆括号来表示
D、元组中元素必须类型相同
参考答案:D
解析:元组中的元组可以是不同类型的
89、tuple是含有10个元素的元组,下列指令会报错的是( )
A、print(tuple[1])
B、print(tuple[:5])
C、tuple[3] = "python"
D、list(tuple)
参考答案:C
解析:元组一旦创建就不能被修改。选项C是对元组元素重新赋值,是修改,所以错误。
90、下面哪条语句可以定义出一个元组( )
A、name="David"
B、age=20
C、grades=[89,96,78,63,80]
D、robots=("石头","剪刀","布")
参考答案:D
解析:元组的创建采用括号()及tuple函数两种方法
91、阅读下面的程序:
list1 = ['p', 'c', 'q', 'h']
lsit2 = ['o']
list1.extend(list2)
list1.insert(2,’n’)
print(list1)
运行程序,输出结果正确的是( )
A、['p', 'c', 'n', 'q', 'h', 'o']
B、['p', 'c', 'h', 'q', 'n', 'o']
C、['o', 'p', 'c', 'n', 'q', 'h']
D、['o', 'p', 'n', 'c', 'q', 'h']
参考答案:A
解析:第三行执行完后,'o'被添加至list1的末尾。第四行执行完后,'c'和'q'之间被插入了'n',因此最终结果为A。
92、表达式tuple(range(5)) 的值为( )
A、[0,1,2,3,4]
B、[1,2,3,4,5]
C、(0,1,2,3,4)
D、(1,2,3,4,5)
参考答案:C
93、在Python中,用于返回列表、元组、字典、集合、字符串、range等对象的长度或元素个数的内置函数是( )
A、index()
B、len()
C、set()
D、pop()
参考答案:B
94、下列方法中,能够查看字典中所有的键值对关系的是( )
A、keys()
B、values()
C、items()
D、dict()
参考答案:C
95、下列选项中,哪个选项是合法的字典定义方式( )
A、{1,2,3}
B、{'a':1, 'b':2, 'c':3}
C、dict{a=1,b=2,c=3}
D、dict(1=a,2=b,3=c)
参考答案:B
96、下列方法中,可以获取字典中的所有键的是( )
A、keys( )
B、values( )
C、key( )
D、value( )
参考答案:A
97、下列语句中,可以正确创建字典的是( )
A、d1 = ( )
B、d2 = {'a': 'A'}
C、d3 = dict('a')
D、d4 = dict{'a': 'A'}
参考答案:B
解析:A选项是创建一个空元组;C选项使用dict()函数创建字典,正确写法为:dict(a='A'),D选项函数不能使用大括号。
98、下列方法中,不能删除字典中元素的是( )
A、clear()
B、remove()
C、pop()
D、popitem()
参考答案:B
解析:B选项remove函数是列表用于删除元素的函数,无法删除字典元素。
99、运行下面程序,最终输出的结果为( )
info = {1:'小明', 2:'小黄',3:'小兰'}
info[4] = '小红'
info[2] = '小白'
print(info)
A、{1: '小明', 2: '小白', 3: '小红', 4: '小兰'}
B、{1: '小明', 2: '小白', 3: '小兰', 4: '小红'}
C、{1: '小白', 2: '小明', 3: '小兰', 4: '小红'}
D、{1: '小明', 2: '小红', 3: '小兰', 4: '小白'}
参考答案:B
100、创建一个空集合的方法是( )
A、()
B、[]
C、{}
D、set()
参考答案:D
101、集合的运算符号不包括( )
A、|
B、&
C、$
D、^
参考答案:C
102、下列方法中,不能删除集合中元素的是( )
A、discard()
B、remove()
C、popitem()
D、clear()
参考答案:C
解析:C选项是字典用于删除元素的函数。
103、{1:2,3:4}与{1,2,3,4}的区别在于( )
A、前者是字典,后者是集合
B、前者是集合,后者是字典
C、前者包含4个数据,后者包含2个数据
D、前者无序,后者有序
参考答案:A
104、len({1,1,1})的结果是( )
A、0
B、1
C、2
D、3
参考答案:B
105、下列描述错误的是( )
A、集合具有唯一性
B、列表具有异构性
C、元组是无序的
D、字典具有可变性
参考答案:C
106、A = {1,2},B = {2,3},则A&B 的结果是( )
A、{1,2,3}
B、{2}
C、2
D、1,2,3
参考答案:B
107、A = {1,2},B = {2,3},则A|B 的结果是( )
A、{1,2,3}
B、{1}
C、{2}
D、{3}
参考答案:A
108、下列描述正确的是( )
A、可以通过索引和切片访问集合中的元素
B、可以通过索引和切片访问字典中的元素
C、字典中的值不能重复
D、集合中的元素不能重复
参考答案:D
109、以下数据类型与创建函数的关系对应关系错误的是( )
A、列表 list()
B、元组 tuple()
C、字典 dictionary()
D、集合 set()
参考答案:C
110、运行下面程序,最终输出的结果为( )
list = [2,1,5,6]
print(sorted(list[:2]))
A、[1,2]
B、[2,1]
C、[1,2,5,6]
D、[6,5,2,1]
参考答案:A
解析:list[:2]切片,得到前两个数据[2,1],随后sorted()排序,变为[1,2],最后输出。
函数
111、python中定义函数的关键字是( )
A、function
B、def
C、fun
D、defined
参考答案:B
112、以下所列的各函数头中,不正确的是( )
A、def play(a=1, b=2):
B、def play(a, b):
C、def play(int a, int b):
D、def play():
参考答案:C
解析:函数头的格式是def 函数名称(参数列表)。python中参数没有数据类型。
113、以下关于函数说法不正确的是( )
A、函数可以没有参数列表
B、如果函数没有参数列表,则可以省略括号
C、函数可以没有return语句
D、函数定义时的冒号无论如何不能省略
参考答案:B
114、形参前加上符号“*”的作用是( )
A、以列表形式接收打包的多个实参
B、以元组形式接收打包的多个实参
C、以字典形式接收打包的多个实参
D、以集合形式接收打包的多个实参
参考答案:B
115、形参前加上符号“**”的作用是( )
A、以列表形式接收打包的多个实参
B、以元组形式接收打包的多个实参
C、以字典形式接收打包的多个实参
D、以集合形式接收打包的多个实参
参考答案:C
116、以下函数的首部定义不正确的是( )
A、def fun(a, b):
B、def fun(a=1, b):
C、def fun(a, b=1):
D、def fun(a=1, b=1):
参考答案:B
b,
b, a=1):
117、以下程序段的输出结果是( )
def sub(x=10, y=2):
return x-y
print(sub(5))
A、8
B、3
C、5
D、报错
参考答案:B
解析:函数首部中是默认参数x=10,y=2。调用函数时,sub(5)提供了一个参数5,按照位置,优先被传递给形参x;而y没有接收到实参,使用默认值2,所以是5-2=3。
118、以下程序段的输出结果是( )
def sub(x , y=2):
return x-y
print(sub(y=5))
A、8
B、3
C、5
D、报错
参考答案:D
解析:调用sub(y=5)是采用关键字参数,把y=5传递给形参y,但x没有实参传递,也没有默认值,所以出错。
119、在函数内部作全局声明的关键字是( )
A、def
B、import
C、class
D、global
参考答案:D
120、有以下代码:
a=1
def d():
a += 1
调用d()后print(a)的结果为( ):
A、1
B、2
C、a
D、报错
参考答案:D
解析:函数调用后,函数内试图修改a的值,但是未做全局声明,只有访问的权限,没有修改的权限,所以会报错。
121、已知 f = lambda x: x%3,那么表达式 f(7) 的值为( ):
A、1
B、2
C、3
D、4
参考答案: A
122、以下程序段的输出结果为( )
a,
b, *args):
A、(11, 22, 33)
B、(22, 33, 44)
C、(33, 44, 55)
D、(11, 22)
参考答案:C
a,
b,*args。函数调用时提供了5个参数,按顺序对应,a=11,b=22,剩下的(33,44,55)以元组的形式打包给了可变参数args。
123、下列选项中,关于递归公式的描述正确的是()
A、用于寻找与子问题规律相同的新问题
B、用于处理原问题以及与原问题规律相同的子问题
C、是终止递归的条件
D、是开始递归的条件
参考答案:B
124、以下程序段的输出结果为( )
area = lambda a, h : a * h / 2
print(area(2,6))
A、12
B、6
C、2
D、None
参考答案:B
125、关于函数,以下说法正确的是( )
A、函数内,只要运行到return,就会立即结束当层函数
B、没有返回值的函数不能放入print()当中,会因为没有输出内容而报错
C、返回值不可以是常量
D、可以使用多个return同时返回多个返回值
参考答案:A
A正确。没有返回值的函数会默认返回None,放在print()里不会报错,会输出None,
B错误。返回值可以是任何表达式,包括常量,
C错误。一个函数最终只能有一个返回值,
D错误。
126、关于函数,以下说法不正确的是( )
A、函数可以减少重复的代码,使得程序具有清晰的结构
B、不同函数中可以定义名称相同的局部变量
C、调用函数中,不使用关键字传参,则实参的传递顺序与形参的顺序必须相同
D、匿名函数中可以使用if代码块
参考答案:D
127、关于变量的作用域,以下说法不正确的是( )
A、局部变量是指定义在函数内部的变量
B、全局变量是指定义在函数外部的变量
C、函数外对局部变量没有访问与修改的权限
D、函数内对全局变量没有访问与修改的权限
参考答案:D
128、下列哪个关键字与函数无关( )
A、del
B、return
C、lambda
D、global
参考答案:A
129、有函数首部定义如下,def f(a = 10):
则下列对函数的调用语句中,不可行的是( )
A、f()
B、f(3)
C、f(a = 5)
D、f(3,5)
参考答案:D
130、以下程序段的输出结果为( )
a = 12
b):
A、102
B、100
C、22
D、12
参考答案:B
b=10。函数内借用了函数外的值
b=10。函数内借用了函数外的值a,先将a修改为90,然后与b相加并返回,因此最终结果为100。
面向对象
131、面向对象中定义类的关键字是( )
A、class
B、object
C、def
D、static
参考答案:A
132、面向对象中,用来描述同类事物的共同特征和行为的是( )
A、类
B、对象
C、属性
D、方法
参考答案:A
133、类的构造方法在( )时候被调用。
A、定义类的时候
B、创建对象的时候
C、销毁对象的时候
D、调用对象的方法的时候
参考答案:B
134、python中类的构造方法的名称是( )
A、类名
B、__del__()
C、__init__()
D、self()
参考答案:C
135、面向对象的三大特征不包括( )
A、抽象
B、封装
C、继承
D、多态
参考答案:A
136、在定义类方法中,方法的第一个参数必须是( )
A、self
B、cls
C、obj
D、this
参考答案:B
137、下列选项中,通过对象调用实例方法,格式正确的是( )
A、类名.方法名()
B、类名.属性名
C、对象名.方法名()
D、对象名.属性名
参考答案:C
138、面向对象的核心思想就是思考问题要从( )的角度出发
A、虚拟
B、现实
C、流程
D、计算机
参考答案:B
139、关于类的说法,错误的是( )
A、类中可以定义私有方法和私有属性
B、实例方法的第一个参数是self
C、类方法的第一个参数是cls
D、类实例化出来的对象无法访问类属性
参考答案:D
140、关于继承的描述中,错误的是( )
A、Python不支持多继承
B、如果一个类有多个父类,该类会继承所有父类的公有成员
C、定义类时如果没有显式指定父类,则默认继承Object类
D、私有属性和私有方法不能被继承
参考答案:A
141、以下程序段的输出结果为( )
class Test:
count = 21
def print_num(self):
count = 20
self.count += 20
print(count)
test = Test()
test.print_num()
A、20
B、40
C、21
D、41
参考答案:A
解析:由于变量的作用域限制,方法print_num中的count和self.count指代的是不同属性。因此输出count的时候,输出的是函数内部临时定义的count,输出结果是20。
142、以下程序段的输出结果为( )
class Init:
def __init__(self, addr, tel):
self.__addr = addr
self.tel = tel
def show(self):
print(f"地址:{self.__addr}")
print(f"电话:{self.tel}")
init = Init("北京","123")
init.show()
A、报错
B、地址:北京
C、电话:123
D、地址:北京
电话:123
参考答案:D
解析:类的内部可以访问自己的私有属性,因此不会报错,正常输出。
143、鸭子嘎嘎叫,母鸡咯咯叫,绵羊咩咩叫,水牛哞哞叫。这对应了面向对象中的( )
A、抽象
B、继承
C、多态
D、封装
参考答案:C
解析:不同的生物拥有同样的方法,但是表达方式不同,这是多态。
144、要描述X类继承于Y类,正确的表达方法是( )
A、X(Y)
B、X extends Y
C、X : Y
D、X[Y]
参考答案:A
145、如果在类中声明方法的时候使用了@staticmethod装饰器,则该方法会被视为( )
A、实例方法
B、类方法
C、静态方法
D、方法重写
参考答案:C
146、以下说法正确的是( )
A、子类可以使用super()访问父类的私有方法
B、子类可以使用super()访问父类被重写的方法
C、父类可以使用super()访问子类被重写的方法
D、子类可以使用super()访问父类的私有属性
参考答案:B
147、pass关键字的意思是( )
A、结束函数
B、结束方法
C、结束循环
D、占位,无意义
参考答案:D
148、下列说法错误的是( )
A、自定义的类一定有父类
B、自定义的类一定有构造方法
C、类中的方法一定包含形式参数
D、子类中的super()一定指向顺序最靠前的父类
参考答案:C
解析:如果没有显示指出类的父类,则视为继承于内置的 Object类,因此所有类一定会有父类,A正确。声明类的时候,可以使用构造方法,即便没有显示声明,也会从Object中继承一个默认的构造方法,B正确。实例方法、类方法都有默认参数self和cls,但静态方法没有任何默认参数,C错误。super()永远只能指向类的直系父类,在多继承当中,顺序靠前者优先,D正确。
149、封装的目的不包括( )
A、隐藏数据的处理过程
B、防止随意修改数据
C、扩展类的数据
D、防止外界对数据的过度依赖
参考答案:C