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单链表实现代码实例
Nov 21 Python
Python中属性和描述符的正确使用
Aug 23 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
Python求解任意闭区间的所有素数
Jun 10 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
PyQt5+Pycharm安装和配置图文教程详解
Mar 24 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
python运算符之与用户交互
Apr 13 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
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
EntityManager都有哪些方法
2013/11/01 面试题
企业总经理岗位职责
2014/02/13 职场文书
药学职务聘任书
2014/03/29 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年护理部工作总结
2014/11/14 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
golang特有程序结构入门教程
2021/06/02 Python
Redis分布式锁Redlock的实现
2021/08/07 Redis