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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
Python实现的密码强度检测器示例
Aug 23 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
python分布式环境下的限流器的示例
Oct 26 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
如何使用python操作vmware
Jul 27 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
Python基于百度AI实现抓取表情包
Jun 27 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
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
Angular的$http与$location
2016/12/26 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
Python splitlines使用技巧
2008/09/06 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
python打包成so文件过程解析
2019/09/28 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
员工评语范文
2014/12/31 职场文书
体育活动总结
2015/02/04 职场文书
法制教育观后感
2015/06/17 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