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中逻辑运算符的使用
May 13 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
selenium获取当前页面的url、源码、title的方法
Jun 12 Python
Mac安装python3的方法步骤
Aug 09 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
python破解同事的压缩包密码
Oct 14 Python
Python语言中的数据类型-序列
Feb 24 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
图书管理程序(三)
2006/10/09 PHP
php5.2时间相差8小时
2007/01/15 PHP
php 中文和编码判断代码
2010/05/16 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python针对excel的操作技巧
2018/03/13 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
社区党员先进事迹
2014/01/22 职场文书
企业安全生产检查制度
2015/08/06 职场文书
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers