python基础面试题(1-10)
1、通过什么途径学习的Python?
通过参加培训、老师的指导,网上搜索资料进行学习
2,Python的可变类型和不可变类型?
-
可变类型包括:列表、字典、可变集合{1,2,3}
-
不可变类型有:数值、元组、字符串、不可变集合 frozenset({1,2})
-
不可变数据类型: 当该数据类型的对应变量的值发生了改变,对应的内存地址也会发生改变常见有 数字类型、字符串类型和元组类型
-
可变数据类型: 当该数据类型的对应变量的值发生了改变内存地址不会发生改变,列表、字典、可变集合
3、Python和Java、PHP、C、C#、C++等其他语言的对比?
1,c语言是现代编辑语言的老前辈了,所以大部分语言写法和c语言都差不多,常被用来作为学习其他语言的基础
2,PHP主要用于网页编辑,而python适合各个领域,后端开发,前后端分离接口等等
3,c++是面向对象的c 语言,由于偏底层,所以性能非常高,主要用于要求高性能的领域
4,python要比java简单,快捷的太多了,java从c++系统语言种继承了许多语法和复杂性,而python语法非常简洁,大大提高了编写效率
5,python是解释型语言,不需要额外的编译过程,而c# 必须编译才能执行
6,python程序是开源的,但c#不是,python可以跨平台
7,python 比c++等这类语言,更容易学习,语法简单规则,易读易懂,容易维护。
4、简述解释型和编译型编程语言?
-
解释型语言:可以直接运行,逐条翻译逐条运行 速度慢,效率低,跨平台好 #python、java
-
编译型:把做好的源程序全部编译成二进制的可运行程序,然后可直接运行这个程序,速度快,效率高,跨平台差 # c c++
5、Python解释器种类以及特点?
-
CPython:这个解释器是用C语言开发的,所以叫CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器;
-
Jython:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行;
-
PyPy:PyPy是另一个Python解释器,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度;
-
IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强
6、位和字节的关系?
1字节 = 8位
一个字符= 2字节
7、b、B、KB、MB、GB 的关系?
1B=8b、1KB=1024B、1MB=1024KB、1G=1024MB
8、请至少列举5个 PEP8 规范(越多越好)
缩进。4个空格的缩进,不使用tap 更不能混合tap和空格
每行最大长度 79 ,换行可以使用反斜杠,最好使用圆括号,换行要在操作符 后边回车
不要在一句 import 中弄多个库
逗号,冒号,分号前不要加空格
避免不必要的空格
类的方法第一个参数必须是self,而静态方法第一个方法必须是cls
9,求结果:
v = dict.fromkeys(['k1','k2'],[])
#fromkeys() 方法返回具有指定键和值的字典。#dict.fromkeys(keys, value)
v[‘k1’].append(666)
print(v) #{‘k1’:[666],'k2',[666]}
v[‘k1’] = 777
print(v) #{‘k1’:777,'k2',[666]}
*10、列出几种魔法方法并简要介绍用途*
-
init:对象初始化方法
-
new:创建对象时候执行的方法,单列模式会用到
-
str:当使用print输出对象的时候,只要自己定义了str(self)方法,那么就会打印从在这个方法中return的数据
-
del
-