Python 经典面试题 一
时间:2022-07-28
本文章向大家介绍Python 经典面试题 一,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- Python 2 中的 print 语句被 Python 3 中的 print()函数取代,在 Python 3 中必须用括号将需要输出的对象括起来;
- Python 2 有基于 ASCII 的 str()类型,其可通过单独的 unicode()函数转成 unicode 类型,但没有 byte 类型。 在 Python 3 中,终于有了 Unicode(utf-8)字符串,以及两个字节类:bytes 和 bytearrays。
- Python2.x 中有 xrange()和 range(),xrange()是惰性机制的,如果只循环一次建议使用 range(),对此的话 range()会在内存中创建多个列表,内存开销较大。 python3 中只有 range(),range 有了一个新的contains方法。contains方法可以有效的加快 Python 3.x 中整数和布尔型的“查找”速度。
- 异常处理,在 python3.x 中必须使用‘as‘来处理, python2.x 中可以不必使用。
- 在 python2.x 中.Next()函数可以作为函数的属性使用,也可以单独作为函数使用; 在 python3.x 中只能使用函数,使用。Next()会触发 attributeError.
- python2.x 中使用 raw_input()解析用户输入,在 python3.x 中使用 input()解析。
2.python 内建数据类型有哪些
- 整型--int
- 布尔型--bool
- 字符串--str
- 列表--list
- 元组--tuple
- 字典--dict
3.提高 python 运行效率的方法
- 使用生成器,因为可以节约大量内存。
- 循环代码优化,避免过多重复代码的执行。
- 核心模块用 Cython PyPy 等,提高效率。
- 多进程、多线程、协程。
- 多个 if elif 条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率。
4.什么是 PEP8?
《Python Enhancement Proposal #8》 (8 号 python 增强提案)又叫 PEP8,他针对的 python 代码格式而编订的风格指南。
5.有哪些工具可以帮助 debug 或做静态分析?
- PyChecker 是一个静态分析工具,它不仅能报告源代码中的错误,并且会报告错误类型和复杂度。
- Pylint 是检验模块是否达到代码标准的另一个工具。
6.Python 里面如何实现 tuple 和 list 的转换?
直接使用 tuple 和 list 函数就行了,type()可以判断对象的类型。
7.请写出一段 Python 代码实现删除一个 list 里面的重复元素。
使用 set 函数
set(list)
使用字典函数
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)
c=list(b.keys())
print(c)
8.Python 里面如何生成随机数?
在 Python 中用于生成随机数的模块是 random,在使用前需要 import。举例:
- random.random():生成一个 0-1 之间的随机浮点数
- random.randint(a,b):生成[a,b]之间的整数,包含 a,b
- random.uniform(a,b):生成[a,b]之间的浮点数
- random.randrange(a,b,step):在指定的集合[a,b)中,以 step 为基数随机取一个数,不含 b
- random.choice(sequence):从特定序列的中随机取一个元素,这里的序列可以是字符列表,元组等。
9.Python 中的 pass 是什么?
pass 是一个在 Python 中不会被执行的语句。在复杂语句中,如果一个地方需要暂时被留白,它常常被用于占位符。
10.字符串格式化:%和.format 的区别
字符串的 format 函数非常灵活,很强大,可以接受的参数不限个数,并且位置可以不按顺序,而且有较为强大的格式限定符(比如:填充,对齐,精度等)。
- zephir-(7)数组
- phalapi-进阶篇5(数据库读写分离以及多库使用)
- phalapi-进阶篇4(notrom进阶以及事务操作)
- 自动机器学习:利用遗传算法优化递归神经网络
- zephir-(8)类和对象1
- zephir-(4)基本语法
- zephir-(2)安装和初体验
- phalcon-入门篇8(Model层基础使用2)
- 封装、私有,一文掌握Python关键代码
- 基于TensorFlow的比较研究:神经网络优化算法
- Visual Studio 2008 每日提示(二十三)
- 应用层/安全层/传输层如何进行协议选型?
- 一分钟掌握数据库垂直拆分
- 在创建的Silverlight Control中使用图片
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS 7.4下安装Oracle 11.2.0.4数据库的方法
- CentOS桌面环境中网卡启动失败的解决方法
- 浅谈Linux vfork与fork简单对比分析
- Linux定时任务Crontab的使用方法
- linux虚拟网络设备之vlan配置详解
- Centos7安装完后无法联网的解决方法
- Linux静态链接库与模板类的处理方式
- 深入研究RocketMQ消费者是如何获取消息的
- CentOS7下 Apache的安装配置方法
- expect命令在linux下实现批量ssh免密
- 学习Vim合并行的方法和技巧
- 九种查找算法
- 代码防御性编程的十条技巧
- Ubuntu终端多窗口分屏Terminator
- linux 编译安装python3.6的教程详解