python基础习题1

1.(单选题)Python不支持的数据类型有
 A.char
 B.int
 C.float
 D.complex
正确答案:A
解析:
char是character的简写,就是字符的意思,在Java里特指单个字符,例如字母a。在python里面没有该数据类型。
2.(单选题)键入“cd”命令并按Enter 键后,将有什么结果()
 A.从当前目录切换到根目录
 B.屏幕显示当前目录
 C.从当前目录切换到用户主目录
 D.从当前目录切换为上一级目录
正确答案:C
解析:
cd 命令用于切换目录,常用的有以下几种形式: cd :切换到当前用户的主目录。 cd ~:切换到当前用户的主目录。

cd ~用户名:切换到指定用户的主目录。 cd 目录名:切换到指定目录。

默认情况下,超级用户的主目录是/root,而普通用户的主目录是/home下与该用户同名的子目录
3.
(单选题)关于全局变量和局部变量说法错误的是()
 A.定义在函数内部的变量拥有一个局部作用域
 B.定义在函数外的拥有全局作用域
 C.局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问
 D.调用函数时,只有局部变量将被加入到作用域中
正确答案:D
解析:
调用函数时,所有在函数内声明的变量名称都将被加入到作用域中
4.
(单选题)def div(x, y):
    if y == 0:
        raise ZeroDivisionError("y的值为0")
    return x / y
print(div(100,2))
 A.程序报错
 B.50.0
 C.(100,2)
 D.ZeroDivisionError: y的值为0
正确答案:B
解析:
y的值等于2,不会进入raise,所以程序正常运行,输出结果50.0
5.
(单选题)a = [1, 2, 3, ['a', 'b'], 6]  a[3] = 5   print(a)下列输出正确的是()
 A.[1, 2, 3, 5, 6]
 B.[1, 2, 5, ['a', 'b'], 6]
 C.[1, 2, 3, ['5', 'b'], 6]
 D.[1, 2, 3, [5,'a', 'b'], 6]
正确答案:A
解析:
a = [1, 2, 3, ['a', 'b'], 6]
a[3]是['a','b']
a[3]重新赋值为5
因此选A
6.
(单选题)>>> g = lambda x ,y: x * y
>>> g ( 2,3 )
 A.5
 B.1
 C.2
 D.6
正确答案:D lambda表达式
解析:
本题相当于定义了一个x*y的匿名函数,g(2,3)相当于把2和3赋值给了x和y,所以答案为6
7.
(单选题)假设列表对象 aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片 aList[3:7]得到的值是
 A.[6, 7, 9, 11]
 B.[5, 6, 7, 9]
 C.[7, 9, 11, 13]
 D.[4, 5, 6, 7]
正确答案:A
解析:
从索引3到索引7,总共4个元素,索引的取值是从6开始的,所以是[6, 7, 9, 11]
8.
(单选题)在(    )目录下可以找到Linux常用的命令
 A.tmp   
 B.bin
 C.root
 D.home
正确答案:B
解析:
选B,可以在bin目录下查看linux常用命令
9.
(单选题)如果要修改/home/user2/asd.c文件的访问权限为所有用户拥有所有权限,则对应的Linux命令是()
 A.chmod  742  /home/user2/asd.c
 B.chmod  777  /home/user2/asd.c
 C.chmod  744  /home/user2/asd.c
 D.chmod  427  /home/user2/asd.c
正确答案:B
解析:
此题目考查的是Linux的权限。
内部表示权限的第一个1代表r,第二个1代表w,第三个1代表x;
例如:
111代表rwx:可读可写可执行
000代表---:不可读不可写不可执行
110代表rw-:可读可写但不可执行。
因此B是正确的选项。

10.
(单选题)输出的结果为?
class Test:
...    def prt(self):
......       print(self)
......       print(self.__class__)


t = Test()
t.prt()
 A.<__main__.Test object at 0x7ffb5921fa90>

  B.
<__main__.Test object at 0x7ffb5921fa90>
 C.<__main__.Test object at 0x7ffb5921fa90>
 D.
