1.下面程序执行的结果是( )
for x in range(10):
pass
print(x)
A 10
B 9
C 0
D 出错
正确答案:B
解析:在python中,只有模块、类、以及函数(def、lambda)才会引入新的作用域,其他代码块if/else、for、while、try/except这些语句不会引入新的作用域,也就是说这些代码块内部定义的变量外部可以引用
2.下列代码的执行结果是( )
num1 = 1 and 2
num2 = True or False
result = num1*num2 + 3
print(result)
A 0
B 4
C 5
D 报错
正确答案: C
解析:and 是逻辑操作,联机文档上如下:
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned
即python里bollean表达式的返回的是决定表达式值的那个参数的值
>>> print(1 and 2)
>>>2
True在计算时,用1代替
3.执行以下代码,控制台输出的内容是():
class A(object):
def go(self):
print("go A go!")
class B(A):
def go(self):
super(B, self).go()
print("go B go!")
class C(A):
def go(self):
super(C, self).go()
print("go C go!")
a = A()
b = B()
c = C()
a.go()
b.go()
c.go()
A go A go!
go A go!
go B go!
go A go!
go C go!
B go A go!
go B go!
go C go!
C go A go!
go B go!
go A go!
go C go!
D go A go!
go B go!
go B go!
go C go!
go C go!
正确答案: A
解析:super(C, self).go() 是 python2.x 的版本,首先找到C的父类(类A),然后把类C的对象self转换为类A的对
象,然后“被转换”的类A对象调用自己的go()函数
相当于python3.x 中的 super().go()
4.下面哪个是Python合法的标识符( )
A int32
B 40xl
C self
D name
正确答案: A,C,D
解析:self不是关键字,只是一种约定俗成的写法
5.下面哪些选项是Json中的数据类型?
A {}
B None
C list
D null
正确答案: A,D
解析:JSON和Python内置的数据类型对应
JSON类型 Python类型
{} dict
[] list
"string" str
1234.56 int或float
true/false True/False
null None
6.关于文档测试,下面说法正确的是
A 测试代码是否正确
B 测试文档书写是否正确
C 可以直接作为示例代码
D 没啥作用
正确答案: B,D
解析:字面意思
7.正则表达式中圆点(.)能匹配下面哪一项?
A 换行符
B 数字
C 字母
D 任何特殊符号
正确答案: B,C
解析:. 表示匹配除了换行符外的任何字符
部分特殊字符: \反斜杠符号 '单引号 "双引号 \a响铃 \b退格(Backspace) \e转义
\000空 \n换行 \v纵向制表符 \t横向制表符 \r回车 \f换页
8.下面的魔法方法中哪些在对象使用运算符的时候会自动被调用():
A __add__()
B __gt__()
C __repr__()
D __sub__()
正确答案: A,B,D
解析: __add__() 算术运算符 加法运算
__sub__() 算术运算符 减法运算
__gt__(self,other) 比较运算符 定义大于符号的行为,>
__repr__() 调用print()函数时
9.关于Python的变量使用,下列说法错误的是 ( )
A 变量不必事先声明
B 变量无需事先创建赋值可以直接使用
C 变量无需指定类型
D 可以使用 del 释放资源
正确答案: B
解析:变量需要创建赋值才能使用,事先说明和指定类型的是C语言那种,比如 float a;
10.ThreadLocal的作用是。
正确答案:解决了参数在一个线程中各个函数之间互相传递的问题
11.已知字符串s = 'helloworld', s[:5:2]的结果是__
正确答案: hlo
解析:默认从0开始,到5结束,步长为2
12.在子类中访问父类的方法可以通过__形式访问,也可以__通过方式访问
答案:(1) 父类名.方法名(self,参数)
(2) super(子类名,self).方法名(参数)
解析:这是 python2.x 中的写法
13.Python的优点
答案:易于学习;易于阅读;易于维护;可扩展;可嵌入;有丰富的第三方库
14.编写Python代码,实现一个判断用户输入的年份是否是闰年的程序?
import calendar
def func(year):
if year.isleap(): 方法调用错误 ------ 》 calendar.isleap(year):
print('该年份是闰年')
else:
print('该年份不是闰年')
if __name__ == '__main__':
year = input('请输入一个年份:')
func(year)
15.封装函数,实现文件内容的拷贝
import os
def my_copy(src_path, des_path):
# 判断源文件是否存在,如果不存在,拷贝不了
if not os.path.exists(src_path):
print('哥们,源文件不存在,如何拷贝')
return
# 判断源文件是不是文件
if not os.path.isfile(src_path):
print('哥们,源文件不是文件,如何拷贝')
return
# 判断目标文件是否存在
if os.path.exists(des_path):
print('哥们,目标文件存在,如何拷贝')
return
# 打开文件开始拷贝
fp_src = open(src_path, 'rb')
fp_des = open(des_path, 'wb')
#获取文件的大小
size = os.path.getsize(src_path)
#循环读取源文件,并将读取的内容写入目标文件
while size > 0:
content = fp_src.read(1024)
fp_des.write(content)
size -= 1024
# 关闭文件
fp_src.close()
fp_des.close()
16.创建一个列表:[1,4,9,16,...,n^2]
newList3=list(map(lambda x:x ** 2,list1))
解析:这样的情况下,必须写 lambda ,但是如果是 lambda x:int(x) 就不需用了,因为 int 本身就是一个函数