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字符串连接方式汇总
Aug 21 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python函数式编程
Jul 20 Python
python读取Excel实例详解
Aug 17 Python
Python实现点云投影到平面显示
Jan 18 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Python try except异常捕获机制原理解析
Apr 18 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
python从Oracle读取数据生成图表
Oct 14 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
Python使用openpyxl批量处理数据
Jun 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python使用Berkeley DB数据库实例
2014/09/26 Python
Python中的包和模块实例
2014/11/22 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
劳资人员岗位职责
2013/12/19 职场文书
安全负责人任命书
2014/06/06 职场文书
施工工地安全标语
2014/06/07 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技