Python面试题基础
第一章 Python基础
- 为什么学习Python?
答:家里有在这个IT圈子里面,也想让我接触这个圈子,然后给我建议学的Python,然后自己通过百度和向有学过Python的同学了解了Python,Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方比较多,特别是在人智能,和数据分析这方面。在未来我觉得是往自动化,人工智能这方面发展的,所以学习了Python
- 通过什么途径学习的Python?
答:刚开始接触Python的时候,到网上里面跟着视频学基础,再后来网上到看技术贴,然后看到有人推荐廖雪峰的Python教程,
练项目到GitHub上面找一些小项目学习
- 公司线上和开发环境使用的什么系统?
答:linux系统
- Python和Java、PHP、C、C#、C++等其他语言的对比?
答:(1)与java相比:在很多方面,Python比Java要简单,比如java中所有变量必须声明才能使用,而Python不需要声明,用少量的代码构建出很多功能;(高效的高级数据结构)
(2)与php相比:Python支持多元化,PhP比较单一,python标准包直接提供了工具,并且相对于PHP代码更易于维护;
(3)Python与c相比:
Python 和 C Python这门语言是由C开发而来
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功 能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,绝逼是慢了
(4)Python于C#相比
(5)Python于C+
- 简述解释型和编译型编程语言?
答:解释型:就是边解释边执行(Python,php)
编译型:编译后再执行(c、java、c#)
- Python解释器种类以及特点?
答:CPython
是官方版本的解释器:CPython。是使用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
PyPy
由Python写的解释器,它的执行速度是最快。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),运行速度比cpython快
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
小结:
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序
- 位和字节的关系?
答:8位等于1字节
- b、B、KB、MB、GB 的关系?
答:8bit = 1 B
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
- 请至少列举5个 PEP8 规范(越多越好)
答:1、使用4个空格而不是tab键进行缩进。
2、每行长度不能超过79
3、使用空行来间隔函数和类,以及函数内部的大块代码
4、必要时候,在每一行下写注释
5、使用文档注释,写出函数注释
6、在操作符和逗号之后使用空格,但是不要在括号内部使用
7、命名类和函数的时候使用一致的方式,比如使用CamelCase来命名类,
使用lower_case_with_underscores来命名函数和方法
8、在类中总是使用self来作为默认
9、尽量不要使用魔法方法
10、默认使用UTF-8,甚至ASCII作为编码方式
11、换行可以使用反斜杠,最好使用圆括号。
12、不要在一句import中多个库,
空格的使用:
各种右括号前不要加空格。
逗号、冒号、分号前不要加空格。
函数的左括号前不要加空格。如Func(1)
序列的左括号前不要加空格。如list[2]
操作符左右各加一个空格,不要为了对齐增加空格
函数默认参数使用的赋值符左右省略空格
不要将多句语句写在同一行,尽管使用‘;’允许
if/for/while语句中,即使执行语句只有一句,也必须另起一行
函数命名使用全部小写的方式,常量命名使用大写,类属性(方法和变量)使用小写
类名使用大驼
- 求结果:or and
答:1. 求结果:1 or 3
print(1 or 3) # 1
2. 求结果:1 and 3
print(1 and 3) # 3
3. 求结果:0 and 2 and 1
print(0 and 2 and 1) # 0
4. 求结果:0 and 2 or 1
print(0 and 2 or 1) # 1
5. 求结果:0 and 2 or 1 or 4
print(0 and 2 or 1 or 4) # 1
6. 求结果:0 or Flase and 1
print(0 or False and 1) # Flase
总结:
# x or y 如果 x为真,则值为x,否则为y
# x and y 如果 x 为真,则值为 y,
- ascii、unicode、utf-8、gbk 区别?
答:python2内容进行编码(默认ascii),而python3对内容进行编码的默认为utf-8。
ascii 最多只能用8位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。不支持中文
unicode 万国码
UCS -2 是使用2个字节
UCS -4 是使用4个字节
utf-8 万国码的升级版 一个中文字符==三个字节 英文是一个字节 欧洲的是 2个字节 亚洲 3个字节
gbk 国内版本 一个中文字符==2个字节 英文是一个字节
gbk 转 utf-8 需通过媒介 Unicode
- 字节码和机器码的区别?
答:机器码,学名机器语言指令,有时也被称为原生码,是电脑的CPU可直接解读的数据。
字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器
- 三元运算编写格式。
答:x if x>y else y
- 列举你了解的所有Python2和Python3的区别?
答:
1:打印时,py2需要可以不需要加括号,py3 需要
python 2 :print ('lili') , print 'lili'
python 3 : print ('lili')
python3 必须加括号
2:内涵
Python2:1,臃肿,源码的重复量很多。
2,语法不清晰,掺杂着C,php,Java,的一些陋习。
Python3:几乎是重构后的源码,规范,清晰,优美。
3、输出中文的区别
python2:要输出中文 需加 # -*- encoding:utf-8 -*-
Python3 : 直接搞
4:input不同
python2 :raw_input
python3 :input 统一使用input函数
5:指定字节
python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4分别用于指定使用2个字节、4个字节表示一个unicode;
python3无法进行选择,默认使用 ucs4
查看当前python中表示unicode字符串时占用的空间:
impor sys
print(sys.maxunicode)
#如果值是65535,则表示使用usc2标准,即:2个字节表示
#如果值是1114111,则表示使用usc4标准,即:4个字节表示
6:
py2:xrange
range
py3:range 统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率
7:在包的知识点里
包:一群模块文件的集合 + __init__
区别:py2 : 必须有__init__
py3:不是必须的了
8:不相等操作符"<>"被Python3废弃,统一使用"!="
9:long整数类型被Python3废弃,统一使用int
10:迭代器iterator的next()函数被Python3废弃,统一使用next(iterator)
11:异常StandardError 被Python3废弃,统一使用Exception
12:字典变量的has_key函数被Python废弃,统一使用in关键词
13:python3和python2编码不同
14:python3字符串是str 字节是bytes;python2
- Py2项目如何迁移成py3?
答:使用python3 中自带的2to3脚本在终端中输入一下命令
C:\Users\by\AppData\Local\Programs\Python\Python36\Tools\scripts\2to3.py -w D:\untitled2\aaa.py
这样第一个内容是python解释器 然后要执行的脚本文件路劲,执行这个脚本文件要进行修改的文件内
- 用一行代码实现数值交换:
答:a = 1 b = 2
a,b = b,a
这样就是在内存中改变里他们的引用指向
- Python3和Python2中 int 和 long的区别?
答:python2中int是存放一定长度的整型,long是存放int不能够存放的整型
python3中是没有long,python3中int要比python2中的int能多存储整
- xrange和range的区别?
答:python2中xrange和python3中的range是一样的,都是一个可迭代对象
python2中的range获取到就是一个列表,python2xrange和python3range获取的都是它自己本
- 如何实现字符串的反转?如: name = "wupeiqi" 请反转为 name = "iqiepuw" 。
答:name = 'wupeiqi'
print(name[::-1])
- 文件操作时:xreadlines和readlines的区别?
答:xreadlines readlines的区别是一个是readlines是将内容存放到一个列表中,xreadlines是将内容存放到一个迭代器中
from collections import Iterator,Iterable
- 列举布尔值为False的常见值?
答:0,None,'',[],(),{}
- 列举字符串、列表、元组、字典每个常用的5个方法?
答:
字符串 |
列表 |
元组 |
字典 |
strip split replace find upper lower
|
append insert remove pop count
|
count index 无
|
get setdefault update pop popitem keys values item
|
- is和==的区别?
答:is 是查看两端的数据的内容地址是不是一致 == 是查看两端的内容是否一致
- 1、2、3、4、5 能组成多少个互不相同且无重复的三位数
答:
- 什么是反射?以及应用场景?
答:反射就是将字符串的内容当做对象使用;
应用场景:前后端交互的时候前端返回的类名(函数名)是字符串的时候我们想要使用就要用到反射
- 简述Python的深浅拷贝?
答:浅拷贝,只拷贝第一层数据
深拷贝中可变数据类型共用的是一个,不可变的数据类型会重新开辟一个新的空间
- Python垃圾回收机制?
答:1.引用计数
2.标记清除
3.分代回收
https://www.cnblogs.com/pinganzi/p/6646742.html 参考链接
- Python的可变类型和不可变类型的区别?
答:可变和不可变的区别我们可以通过哈希来判断,还可以通过内存地址来区分,如果内存值进行了修改就说明是不可变的数据
- 求结果
答:{'k1': [666], 'k2': [666]}
{'k1': 777, 'k2': [666]}
fromkeys是将后边的[](空列表)当做了k1和k2的值,其实k1和k2的是同一个列表
我们将k1对应的空列表添加了一个666 k2也就有了
再然后我们通过k1修改了对应的值是777 就是将值的指向指向了777 不在使用之前的那个列表
- 一行代码实现删除列表中重复的值 ?
答:list(set(list))
- 如何实现 “1,2,3” 变成 [‘1’,’2’,’3’]
答:
- 如何实现[‘1’,’2’,’3’]变成[1,2,3]
答
- 比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 c = [(1,),(2,),(3,) ] 的区别?
答:
- 如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?
答:
- 常用字符串格式化哪几种?
答:方式一:
print('{}{}'.format('大娘子','小娘子'))
print('{1}{0}'.format('大娘子','小娘子'))
print('{a}{b}'.format(a='大娘子',b='小娘子'))
方式二:
print('%s'%'大娘子')
print('%d'%186)
方式三:
print(f'{"大娘子"}')
a = '小娘子'
print(f'{a})
- 什么是断言(assert)?应用场景?
答:断言是判断这个这个语句是否是我们预想的这样,如果不是的就会报错.
前端将数据发送给后端,后端进行验证的时候就可以使用断言
- 有两个字符串列表a和b,每个字符串是由逗号分隔的一些字符:
答:
- 有一个多层嵌套的列表A=[1,2,[3,4,["434",...]]], 请写一段代码遍历A中的每一个元素并打印出来
答:
- a = range(10),a[::-3] 的结果是 ____
答:[9,6,3,0]
- 下面那个命令可以从虚拟环境中退出
A. deactivate
B. exit
C. quit
D. 以上均可
答: A
- 将列表内的元素,根据位数合并成字典
答:
- 请尽量用简洁的方法将二维数组转换成一维数组
例: 转换前
lst=[[1,2,3],[4,5,6],[7,8,9]]
转换后lst = [1,2,3,4,5,6,7,8,9]
答:
- 将列表按下列规则排序, 补全代码
1.正数在前负数在后
2.正数从小到大
3.负数从大到小
例:
排序前[7,-8,5,4,0,-2,-5]
排序后[0,4,5,7,-2,-5,-8]
补全代码:
答:print(sorted(lst1,key=lambda x:[x<0, abs(x)]))
- 哈希冲突回避算法有哪几种, 分别有什么特点?
答:1.开放定址法
2.链地址法
3.再哈希法
4.建立一个公共溢出区
- 简述Python的字符串驻留机制?
答:驻留机制是为了节省内存,提高效率.字符串满足驻留机制的条件如下:
1.字符串进行乘法计算的时候,总长度不能超过20,且乘法运算的时候0和1除外
2.同样的内容不进行乘法的时候长度无限,也遵守驻留
- 以下代码输出是什么? list=['a','b','c','d','e'] print list[10:]
A. []
B. 程序异常
C. ['a','b','c','d','e']
D. 输出空
答: A
- Python语言中那些数据类型能做为字典的key?
A. 没有限制
B. 字母数字下划线
C. 字母
D. 可被hash的类型
答: D
- 以下两段代码的输出一样吗, 占用系统资源一样吗, 什么时候要用xrange代替range
答:输出的结果是一样,占用的资源不一样range比较消耗资源.当数据量比较大的时候使用xrange来代替range比较好
- 如下代码段
答:
- 现有字典d={"a":26,"g":20,"e":20,"c":24,"d":23,"f":21,"b":25} 请按照字段中的value字段进行排序。
答:print(sorted(d.items(),key=lambda x:x[1]))
- 给定两个listA,B,请用Python找出A,B中相同的元素,A,B中不同的元素
答:
- 下列叙述中错误的是
A. 栈是线性结构
B. 队列是线性结构
C. 线性列表是线性结构
D. 二叉树是线性结构
答:D
- 一个栈的输入序列为1,2,3,4,5, 则下列序列中不可能是栈的输出序列的是
A.
1 5 4 3 2
B. 2 3 4 1 5
C. 1 5 4 2 3
D. 2 3 1 4 5
答:C
- 下图那些PEP被认为涉及到了代码规范
1.
PEP7
2. PEP8
3. PEP20
4. PEP257
答:2
- 下面那些是Python合法的标识符?那些是Python的关键字?
1.
int32
2. 40XL
3. saving$
4. ptint
5. this
6. self
7. 0x40L
8. true
9. big-daddy
10. True
11. if
12. do
13. Yield
答:int32,saving,ptint,this,self true 这是合法的标识符,True,if yield 这是Python的关键字
- 从0-99这100个数中随机取出10个, 要求不能重复, 可以自己设计数据结构
答:
- python 判断一个字典中是否有这些key: "AAA",'BB','C',"DD",'EEE'(不使用for while)
答:
- 有一个list["This","is","a","Boy","!"], 所有元素都是字符串, 对他进行大小写无关的排序
答:
- 描述下dict的item()方法与iteritems()的不同
- 请列举你所知道的Python代码检测工具及他们间的区别?
答:iteritems 获取到的是一个迭代器,
items获取的是一个列表
答:Flake8
pep8
pycodestyle
Pyflakes
- 介绍一下try except的用法和作用?
- 输入一个字符串, 返回倒序排列的结果 如: abcdef, 返回 fedcba
答:
Try except:是一个异常捕获,用法就是在一些容易出现逻辑错误的地方加装,然后进行处理.不让异常抛出.
作用一般在程序上线使用的时候可以使用,如果程序出现错误问题的时候也不能让用户看见报错,我们就可以使用异常捕获
然后对程序进行闪退
答:
- 阅读以下代码, 并写出程序的输出结果
答:[4,5,7]
- 现有列表alist=[3,1,-4,-2],按其元素的绝对值大小进行排序?
答:
print(sorted(alist,key=lambda x:abs(x)))
- 填空题
1. 表达式 3<4<5 是哪一个表达式的缩写_3<4 and 4>5__.
2. 获取Python解释器版本的方法是:_ python -V___.
3. 如果模块是被导入的,__name__的值是__模块的名字__, 如果模块是被直接执行的__name__的值是__main__.
4. Python的内存管理中, 为了追踪内存中的对象, 使用了_引用计数___这一简单技术
5. Python的标准解释器是有C语言实现的, 称为_cpython___, 有Java实现的被称为_jython__.
6. Python中, _del__语句能直接显示的释放内存资源
7. Python的乘方运算符是__**__
答:3<4 and 4<5
python解释器 -V
模块的名字,__main__
引用计数
cpython jython
del
**
- 现有字典mydict和变量onekey, 请写出从mydict中取出onekey值的方法(不止一种写法, 多写加分, 并请叙述不同写法的区别, mydict中是否存在onekey的键值, 不确定)
答:mydict['onekey'] 这种获取方式如果键不存在就会报错
mydict.get('onekey') 这种获取方式如果键不存在就返回None 我们可以自定义返回值
mydict.setdefault('onekey') 这种方式也是查看键在字典中是否存在,不存在就返回None
if 'onekey' in mydict: 这种方式是利用字典的键来进行校验是否存在
- 现有一列表alist, 请写出两种去除alist中重复元素的方法, 其中:
– 要求保持原有列表中元素的排列顺序。
– 无需考虑原有列表中元素的排列顺序。
答:
- 那些情况下, y != x - (x-y)会成立?
答:
- 用Python实现99乘法表(用两种不同的方法实现)
答:
- 获取list中的元素个数,和向末尾追加元素所用的方法分别是什么?
- 判断 dict 中有没有某个 key 用的方法是什么?
答:获取个数 len() count
末尾追加 append() insert(-1,'内容)
答:
- 填空
l=range(100)
1. 如何取第一到第三个元素用的是________
2. 如何取倒数第二个元素_________
3. 如何取后十个_________
答:
- 如何判断一个变量是否是字符串?
答:
- list和tuple有什么不同?
答:
list是一个可变的数据结构,能够进行增删改
tuple是一个不可变的数据结构,不能够进行增删改,可以存放一些重要的数据
- a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?
答:
- 一行代码生成列表 [1,4,9,16,25,36,49,64,81,100]。
答:
- 以下叙述正确的是
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体和switch语句体内使用break语句
C. 在循环体内使用break语句或者continue语句的作用相同
D. 从多层循环嵌套中退出时, 只能使用goto语句
答:B
- 读代码
答:5,4,3,2,1,
- 写结果
A. foo
B. foo foo
C. foo 2
D. 2
E. An exception is thrown
答:E TypeError: cannot concatenate 'str' and 'int' objects
- 求结果
A.
1
B. 2
C. 7
D. 10
答:D
- python里如何实现tuple和list的转化
- type(1+2L*3.14)的结果是
答:
A. int
B. long
C. float
D. str
答:C
- 若k为整型, 下列while循环执行的次数为
答:
python3中 循环执行次数是10次
python2中 循环执行次数是9次
- 以下何者是不合法的布尔表达式
A. x in range(6)
B. 3 = a
C. e>5 and 4==f
D. (x-6)>5
答:B
- python不支持的数据类型有
A.
char
B. int
C. float
D. list
答:A
- 如何在Python中拷贝一个对象, 并说明他们之间的区别?
答:
使用[:]这样就可以进行拷贝一个对象,这个是浅拷贝
使用copy模块 copy.copy这是浅拷贝
使用copy模块 copy.deepcopy 这是深拷贝
浅拷贝就是拷贝对象的一层元素.
深拷贝是拷贝对象里的多层元素
- 99(10进制)的八进制表示是什么?
答:
- 下列Python语句正确的是
1. min = x is x<y=y
2. max = x>y?x:y
3. if(x>y) print x
4. while True:pass
答:4
- list对象 alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'v','age':25},]按alist中元素的age由大到小排序。
答:
- 关于Python程序的运行性能方面, 有什么手段能提升性能?
答:1、使用多进程,充分利用机器的多核性能
2、对于性能影响较大的部分代码,可以使用C或C++编写
3、对于IO阻塞造成的性能影响,可以使用IO多路复用来解决
4、尽量使用Python的内建函数
5、尽量使用
- Python是如何进行内存管理的? Python的程序会内存泄漏吗?说说有没有什么方面阻止或检测内存泄漏
答:引用计数
Python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,就是引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要的时候,这个对象的引用计数为0时,他被垃圾回收。
垃圾回收
当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉。他会去检查那些引用计数为0的对象,然后清除其在内存中的空间。当然除了引用计数为0的会被清除,还有一种情况也会被垃圾收集器清掉,当两个对象相互引用时,他们本身其他引用已经为0了。
内存池机制
Python提供了对内存的垃圾收集机制,但是他将不用的内存放到内存池而不是反回给操作系统。
python的程序会内存泄漏吗?
会发生内存泄漏,在Python程序里,内存泄漏是由于一个长期持有的对象不断的往一个dict或者list对象里添加新的对象, 而又没有即时释放,就会导致这些对象占用的内存越来越多,从而造成内存泄漏。另外,对象的交叉引用也会造成内存无法释放的问题。
说说有没有什么方面阻止或者检测内存泄漏?
程序员管理好每个python对象的引用,尽量在不需要使用对象的时候,断开所有引用
尽量少通过循环引用组织数据,可以改用weakref做弱引用或者用id之类的句柄访问对象
通过gc模块的接口可以检查出每次垃圾回收有哪些对象不能自动处理,再逐个逐个处理
- 详细说说tuple,list,dict的用法, 他们的特点
- 一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?
答:tuple 是用小括号()组成,没有增删改,是用于存放一些不修改的数据.里边存放的数据安全系数较高,特点是不可变
list 使用中括号[]组成,有增删改,是用于存放一些数据,经常修改的数据.特点是可变
dict 使用大括号{}组成,有增删改,是用于存放一些键值数据,特点是查找方便.能够准确的查找到
答:
- 已知Alist=[1,2,3,1,2,1,3],如何根据Alist得到[1,2,3]
答:list(set(Alist))
- 已知stra = 'wqedsfsdrfweedqwedqw'
1. 如何获取最后两个字符
2. 如何获取第二个和第三个字符
答:print(s[-2:])
print(s[1:3])
- 已知Alist = ["a","b","'c'],将Alist转化为'a,b,c'的实现过程
- 已知ip='192.168.0.100' 代码实现提取各部分并写入列表。
答:
答:ip_list = ip.split('.')
- python代码如何获取命令行参数?
答:
- 写代码
写出由tupleA和tupleB得到res的及具体实现过程
答:
100. 选出以下表达式表述正确的选项
A.
{1:0,2:0,3:0}
B. {'1':0,'2':0,'3':0}
C. {(1,2):0,(4,3):0}
D. {[1,2]:0,[4,3]:0}
E. {{1,2}:0,{4,3}:0}
答:A,B,C
101. what gets printde() ?
A. 1
B. 2
C. 6
D. 10
E. An execption is thrown
答:C
102. what gets printde() ?
A. 4
B. 5
C. 8
D. 12
E. An exception is thrown
答:B
103. what getsprintde() ?
A. 1
B. 2
C. An exception is thrown
答:B
104. what getsprintde() ? Assuming ptrhon version2.x()
A. int
B. float
C. 0
D. 1
E. 0.5
答: B
105. 以下用来管理Python库管理工具的是
A.
APT
B. PIP
C. YUM
D. MAVEN
答:B
106. which numbers are printed ()?
A. 2,4,6
B. 0,1,2,4,5,6
C. 0,1,4,5
D. 0,1,4,5,6,7,8,9
E. 1,2,4,5,6
答:C
107. 求结果
A. 5
B. 5.0
C. 5.5
D. 6
E. 6.0
答:C
108. 关于Python的内存管理, 下列说法错误的是
A. 变量不必事先声明
B. 变量无需先创建和赋值而直接使用
C. 变量无需指定类型
D. 可以使用del释放资源
答:B
109. 下面那个不是Python合法的标识符
A.
int32
B. 40xl
C. self
D. name
答:B
110. 下列哪种说法是错误的
A. 除字典类型外, 所有标准对象均可用于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
答:A
111. 下列表达是的值为True的是
A.
5+4j >2-3j
B. 3>2>2
C. (3,2)<("a","b")
D. " abc" > 'xyz'
答:C
112. 关于Python的复数, 下列说法错误的是
A. 表示复数的语法是 real+imagej
B. 实部和虚部都是浮点数
C. 虚部后缀必须是j, 且必须小写
D. 方法conjugate返回复数的共轭复数
答:C
113. 关于字符串下列说法错误的是
A. 字符应视为长度为1的字符串
B. 字符串以\0标志字符串的结束
C. 既可以用单引号, 也可以用双引号创建字符串
D. 在三引号字符串中可以包含换行回车等特殊字符
答:B
114. 以下不能创建一个字典的语句是
A.
dic1 = {}
B. dic2 = {3:5}
C. dic3 = {[1,2,3]:"usetc"}
D. dic4 = {(1,2,3):"usetc"}
答:C
115. python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
答:list[:]
import copy
copy.copy()
赋值是两个对象使用的是一个内容
浅拷贝是将对象的第一层元素进行复制,开辟一个新的空间存放
深拷贝是将对象里多层元素进行复制,开辟一个新的空间存
116. 描述在python中的元祖,列表,字典的区别,并且分别写一段定义,添加,删除操作的代码片段。
答:
117. 选择结果
A. 11
B. 12
C. 21
D. 22
E. 23
答:B
118. 下面程序的输出结果是
答:yes
119. 1 or 2 和1 and 2输出分别是什么? 为什么
答:
1 or 2 输出 1
1 and 2 输出 2
or 运算都为真的取or前面的
and 运算都为真的取and后面的
120. 1 <(2==2)和1 <2==2的结果分别是什么, 为什么?
答:1<(2==2)这样的结果是False 是因为先算的括号里的内容
1<2==2 这样的结果是True 是因为这是一个简写 拆开来看是 1<2 and 2==2 所以结果是True
121. 如何打乱一个排好序的list对象alist?
答:
122. 如何查找一个字符串中特定的字符?find和index的差异?
答:
123. 把aaabbcccd这种形式的字符串压缩成a3b2c3d1这种形式。
答:
124. Python 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
答:
125. 输入一个字符串, 输出该字符串中字符的所有组合.
例如: 输入字符串"1,2,3", 则输出为1,2,3,12,13,23,123(组合数, 不考虑顺序, 所以12和21是等价的)
答:
126. 执行以下代码后, i和n的值为
A. 10, 0
B. 10, 1
C. 11, 0
B. 11, 1
答:C
127. 执行以下代码段后,x的值为
A. 10
B. 20
C. 30
D. 40
答:B
128. 对于一个非空字符串,判断其是否可以有一个子字符串重复多次组成,字符串只包含小写字母且长度不超过10000
示例1:
1. 输入"abab"
2. 输出True
3. 样例解释: 输入可由"ab"重复两次组成
示例2:
1. 输入"abcabcabc"
2. 输出True
3. 样例解释: 输入可由"abc"重复三次组成
示例3:
1. 输入"aba"
2. 输出False
答: