Python面试题基础

第一章 Python基础

  1. 为什么学习Python?

答:家里有在这个IT圈子里面,也想让我接触这个圈子,然后给我建议学的Python,然后自己通过百度和向有学过Python的同学了解了Python,Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方比较多,特别是在人智能,和数据分析这方面。在未来我觉得是往自动化,人工智能这方面发展的,所以学习了Python

  1. 通过什么途径学习的Python?

答:刚开始接触Python的时候,到网上里面跟着视频学基础,再后来网上到看技术贴,然后看到有人推荐廖雪峰的Python教程,

练项目到GitHub上面找一些小项目学习

  1. 公司线上和开发环境使用的什么系统?

答:linux系统

  1. 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+

  1. 简述解释型和编译型编程语言?
答:解释型:就是边解释边执行(Python,php)

     编译型:编译后再执行(c、java、c#)

  1. 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,而是通过网络调用来交互,确保各程序

  1. 位和字节的关系?

答:8位等于1字节

  1. b、B、KB、MB、GB 的关系?
答:8bit = 1 B

1024B = 1KB

1024KB = 1MB

1024MB = 1GB

  1. 请至少列举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语句中,即使执行语句只有一句,也必须另起一行

   函数命名使用全部小写的方式,常量命名使用大写,类属性(方法和变量)使用小写

类名使用大驼

  1. 求结果: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,

  1. 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

 

  1. 字节码和机器码的区别?
答:机器码,学名机器语言指令,有时也被称为原生码,是电脑的CPU可直接解读的数据。

字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器

 

  1. 三元运算编写格式。

答:x if x>y else y

  1. 列举你了解的所有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

 

  1. Py2项目如何迁移成py3?

答:使用python3 中自带的2to3脚本在终端中输入一下命令

 

C:\Users\by\AppData\Local\Programs\Python\Python36\Tools\scripts\2to3.py -w D:\untitled2\aaa.py

 

这样第一个内容是python解释器 然后要执行的脚本文件路劲,执行这个脚本文件要进行修改的文件内

  1. 用一行代码实现数值交换:

 

答:a = 1 b = 2

a,b = b,a

这样就是在内存中改变里他们的引用指向

 

  1. Python3和Python2中 int 和 long的区别?
答:python2中int是存放一定长度的整型,long是存放int不能够存放的整型

python3中是没有long,python3中int要比python2中的int能多存储整

 

  1. xrange和range的区别?
答:python2中xrange和python3中的range是一样的,都是一个可迭代对象

python2中的range获取到就是一个列表,python2xrange和python3range获取的都是它自己本

 

  1. 如何实现字符串的反转?如: name = "wupeiqi" 请反转为 name = "iqiepuw" 。
答:name = 'wupeiqi'

print(name[::-1])

  1. 文件操作时:xreadlines和readlines的区别?
答:xreadlines readlines的区别是一个是readlines是将内容存放到一个列表中,xreadlines是将内容存放到一个迭代器中

from collections import Iterator,Iterable

 

 

  1. 列举布尔值为False的常见值?

答:0,None,'',[],(),{}

  1. 列举字符串、列表、元组、字典每个常用的5个方法?

答:

 

字符串

列表

元组

字典

strip

    split

    replace

    find

    upper

    lower

 

    append

    insert

    remove

    pop

    count

 

count

    index

    无

 

    get

    setdefault

    update

    pop

    popitem

    keys

    values

    item

 

 

  1. is和==的区别?

答:is 是查看两端的数据的内容地址是不是一致 == 是查看两端的内容是否一致

  1. 1、2、3、4、5 能组成多少个互不相同且无重复的三位数

答:

  1. 什么是反射?以及应用场景?
答:反射就是将字符串的内容当做对象使用;

应用场景:前后端交互的时候前端返回的类名(函数名)是字符串的时候我们想要使用就要用到反射

 

  1. 简述Python的深浅拷贝?
答:浅拷贝,只拷贝第一层数据

深拷贝中可变数据类型共用的是一个,不可变的数据类型会重新开辟一个新的空间

 

  1. Python垃圾回收机制?
答:1.引用计数

    2.标记清除

    3.分代回收

https://www.cnblogs.com/pinganzi/p/6646742.html 参考链接

 

  1. Python的可变类型和不可变类型的区别?

答:可变和不可变的区别我们可以通过哈希来判断,还可以通过内存地址来区分,如果内存值进行了修改就说明是不可变的数据

  1. 求结果

 

答:{'k1': [666], 'k2': [666]}

{'k1': 777, 'k2': [666]}  

fromkeys是将后边的[](空列表)当做了k1和k2的值,其实k1和k2的是同一个列表

我们将k1对应的空列表添加了一个666 k2也就有了

再然后我们通过k1修改了对应的值是777 就是将值的指向指向了777 不在使用之前的那个列表

 

  1. 一行代码实现删除列表中重复的值 ?

答:list(set(list))

  1. 如何实现 “1,2,3” 变成 [‘1’,’2’,’3’]

答:

  1. 如何实现[‘1’,’2’,’3’]变成[1,2,3]

  1. 比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 c = [(1,),(2,),(3,) ] 的区别?

答:

  1. 如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?

答:

  1. 常用字符串格式化哪几种?
答:方式一:

print('{}{}'.format('大娘子','小娘子'))

print('{1}{0}'.format('大娘子','小娘子'))

print('{a}{b}'.format(a='大娘子',b='小娘子'))

 

方式二:

print('%s'%'大娘子')

print('%d'%186)

 

方式三:

print(f'{"大娘子"}')

a = '小娘子'

print(f'{a})

 

  1. 什么是断言(assert)?应用场景?
答:断言是判断这个这个语句是否是我们预想的这样,如果不是的就会报错.

前端将数据发送给后端,后端进行验证的时候就可以使用断言

 

  1. 有两个字符串列表a和b,每个字符串是由逗号分隔的一些字符:

 

 

答:

  1. 有一个多层嵌套的列表A=[1,2,[3,4,["434",...]]], 请写一段代码遍历A中的每一个元素并打印出来

答:

  1. a = range(10),a[::-3] 的结果是 ____

答:[9,6,3,0]

  1. 下面那个命令可以从虚拟环境中退出

               A.  deactivate
B.  exit
C.  quit
D.  以上均可

答: A

  1. 将列表内的元素,根据位数合并成字典

 

答:

  1. 请尽量用简洁的方法将二维数组转换成一维数组

               例: 转换前 lst=[[1,2,3],[4,5,6],[7,8,9]]

转换后lst = [1,2,3,4,5,6,7,8,9]

答:

  1. 将列表按下列规则排序, 补全代码

      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. 哈希冲突回避算法有哪几种, 分别有什么特点?
答:1.开放定址法

     2.链地址法

     3.再哈希法

     4.建立一个公共溢出区

  1. 简述Python的字符串驻留机制?
答:驻留机制是为了节省内存,提高效率.字符串满足驻留机制的条件如下:

1.字符串进行乘法计算的时候,总长度不能超过20,且乘法运算的时候0和1除外

2.同样的内容不进行乘法的时候长度无限,也遵守驻留

 

  1. 以下代码输出是什么? list=['a','b','c','d','e'] print list[10:]

               A.  []
B.  程序异常
C.  ['a','b','c','d','e']
D.  输出空

答: A

  1. Python语言中那些数据类型能做为字典的key?

               A.  没有限制
B.  字母数字下划线
C.  字母
D.  可被hash的类型

答: D

  1. 以下两段代码的输出一样吗, 占用系统资源一样吗, 什么时候要用xrange代替range

 

答:输出的结果是一样,占用的资源不一样range比较消耗资源.当数据量比较大的时候使用xrange来代替range比较好

  1. 如下代码段

 

答:

  1. 现有字典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]))

  1. 给定两个listA,B,请用Python找出A,B中相同的元素,A,B中不同的元素