正确答案:A
解析:
self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类
11.
(单选题)下述字符串格式化语法正确的是? 
 A.'GNU's Not %d %%'  % 'UNIX'
 B.'GNU\'s Not %d %%'  % 'UNIX'
 C.'GNU's Not %s %%'   % 'UNIX'
 D.'GNU\'s Not %s %%'  % 'UNIX'
正确答案:D
解析:
A,在两个单引号包裹的字符串中使用单引号,必须转义
B,转义没有问题,但是%d表示int,而格式化的是str
C,没有转义单引号
D,正确
12.
(单选题)如何解释下面的执行结果? 
print(1.2 - 1.0 == 0.2)
False
 A.Python的实现有错误
 B.浮点数无法精确表示
 C.布尔运算不能用于浮点数比较
 D.Python将非0数视为False
正确答案:B
解析:
任何编程语言的浮点数做算术运算后,其精度都是无法保证的,有的是0.199999之类的数,或者其四舍五入的数
13.
(单选题)Linux中,sudo命令的作用是
 A.切换用户
 B.用超级用户(root)权限来执行这些命令
 C.显示当前文件夹下的所有文件和文件夹
 D.根据文件名等信息查找指定的文件
正确答案:B
解析:
选B,
切换用户用su
显示当前文件夹下的所有文件和文件夹用ls
根据文件名等信息查找指定的文件用find

14.
(单选题)下列说法正确的是?
class ParentClass1: 
    pass

class ParentClass2: 
    pass

class SubClass1(ParentClass1):
    pass

class SubClass2(ParentClass1,ParentClass2): 
    pass
 A. SubClass1.__bases__
(,)
 B.SubClass2.__bases__
(, )
 C.SubClass1.__bases__
(, )
 D.ParentClass1.__bases__
(,)
正确答案:A
解析:
使用'__bases__'方法查看继承,SubClass1和SubClass2分别是单继承和多继承,所以选A
15.
(多选题)关于global语句和nonlocal语句,说法错误的是
 A.Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。
 B.nonlocal和global相似,不同之处在于,声明的变量必须在上层嵌套函数的作用域中
x C.Python中定义函数时,若想在函数外部对函数内的变量进行操作,就需要在函数内部声明其为global。
x D.nonlocal和global是作用完全相反的语句
正确答案:CD
解析:
A, B对
16.
(单选题)citys={
    '北京':{
        '朝阳':['国贸','CBD','天阶','我爱我家','链接地产'],
        '海淀':['圆明园','苏州街','中关村','北京大学'],
        '昌平':['沙河','南口','小汤山',],
        '怀柔':['桃花','梅花','大山'],
        '密云':['密云A','密云B','密云C']
    },
    '河北':{
        '石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'],
        '张家口':['张家口A','张家口B','张家口C'],
        '承德':['承德A','承德B','承德C','承德D']
    }
} 那么 for i in citys['北京']: print(i) 以下说法正确的是()
 A.朝阳 海淀 昌平 怀柔 密云
 B.圆明园 苏州街 中关村 北京大学
 C.圆明园','苏州街','中关村','北京大学
 D.字典不可以嵌套,所以以上说法都不对
正确答案:A
解析:
字典是支持无限级嵌套的
17.
(单选题)下列关于模块说法错误的是?
 A.import 模块名 这种导入方法需要 模块名.属性名 这种方式调用
 B.from 模块名 import * 这提供了一个简单的方法来导入一个模块中的所有项目
 C.form 模块名 import 属性名 语句让你从模块中导入一个指定的部分到当前命名空间中
 D.from 模块名 import * 语句让你从模块中导入一个指定的部分到当前命名空间中
正确答案:D
解析:
import 模块名 这种导入方法需要 模块名.属性名 这种方式调用,from 模块名 import * 这提供了一个简单的方法来导入一个模块中的所有项目,form 模块名 import 属性名 语句让你从模块中导入一个指定的部分到当前命名空间中
18.
(单选题)在Linux命令中,删除文件命令为
 A.mkdir
 B.rmdir
 C.mv
 D.rm
