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 开发者应从2.x还是3.x着手?
Nov 16 Python
Python的argparse库使用详解
Oct 09 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
python3 深浅copy对比详解
Aug 12 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
20行Python代码实现视频字符化功能
Apr 13 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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
多重?l件?合查?(二)
2006/10/09 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 解析xml文件的示例
2020/09/29 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
2015年推广普通话演讲稿
2015/03/20 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android
SpringBoot快速入门详解
2021/07/21 Java/Android
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js