答:

  1. 下列叙述中错误的是

               A.  栈是线性结构
B.  队列是线性结构
C.  线性列表是线性结构
D.  二叉树是线性结构

答:D

  1. 一个栈的输入序列为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

  1. 下图那些PEP被认为涉及到了代码规范

               1.  PEP7
2.  PEP8
3.  PEP20
4.  PEP257

答:2

  1. 下面那些是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的关键字

  1. 从0-99这100个数中随机取出10个, 要求不能重复, 可以自己设计数据结构

答:

  1. python 判断一个字典中是否有这些key: "AAA",'BB','C',"DD",'EEE'(不使用for while)

答:

  1. 有一个list["This","is","a","Boy","!"], 所有元素都是字符串, 对他进行大小写无关的排序

答:

  1. 描述下dict的item()方法与iteritems()的不同
  2. 请列举你所知道的Python代码检测工具及他们间的区别?
答:iteritems 获取到的是一个迭代器,
items获取的是一个列表
答:Flake8
pep8
pycodestyle
Pyflakes

 

  1. 介绍一下try except的用法和作用?
  2. 输入一个字符串, 返回倒序排列的结果 如: abcdef, 返回 fedcba
答:
Try except:是一个异常捕获,用法就是在一些容易出现逻辑错误的地方加装,然后进行处理.不让异常抛出.
    作用一般在程序上线使用的时候可以使用,如果程序出现错误问题的时候也不能让用户看见报错,我们就可以使用异常捕获
    然后对程序进行闪退

