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 相关文章推荐
python 多线程应用介绍
Dec 19 Python
python单线程实现多个定时器示例
Mar 30 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
Django框架ORM数据库操作实例详解
Nov 07 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
Javascript实现的分页函数
2007/02/07 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
javascript IFrame 强制刷新代码
2009/07/23 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
vuex入门最详细整理
2020/03/04 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
python生成器的使用方法
2013/11/21 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
园林设计师自荐信
2013/11/18 职场文书
区三好学生主要事迹
2014/01/30 职场文书
调解协议书
2014/04/16 职场文书
学习教师法的心得体会
2014/09/03 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript