Python 学习笔记


Posted in Python onDecember 27, 2008

可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/11/03/python-memo/以及本声明。

基本概念

  • Python居然支持复数。如(-5+4j)。但要注意虚数单位单独使用时要写成 1j,不能写成 j。
  • 与Perl和PHP的区别:单引号和双引号没有任何区别。没有插值功能。
  • 三引号:''' 和 """ 相当于Perl的heredoc。
  • 行尾不需要用分号,分号仅用于一行写多条语句的情况。跟BASIC的冒号有些相似。
  • 缩进是有语义的!建议使用TAB缩进

运算符与表达式

  • 运算符 ** 乘幂,Perl也有。
  • 字符串的 * 表示重复,相当于Perl的 x 运算符。
  • 居然还有专用于整除的 // 。别跟Perl 6的 // 混淆了。

控制流

  • if-elif-else,Perl为if-elsif-else,bash为if-elif-fi
  • if、elif等控制流语句后面要加冒号,很像PHP的语法
  • while和for循环可以带else,循环正常结束时就会执行else。不用像C语言那样,循环结束时要检查循环变量是否等于终值,以判断是否正常结束。赞
  • range函数生成的结果不包括终点。比较:Perl的 .. 运算符包括终点。所以,Python的range(a,b)理解成C语言的 for(i=a;i<b,i++) 好些。
  • 什么都不做的pass语句,算是个python特色

函数

  • 函数中使用全局变量需要用global关键字,类似于PHP
  • DocString,又一个python特色,函数的第一个逻辑航的字符串作为文档字符串。类似于POD和javadoc,不过是写在函数体内的。还能通过"函数名.__doc__"访问
  • lambda:类似于perl的闭包

数据结构

  • 列表:定义方式为 a=[1,2]。等价于perl的数组/列表
  • 元组(tuple):定义方式为 a=(1,2)。
  • 要注意列表中的列表不会被打散,如 a=[1,2], b=[a,3,4],结果就是 b=[[1,2],3,4]。这一点与Perl不同。
  • 字典:定义方式为 c={'a':1, 'b':2}。等价于perl的散列。注意两点:
    • 定义和访问时,key必须用引号引起来。
    • 使用{}定义,使用[]访问,即c['a']。与Perl不同。
  • 列表赋值是引用赋值。要想拷贝,必须用切片:b = a[:]。Perl程序员要注意。
  • 列表的sort会改变原列表。

例外

  • try-except-finally,相当于java的try-catch-finally
  • 还有else,当没有发生异常、正常结束try块时执行。跟for/while的else块一样
  • 故意抛出异常叫raise,java里面叫throw

面向对象

  • 类的__init__函数类似于C++的构造函数;__del__函数类似于C++的析构函数。
  • 类方法定义的第一个参数必须为self,调用时这个参数会被传递为对象本身。类似于perl,perl中第一个参数也会被传递为对象本身,不过需要程序员自己写 my $self = shift; 来接收。
  • 用C++的话来说,所有成员函数都是虚函数。
  • 调用基类方法时要手工传递self,如 Parnet.__init__(self, name)。

模块

  • import foo; 相当于perl的 use foo;
  • from foo import bar 相当于perl的 use foo qw/bar/;
Python 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
python实现数据预处理之填充缺失值的示例
Dec 22 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
Python一行代码实现快速排序的方法
Apr 30 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
python argparser的具体使用
Nov 10 Python
python之列表推导式的用法
Nov 29 Python
py-charm延长试用期限实例
Dec 22 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
python 实现单例模式的5种方法
Sep 23 Python
Python 中 Shutil 模块详情
Nov 11 Python
python3.0 字典key排序
Dec 24 #Python
python 文件与目录操作
Dec 24 #Python
python zip文件 压缩
Dec 24 #Python
python 数据加密代码
Dec 24 #Python
python 测试实现方法
Dec 24 #Python
Python 面向对象 成员的访问约束
Dec 23 #Python
pymssql ntext字段调用问题解决方法
Dec 17 #Python
You might like
javascript 简练的几个函数
2009/08/29 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
python输出决策树图形的例子
2019/08/09 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
Order by的几种用法
2013/06/16 面试题
夜班门卫岗位职责
2013/12/09 职场文书
买房协议书
2014/04/11 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
大学生读书笔记大全
2015/07/01 职场文书
公司周年庆典致辞
2015/07/30 职场文书
mysql 索引合并的使用
2021/08/30 MySQL