正确答案:D
解析:
D  rm删除文件
19.
(单选题)Python3.X中,下面代码输出结果是()
for i in [1, 2, 3, 4][::-1]:
....print (i,end='')
 A.1234
 B.4321
 C.3214
 D.以上说法错误
正确答案:B
解析:
解析:
切片操作符在python中的原型是
[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引的值
步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0

20.
(单选题)g = (x * x for x in range(10))
g
 A.[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 B.[0,1,2,3,4,5,6,7,8,9]
 C. at 0x1022ef630>
 D.(0,1,2,3,4,5,6,7,8,9)
正确答案:C
解析:
g是一个生成器,所以选C
21.
(单选题)关于input函数的返回结果是什么()
 A.一个字符串
 B.一个表达式
 C.一个整数
 D.以上都不对
正确答案:A
解析:
input([prompt])

如果[prompt]是存在的,它被写入标准输出中没有换行。然后函数读取输入,将其转换为一个字符串,然后返回。
例如:b = input(‘输入’:) 输入:123  type(b)

22.
(单选题)下列语句执行结果是什么? 
a = [1, 2, 3]
print(a * 3)
 A.[1, 2, 3, 1, 2, 3, 1, 2, 3]
 B.[3, 6, 9]
 C.[3, 6, 9, 3, 6, 9, 3, 6, 9]
 D.[1, 2, 3]
正确答案:A
解析:
a * 3就是把集合以相同元素扩容至3倍
23.
(单选题)linux命令中可以删除所在目录及其下级目录文件和文件夹的命令是
 A.ls
 B.delete
 C.rm -r
 D.del
正确答案:C
解析:
需要加参数 r   但是平时用的时候 还会加上 f  强制删除
rm -rf
24.
(单选题)下列语句的执行结果是什么?
a = 1
for i in range(5):
....if i == 2:
........break
........a += 1
....else:
........a += 1
print(a)
 A.3
 B.4
 C.5
 D.6
正确答案:A
解析:i从0开始
当i ==0 时 a = 1+1 此时 a = 2  接着循环 i == 1时,此时a=2+1 a等于3,接着循环i ==2 跳出循环 此时打印a的值为3
25.
(单选题)下列哪种不是Python元组的定义方式? 
 A.(1,)必须有逗号
 B.(1, )
 C.(1, 2)
 D.(1, 2, (3, 4))
正确答案:A
解析:
(1)会被python认为是int类型,所以必须是(1,)
26.
(单选题)下列说法不正确的是?
 A.GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码
 B.GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名
 C.UTF-8 (8-bit Unicode Transformation Format)是最流行的一种对 Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。ASCII 字符每个只需要用一个 byte ,与 ASCII 的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。
 D.Unicode是最流行的一种对 Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。ASCII 字符每个只需要用一个 byte ,与 ASCII 的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。
正确答案:D
解析:
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

  UTF-8 (8-bit Unicode Transformation Format)是最流行的一种Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。ASCII 字符每个只需要用一个 byte ,与 ASCII 的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。
27.
(单选题)sorted([6,1,3,9,12])输出的结果为?
 A.[6,1,3,9,12]
 B.[12,9,6,3,1]
 C.[1,3,6,12,9]
 D.[1,3,6,9,12]
正确答案:D
解析:
sorted()默认会把列表中的内容排序按升序排列
28.
(单选题)下列关于range(),说法错误的是?
 A.range()函数返回的是一个range对象
 B.range()函数返回的是一个列表
 C.可以使用list()函数将range对象转换成list对象
 D.range是一个可迭代的对象,可以使用for循环迭代输出。
正确答案:B
解析:
range()函数返回的是一个range对象,可以使用list()函数将其转换成list对象

range返回的是一个可迭代的对象,并不是列表,需要对返回的对象进行list转换

29.
(单选题)下列关于装饰器说法错误的是?
 A.装饰器本质上是一个Python函数
 B.常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。
 C.装饰器的作用就是为已经存在的对象添加额外的功能。
 D.装饰器不能是类
正确答案:D
解析:
python有类装饰器
30.
(多选题)__new__和__init__的区别,说法正确的是? 
 A.__new__是一个静态方法,而__init__是一个实例方法
 B.__new__方法会返回一个创建的实例,而__init__什么都不返回
 C.只有在__new__返回一个cls的实例时,后面的__init__才能被调用
 D.当创建一个新实例时调用__new__,初始化一个实例时用__init__
正确答案:ABCD
解析:
__init__ 方法为初始化方法, __new__方法才是真正的构造函数。
__new__方法默认返回实例对象供__init__方法、实例方法使用。
__init__ 方法为初始化方法,为类的实例提供一些属性或完成一些动作。
__new__ 方法创建实例对象供__init__ 方法使用,__init__方法定制实例对象。
__new__是一个静态方法,而__init__是一个实例方法。

31.
(单选题) s = ‘hello’ 求s[::-1]的值为()
 A.'olleh'
 B.‘hello’
 C.‘e’ 
 D.以上都不对
正确答案:A
解析:
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
     格式:【start:end:step】
     start:起始索引,从0开始,-1表示结束
     end:结束索引
     step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值

32.
(单选题)文件权限读、写、执行的三种标志符号依次是
 A.rwx
 B.xrw
 C.rdx
 D.srw
正确答案:A
解析:
选A,r是read读,w是write写,x是执行
33.
(单选题)下列程序执行结果为
for i in range(2):
    print(i, end="")
for i in range(4, 6):
    print(i, end="")
 A.246
 B.0145
 C.012456
 D.0
1
4
5
正确答案:B
解析:
range()函数的语法如下:
    range(start, end[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5);
end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 等于 [0, 1, 2, 3, 4],没有5;
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range(2)是01,range(4, 6)是45,由于打印时使用了end=""把每次打印的换行符替换掉,所以最后结果为0145
34.
(单选题)a = [1,2,3,["a","b"]]  b = copy.copy(a)   a[3].append(5)
b的值为()
 A.a = [1,2,3,["a","b"]]
 B.[1, 2, 3, ['a', 'b', 5]]
 C.a = [1,2,3,5,["a","b"]]
 D.以上说法均不正确
正确答案:B
解析:
本题考查内容是浅拷贝
35.
(单选题)关于Python中的复数,下列说法错误的是
 A.Python的复数由实数部分和虚数部分构成,可以用a + bj表示
 B.实部和虚部都是浮点数
 C.虚部必须后缀j,且必须是小写
 D.Python的复数可以用complex(a,b)表示
正确答案:C
解析:
虚部可以用大写J作为后缀
36.
(单选题)以下不能创建一个字典的语句是
 A.dict1 = {}
 B.dict2 = { 3 : 5 }
 C.dict3 = {[1,2,3]: “uestc”}
 D.dict4 = {(1,2,3): “uestc”}
正确答案:C
解析:
字典中键必须是唯一的。列表中的项目包括在方括号中。列表是可变的数据类型(可以增加或删除项目)。所以,列表中的项目不能用来作为字典的键。
37.
(单选题)下列关于闭包函数,说法正确的是?
 A.闭包函数不需要内嵌
 B.内嵌函数必须使用外部函数的变量
 C.外部函数的返回值是外部函数
 D.外部函数的返回值可以任意
正确答案:B
解析:
python中闭包必须满足三大特点 :1.闭包函数必须有内嵌函数2.内嵌函数需要引用该嵌套函数上一级namespace中的变量3.闭包函数必须返回内嵌函数
38.
(单选题)list(map( lambda x : x + 1, [1, 2, 3] ))的出的结果是()
 A.[2, 3, 4]
 B.
 C.[1,2,3]
 D.以上都不对
正确答案:A
解析:
a = [1, 2, 3]
r = []
for i in a:
    r.append(i+1)
39.
(单选题)下列的输出结果?
class Shape():
...    def draw(self):
......        self.drawSelf()

class Point(Shape):
...    def drawSelf(self):
......        print("正在画一个点")


class Circle(Shape):
...    def drawSelf(self):
......        print("正在画一个圆")

shape = Point()
shape.draw()

shape = Circle()
shape.draw()
 A.正在画一个圆
正在画一个点
 B.正在画一个圆
正在画一个圆
  C.正在画一个点
正在画一个点
 D.正在画一个点
正在画一个圆

正确答案:D
解析:
多态,同样的方法在不同的类中有不同的表现形式,点类和圆类同样的方法但是都会返回各自不同的结果。
40.
(单选题)在超级计算机计算机中,使用最多的操作系统是
 A.NetWare  
 B.Windows NT
 C.Windows XP  
 D.Linux
正确答案:D
解析:
选D
41.
(单选题) 在终端输入 1 + 2.0的输出结果是什么()
 A.(1 + 2.0)
 B.3
 C.3.0
 D.(3.0)
正确答案:C
解析:
整形和浮点型相加的时候,最后结果会取能够表示精度更高的值来作为他的类型
42.
(单选题)文件exer1的权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,以下哪个命令正确?()
 A.chmod a+x,g+w exer1
 B.chmod 765 exer1
 C. chmod o+x exer1
 D.chmod g+w exer1
正确答案:A
解析:
指令名称 : chmod 
使用权限 : 所有使用者 
使用方式 : chmod [-cfvR] [--help] [--version] mode file... 
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 
参数 : 
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 
-c : 若该档案权限确实已经更改,才显示其更改动作 
-f : 若该档案权限无法被更改也不要显示错误讯息 
-v : 显示权限变更的详细资料 
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 
--help : 显示辅助说明 
--version : 显示版本 
43.
(单选题)def factorial(n) :
  if n == 1 :
    return 1
  return n * factorial(n - 1)


print(factorial(5))
 A.120
 B.20
 C.1
 D.5
正确答案:A
解析:
递归 5*4*3*2*1=120
44.
(多选题)关于 lambda 函数说法错误的是()
 A.lambda 函数是一个匿名函数
 B.lambda 函数拥有自己的命名空间,会产生新的作用域
x C.lambda函数主体是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去。
x D.以上说法都不对
正确答案:CD
解析:
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
A说法为正确选项故D选项错误
45.
(单选题)1 + 2 * 2 ** 3 + 6 // 3 的结果为()
 A.19 
 B.131
 C.218
 D. 7
正确答案:A
解析:
本题考查的是算数运算符的优先级 第一级是** 第二级 * //  / %  第三集是+ - 因此选A
46.
(单选题)下列关于异常处理说法错误的是?
 A.捕捉异常可以使用try/except语句。
  B.try/except语句用来检测try语句块中的错误,从而让except语句匹配并处理。
 C.如果你不想在异常发生时结束你的程序,只需在try里捕获它。
 D.如果你不想在异常发生时结束你的程序,只需在except里捕获它。
正确答案:D
解析:
如果你不想在异常发生时结束你的程序,只需在try里捕获它
47.
(单选题)下列关于异常说法错误的是?
 A.异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
  B.一般情况下,在Python无法正常处理程序时就会发生一个异常。
 C.异常是Python对象,表示一个错误。
 xD.当Python脚本发生异常时我们需要捕获处理它,但是程序不会终止执行。
正确答案:D
解析:
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行
48.
(单选题)下列代码的运行结果是? 
print('a' < 'b' < 'c')
 A.a
 B.c
 C.True
 D.False
正确答案:C
解析:
Python 支持连续比较,'a' < 'b' < 'c' 相当于 'a' < 'b' and 'b' < 'c',其本质是字符 ASCII 码的大小比较,该判断式结果为 True。
49.
(单选题)关于字符串下列说法错误的是
 A.字符应该视为长度为1的字符串
 B.字符串以\0标志字符串的结束
 C.既可以用单引号,也可以用双引号创建字符串
 D.在三引号字符串中可以包含换行回车等特殊字符
正确答案:B
解析:
B 以”\0”结尾是C/C++中存在,在python中不存在!
50.
(单选题)Linux中,用于复制文件或目录的命令是()
 A. pwd
 B.cp
 C.copy
 D.cd
正确答案:B
解析:
此题目考查Linux的常用命令
pwd为当前目录 
Cp 复制文件或目录
cd为目录跳转 
copy非法命令
 

你可能感兴趣的:(python基础)