python3-开发面试题(python)6.23基础篇(2)
2018-06-23 16:08
549 查看
1、请至少列举5个 PEP8 规范(越多越好)。
一、代码编排
1、缩进。4个空格的缩进,不使用Tap,更不能混合使用Tap和空格
2、每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车
二、文档编排
1、不要在一句import中多个库,比如import 欧式,sys
三、空格的使用
总体原则,避免不必要的空格
四、注释
1、总体原则,错误的注释不如没有注释,当一段代码发生变化时,第一件事就是要修改注释!
2、注释必须使用英文,最好是完整的句子,首字母要大写的。
3、避免无谓的注释
五、命名规范
类的方法第一个参数必须是self,而静态方法第一个参数必须是cls
遵循python的变量的命名规范。
六、编码建议
1、编码中考虑是他python实现的效率等问题,比如运算符‘+’在Jpython中效率却非常低,采用。join()的方式
2、字符串不要以空格收尾
3、使用startwith() and endswith() 代替切片进行序列前缀或后缀的检查
4、使用isinstance()比较对象的类型:
5、判断序列空与不空,if not 条件,优于if 条件
2、通过代码实现如下转换:
二进制转换成十进制:v = “0b1111011”
int(v,2)
十进制转换成二进制:v = 18
bin(v)
八进制转换成十进制:v = “011”
int(v,8)
十进制转换成八进制:v = 30
oct(v)
十六进制转换成十进制:v = “0x12”
int(v,16)
十进制转换成十六进制:v = 87
hex(v)
3、python递归的最大层数?
在pycharm中 递归的最大层数是1000次,无限制的递归调用自己是没有意义的
1、递归必须要有一个明确的结束条件
2、每次进入更深一层递归时,问题规模相比上次递归都有应有所减少
3、递归效率不高,递归层次过多会导致栈溢出
4、求结果:
v1 = 1 or 3
1
v2 = 1 and 3
3
v3 = 0 and 2 and 1
0
v4 = 0 and 2 or 1
1
v5 = 0 and 2 or 1 or 4
1
v6 = 0 or Flase and 1
1
详细过程可以点击这里:https://www.cnblogs.com/ManyQian/p/9216815.html
5、ascii、unicode、utf-8、gbk 区别?
ascii : 8bit=1bytes,一个英文字符占用1个字节 范围基本只有英文字母、数字和一些特殊字符,只有256个字符
gbk 编码汉字的: 16bit=2bytes 2个字节表示一个中文字节,1个字节表示英文字节
unicode全世界的所有字节(内存中固定的编码):16bit=2bytes,2个字节表示一个字符,中文也是2个字节
utf-8万国码:1字节表示一个英文字符,3bytes表示一个中文字符
6、字节码和机器码的区别?
字节码是一种中间码和二进制代码(文件),需要直译器转译后成为机器码
字节码:字节码通常指的是已经经过编译的源码,字节码的实现方式是通过编译器和虚拟机器
机器码:机器语言是一种指令集的体系,这种指令集就是机器码,是电脑cpu可以直接解读的数据
计算机可以直接执行,并且执行速度最快的代码
解释性语言:程序---》字节码-----》机器码 根据具体系统在编译为机器语言
编译型语言:程序----》机器码
7、三元运算规则以及应用场景?
三元运算符的功能与‘if ...else’流程语句一致,它在一行中书写,代码非常精练,执行效率更高
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题
8、列举 Python2和Python3的区别?
1、print被视为一个语句而不是一个函数
2、整数的除法,2.7不直观
3、支持Unicode 2.7默认ASCII 3中默认Unicode
4、后续发展 2.7官方没有后续支持,3才是正统
一、代码编排
1、缩进。4个空格的缩进,不使用Tap,更不能混合使用Tap和空格
2、每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车
二、文档编排
1、不要在一句import中多个库,比如import 欧式,sys
三、空格的使用
总体原则,避免不必要的空格
四、注释
1、总体原则,错误的注释不如没有注释,当一段代码发生变化时,第一件事就是要修改注释!
2、注释必须使用英文,最好是完整的句子,首字母要大写的。
3、避免无谓的注释
五、命名规范
类的方法第一个参数必须是self,而静态方法第一个参数必须是cls
遵循python的变量的命名规范。
六、编码建议
1、编码中考虑是他python实现的效率等问题,比如运算符‘+’在Jpython中效率却非常低,采用。join()的方式
2、字符串不要以空格收尾
3、使用startwith() and endswith() 代替切片进行序列前缀或后缀的检查
4、使用isinstance()比较对象的类型:
5、判断序列空与不空,if not 条件,优于if 条件
2、通过代码实现如下转换:
二进制转换成十进制:v = “0b1111011”
int(v,2)
十进制转换成二进制:v = 18
bin(v)
八进制转换成十进制:v = “011”
int(v,8)
十进制转换成八进制:v = 30
oct(v)
十六进制转换成十进制:v = “0x12”
int(v,16)
十进制转换成十六进制:v = 87
hex(v)
3、python递归的最大层数?
在pycharm中 递归的最大层数是1000次,无限制的递归调用自己是没有意义的
1、递归必须要有一个明确的结束条件
2、每次进入更深一层递归时,问题规模相比上次递归都有应有所减少
3、递归效率不高,递归层次过多会导致栈溢出
import sys sys.setrecursionlimit(递归的最大次数)
4、求结果:
v1 = 1 or 3
1
v2 = 1 and 3
3
v3 = 0 and 2 and 1
0
v4 = 0 and 2 or 1
1
v5 = 0 and 2 or 1 or 4
1
v6 = 0 or Flase and 1
1
详细过程可以点击这里:https://www.cnblogs.com/ManyQian/p/9216815.html
5、ascii、unicode、utf-8、gbk 区别?
ascii : 8bit=1bytes,一个英文字符占用1个字节 范围基本只有英文字母、数字和一些特殊字符,只有256个字符
gbk 编码汉字的: 16bit=2bytes 2个字节表示一个中文字节,1个字节表示英文字节
unicode全世界的所有字节(内存中固定的编码):16bit=2bytes,2个字节表示一个字符,中文也是2个字节
utf-8万国码:1字节表示一个英文字符,3bytes表示一个中文字符
6、字节码和机器码的区别?
字节码是一种中间码和二进制代码(文件),需要直译器转译后成为机器码
字节码:字节码通常指的是已经经过编译的源码,字节码的实现方式是通过编译器和虚拟机器
机器码:机器语言是一种指令集的体系,这种指令集就是机器码,是电脑cpu可以直接解读的数据
计算机可以直接执行,并且执行速度最快的代码
解释性语言:程序---》字节码-----》机器码 根据具体系统在编译为机器语言
编译型语言:程序----》机器码
7、三元运算规则以及应用场景?
三元运算符的功能与‘if ...else’流程语句一致,它在一行中书写,代码非常精练,执行效率更高
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题
8、列举 Python2和Python3的区别?
1、print被视为一个语句而不是一个函数
2、整数的除法,2.7不直观
3、支持Unicode 2.7默认ASCII 3中默认Unicode
4、后续发展 2.7官方没有后续支持,3才是正统
相关文章推荐
- python3-开发面试题(python)6.22基础篇(1)
- python3-开发面试题(python)6.24基础篇(3)
- Python3开发(1)基础快速入门(适用于有其他编程语言基础查看)
- Python开发基础
- 适用于 PHP 开发人员的 Python 基础知识
- Python开发基础-Day7-闭包函数和装饰器基础
- python开发_thread_线程基础
- 基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?
- python3 开发面试题(去重保持原来的顺序)6.2
- Python开发基础-Day2-流程控制、数字和字符串处理
- 【Python开发web】(3) -- Python基础之一
- python开发之thread线程基础实例入门
- Python开发基础-Day19继承组合应用、对象序列化和反序列化,选课系统综合示例
- Python服务器开发一:python基础
- Python基础--第2章 配置机器及搭建开发环境
- Python基础教程1--搭建Python开发环境
- Android开发,java开发程序员常见基础面试题,更换两个变量的值,java逻辑代码
- 面试题python语法以及其他基础部分
- python3-开发进阶Flask的基础(2)
- Python爬虫开发与项目实战 2:Web前端基础