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实现划词翻译
Apr 23 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python打印“菱形”星号代码方法
Feb 05 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
PyQt5响应回车事件的方法
Jun 25 Python
python scipy卷积运算的实现方法
Sep 16 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 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函数
2011/05/31 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python中list列表的高级函数
2016/05/17 Python
python递归函数绘制分形树的方法
2018/06/22 Python
python实现人机五子棋
2020/03/25 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
技校教师求职简历的自我评价
2013/10/20 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
邀请函怎么写
2015/01/30 职场文书
初中教师个人总结
2015/02/10 职场文书
会计专业求职信范文
2015/03/19 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
mysql主从复制的实现步骤
2021/10/24 MySQL
排查Tomcat进程假死的问题
2022/05/06 Servers