1. 编码

Python3有两种表示字符序列的类型:bytes和str,前者的实例包含原始的8bits value,后者的实例包含Unicode字符。
Python2也有两种表示字符序列的类型,str和unicode,str的实例包含原始的8bits value,unicode的实例包含Unicode字符。

把Unicode字符表示为二进制数据(原始的8bits value)有很多方法,常见的就是utf-8编码。
但是,python3的str实例和python2的unicode实例都没有和特定的二进制编码形式相关联。

想要把Unicode字符转换成二进制数据,必须使用encode方法。
想要把二进制数据转换成Unicode字符,必须使用decode方法。

编写python程序的时候,encode/decode一定要在最外围去做。
程序的核心部分应该使用unicode(也就是python3中的str,python2中的unicode)。

2. 返回值

尽量用异常来表示特殊情况,不要返回None,直接把异常抛给上一级。

3. 多进程

python有多种运行子进程的方式,其中包括popen/popen2/os.exec,然而最简单的应该是内置的subprosess模块。
若想利用强大的multiprocessing模块,最恰当的就是使用内置的concurrent.futures模块和ProcessPollExecutor类来使用它。不要使用那些高级功能。

4. with

使用with,替换try,except,finally

5. 函数调用参数的传递方式是值传递还是引用传递?

函数的传值到底是值传递还是引用传递、要分情况:

不可变参数用值传递:像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变不可变对象。

可变参数是引用传递:比如像列表,字典这样的对象是通过引用传递、和C语言里面的用指针传递数组很相似,可变对象能在函数内部改变。

6. 函数装饰器有什么作用?

装饰器本质上是一个callable object ,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

例子:一个计时器记录方法执行性能的装饰器

import time
from functools import wrapsdef timeit(func):@wraps(func)def wrapper(*args, **kwargs):start = time.clock()ret = func(*args, **kwargs)end = time.clock()print('used:',end-start)return retreturn wrapper
@timeit
def foo():print('in foo()'foo())

7. 回调函数,如何通信的?

回调函数是把函数的指针(地址)作为参数传递给另一个函数,将整个函数当作一个对象,赋值给调用的函数。

参考:https://github.com/kenwoodjw/python_interview_question

python编程总结相关推荐

  1. 马斯克如何颠覆航天? 1/5385成本,c++和python编程!

    马斯克如何颠覆航天? 1/5385成本,c++和python编程! 5月31日,经历了重重困难,马斯克的SpaceX载人飞船成功发射,这是美国自2011年以来首次发射载人航天飞船,也是美国进入由商业主 ...

  2. CSS、JavaScript、PHP和Python编程合二为一

    CSS, JavaScript,PHP And Python Programming All in One Course 在一门课程中学习Javascript.PHP和Python编程语言的CSS 你 ...

  3. python编程代码示例_python编程线性回归代码示例

    用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子.scipy.stats.linregress例子.pandas.ols例子等. 不过本文使用 ...

  4. 《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  5. 《树莓派Python编程指南》—— 1.3 树莓派快速指南

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第1章,第1.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  6. Python编程规范及性能优化

    为什么80%的码农都做不了架构师?>>>    Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器 ...

  7. 学习Python编程开发可以从事的岗位有哪些?

    Python编程技术在人工智能领域的发展有目共睹,很多人都想学习Python技术,而且从事Python开发,所从事的工作机会和工作岗位及工作内容可选择的余地很多,未来发展空间也很大.下面我们就来详细的 ...

  8. Python编程比较好的机构怎么选择

    想要进入到IT行业,很多人的首要选择都是学习Python编程语言,因为Python编程语言入门是相对比较简单的,但是想要学好Python技术,找一个好的Python培训机构是非常重要的,那么Pytho ...

  9. 《树莓派Python编程指南》——2.3 小结

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  10. 【组队学习】【34期】零基础学python编程思维

    零基础学python编程思维 航路开辟者:邓林权 领航员:沈一 航海士:覃嘉俊.马子阳.左凯文 基本信息 开源内容:https://linklearner.com/datawhale-homepage ...

最新文章

  1. Windows下安装XAMPP,Wordpress
  2. 中国联邦学习「五大流派」
  3. 【】python时间处理;PYTHON定时任务合集
  4. Java内存管理和客户加载过程_Java内存管理的进一步理解-模拟过程图解
  5. 计算机报名成功后还可以取消吗,【造价工程师报名信息确认后可以取消吗?如何取消?】- 环球网校...
  6. jsp页面中显示word/excel文档方法
  7. pandas -读取文件时,加入列索引
  8. OpenGL ES总结(二)OpenGL坐标变换之平移及旋转
  9. python中类的实例化_python类的实例化
  10. stm32呼吸灯c语言程序,STM32 呼吸灯程序请教
  11. 网众无盘linux挂载u盘,个人总结出的49条网众无盘系统常见故障解决方法
  12. 计算机连接网络显示有限访问权限,电脑WiFi连接总是提示有限的访问权限是什么意思...
  13. 重新制定了目标 这样才知道为啥活着 重新起航 星辰大海
  14. iOS麦克风运用——腾讯微博“吹一吹”
  15. 人工智能会议等级列表
  16. 手机远程启动汽车,汽车远程启动还是手机控制好!有一种远程手机启动热车系统非常的不错是什么功能知道吗?
  17. 负反馈元器件参数对功放性能的影响
  18. HTML复习笔记——CSS排版
  19. VB编程:DoWhile...Loop当循环计算0~100累加和-15_彭世瑜_新浪博客
  20. 混迹职场N年后,人过中年,如何不被社会所淘汰?

热门文章

  1. c语言编写点餐系统的图形界面,「分享」C语言如何编写图形界面
  2. Java I/O之字节流与字符流的区别
  3. java null equals_Java null检查为什么使用==代替.equals()
  4. c#下如何生成安装程序
  5. 统计各部门的薪水总和_近年来,统计学热过金融火过计算机,这是真的吗?
  6. sql并行查询oracle,oracle 查看并行sql语句的并行数量
  7. docker 配置selenium调用Firefox无界面浏览器
  8. java的平方分之x的平方加xy_Java面试宝典_基础编程练习题_完全平方数
  9. oracle test传入参数,oracle存储过程,test(测试)时传自定义类型参数问题
  10. BZOJ 4992: [Usaco2017 Feb]Why Did the Cow Cross the Road