答:

  1. 阅读以下代码, 并写出程序的输出结果

 

 

 

答:[4,5,7]

  1. 现有列表alist=[3,1,-4,-2],按其元素的绝对值大小进行排序?

答:

print(sorted(alist,key=lambda x:abs(x)))

  1. 填空题

               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
**

 

  1. 现有字典mydict和变量onekey, 请写出从mydict中取出onekey值的方法(不止一种写法, 多写加分, 并请叙述不同写法的区别, mydict中是否存在onekey的键值, 不确定)
答:mydict['onekey']  这种获取方式如果键不存在就会报错
mydict.get('onekey')   这种获取方式如果键不存在就返回None 我们可以自定义返回值
mydict.setdefault('onekey') 这种方式也是查看键在字典中是否存在,不存在就返回None
if 'onekey' in mydict: 这种方式是利用字典的键来进行校验是否存在

 

  1. 现有一列表alist, 请写出两种去除alist中重复元素的方法, 其中:

–            要求保持原有列表中元素的排列顺序。

–            无需考虑原有列表中元素的排列顺序。

答:

  1. 那些情况下, y != x - (x-y)会成立?

答:

  1. 用Python实现99乘法表(用两种不同的方法实现)

答:

  1. 获取list中的元素个数,和向末尾追加元素所用的方法分别是什么?
  2. 判断 dict 中有没有某个 key 用的方法是什么?
答:获取个数  len()  count
末尾追加  append() insert(-1,'内容)

答:

  1. 填空

               l=range(100)

1. 如何取第一到第三个元素用的是________
2. 如何取倒数第二个元素_________
3. 如何取后十个_________

答:

  1. 如何判断一个变量是否是字符串?

答:

  1. list和tuple有什么不同?
答:
list是一个可变的数据结构,能够进行增删改
tuple是一个不可变的数据结构,不能够进行增删改,可以存放一些重要的数据

 

  1. a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?

答:

  1. 一行代码生成列表 [1,4,9,16,25,36,49,64,81,100]。

答:

  1. 以下叙述正确的是

               A.  continue语句的作用是结束整个循环的执行
B.  只能在循环体和switch语句体内使用break语句
C.  在循环体内使用break语句或者continue语句的作用相同
D.  从多层循环嵌套中退出时, 只能使用goto语句

答:B

  1. 读代码

 

答:5,4,3,2,1,

  1. 写结果

              
A.  foo
B.  foo foo
C.  foo 2
D.  2
E.  An exception is thrown

答:E    TypeError: cannot concatenate 'str' and 'int' objects

 

  1. 求结果

     

               A.  1
B.  2
C.  7
D.  10

答:D

  1. python里如何实现tuple和list的转化
  2. type(1+2L*3.14)的结果是
答:
 

               A.  int
B.  long
C.  float
D.  str

答:C

  1. 若k为整型, 下列while循环执行的次数为

 

答:
python3中 循环执行次数是10次
python2中 循环执行次数是9次

 

  1. 以下何者是不合法的布尔表达式

               A.  x in range(6)
B.  3 = a
C.  e>5 and 4==f
D.  (x-6)>5

答:B

  1. python不支持的数据类型有

               A.  char
B.  int
C.  float
D.  list

答:A

  1. 如何在Python中拷贝一个对象, 并说明他们之间的区别?
答:
使用[:]这样就可以进行拷贝一个对象,这个是浅拷贝
使用copy模块 copy.copy这是浅拷贝
使用copy模块 copy.deepcopy 这是深拷贝
浅拷贝就是拷贝对象的一层元素.
深拷贝是拷贝对象里的多层元素

 

  1. 99(10进制)的八进制表示是什么?

答:

  1. 下列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

  1. list对象 alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'v','age':25},]按alist中元素的age由大到小排序。

