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通过poll实现异步IO的方法
Jun 04 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
Python面向对象类的继承实例详解
Jun 27 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
Pandas中resample方法详解
Jul 02 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
150行python代码实现贪吃蛇游戏
Apr 24 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python如何调用php文件中的函数详解
Dec 29 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
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP 读取和编写 XML
2014/11/19 PHP
3种php生成唯一id的方法
2015/11/23 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
js对象简介与基本用法示例
2020/03/13 Javascript
python利用sklearn包编写决策树源代码
2017/12/21 Python
Django组件cookie与session的具体使用
2019/06/05 Python
django中forms组件的使用与注意
2019/07/08 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
详解rem 适配布局
2018/10/31 HTML / CSS
如何使用PHP session
2015/04/21 面试题
2014年教师培训的自我评价
2014/01/03 职场文书
运动会入场词50字
2014/02/20 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis