Python 学习笔记
发布时间:2022-06-18 07:12:31
可以任意转载,但转载时必须标明原作者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/;
猜你喜欢
- 代理服务是一种复杂的技术,具有很多可配置的移动组件。详细信息如下:信息信息是指在服务代理应用程序中调用的基本信息单元。对于服务代理来说,信息
- 代码如下:function checkip(checkstring)'用正则判断IP是否合法 dim re1 set re1=new
- python中format的使用format函数这是一种字符串格式化的方法,用法如str.format()。基本语法是通过 {} 和 : 来
- 普通方法:爬取梨视频import reimport timeimport randomimport requestsfrom lxml im
- Python input()函数Python input()函数教程在 Python 中,input() 函数用于获取用于的输入,并给出提示
- 短几年,Google 的 Logo 已经象 Nike 的挑勾和 NBC 的孔雀图案一样著名了。Ruth Kedar,Google
- 作为设计师,我们都知道,一个极简的设计可以实现漂亮的效果。然而,很多设计师在实现上有些麻烦:要么是没有时间让使用如此少的元素制作的页面看起来
- 前两天简单认识了一下PyQt5,通过练习开发了一款在Window下自定义关机的小工具,代码如下:import os,sys,timefrom
- 发现一个有意思的现象,labelimg打开图片和xml标签时候,看不到标注好的框框,仔细查看了xml文件,没发现什么异常,后面试一下,才发现
- 在编写 XMLHttpRequest 请求时,需要掌握服务器端返回的内容。针对 Firefox 浏览器,我们常用的 Firebug 就能非常
- 具体代码和说明如下:upload.asp<form action=http://<%= Request.&n
- <% class menusPublic Title, ID, Image, TitleColor, Target, Backgrou
- 如何正确显示模式对话框中的中文?msg.htm <html> <head> &nbs
- interfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被inter
- 转自微信公众号:机器学习社区,经作者授权转载时间序列分析是数据科学中一个非常重要的领域,它主要包含统计分析、检测变化点、异常检测和预测未来趋
- 本篇我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数、学习读写文件的方法,并尝试函数式编程
- 观察者模式结构图概念一个"演员"(被观察者),一群"观众"(观察者),一台"摄影机&quo
- 在一个群上看到好几次问到call和apply的作用,function这两个方法的效果大家都很容易理解,但一般很难让人深刻地理解使用它们的时机
- PHP计算字符串用strlen()只能得到字符串长度,不是宽高像素,使用到了php函数ImageTTFBBox(),就可以根据字体的大小和所
- 本文主要是基于Python Opencv 实现的图像分割,其中使用到的opencv的函数有:使用 OpenCV 函数 cv::filter2