答:

  1. 关于Python程序的运行性能方面, 有什么手段能提升性能?
答:1、使用多进程,充分利用机器的多核性能
2、对于性能影响较大的部分代码,可以使用C或C++编写
3、对于IO阻塞造成的性能影响,可以使用IO多路复用来解决
4、尽量使用Python的内建函数
5、尽量使用

 

  1. Python是如何进行内存管理的? Python的程序会内存泄漏吗?说说有没有什么方面阻止或检测内存泄漏
答:引用计数
Python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,就是引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要的时候,这个对象的引用计数为0时,他被垃圾回收。
垃圾回收
当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉。他会去检查那些引用计数为0的对象,然后清除其在内存中的空间。当然除了引用计数为0的会被清除,还有一种情况也会被垃圾收集器清掉,当两个对象相互引用时,他们本身其他引用已经为0了。
内存池机制
Python提供了对内存的垃圾收集机制,但是他将不用的内存放到内存池而不是反回给操作系统。
python的程序会内存泄漏吗?
会发生内存泄漏,在Python程序里,内存泄漏是由于一个长期持有的对象不断的往一个dict或者list对象里添加新的对象, 而又没有即时释放,就会导致这些对象占用的内存越来越多,从而造成内存泄漏。另外,对象的交叉引用也会造成内存无法释放的问题。
说说有没有什么方面阻止或者检测内存泄漏?
程序员管理好每个python对象的引用,尽量在不需要使用对象的时候,断开所有引用
尽量少通过循环引用组织数据,可以改用weakref做弱引用或者用id之类的句柄访问对象
通过gc模块的接口可以检查出每次垃圾回收有哪些对象不能自动处理,再逐个逐个处理

 

  1. 详细说说tuple,list,dict的用法, 他们的特点
  2. 一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?
答:tuple 是用小括号()组成,没有增删改,是用于存放一些不修改的数据.里边存放的数据安全系数较高,特点是不可变
list  使用中括号[]组成,有增删改,是用于存放一些数据,经常修改的数据.特点是可变
dict  使用大括号{}组成,有增删改,是用于存放一些键值数据,特点是查找方便.能够准确的查找到

答:

  1. 已知Alist=[1,2,3,1,2,1,3],如何根据Alist得到[1,2,3]

答:list(set(Alist))

  1. 已知stra = 'wqedsfsdrfweedqwedqw'

               1.  如何获取最后两个字符
2.  如何获取第二个和第三个字符

答:print(s[-2:])
print(s[1:3])
  1. 已知Alist = ["a","b","'c'],将Alist转化为'a,b,c'的实现过程
  2. 已知ip='192.168.0.100' 代码实现提取各部分并写入列表。
答:
 

答:ip_list = ip.split('.')

  1. python代码如何获取命令行参数?

答:

  1. 写代码

              
写出由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

答:

posted @ 2019-11-20 20:05  june_ruby  阅读(45)  评论(0编辑  收藏  举报