网站后台模块,淘宝客可以做返利网站吗,南昌自主建站模板,WordPress mip 评论框获得人生中的成功需要的专注与坚持不懈多过天才与机会。 ——C.W. Wendte Python将很快成为你最喜欢的编程语言#xff01; Qt库#xff1f; PyQt Perl-Qt 简单易学#xff0c;功能强大#xff0c;高效率的高层数据结构#xff0c;简单而有效地实现面向对象编程。 Pyth…获得人生中的成功需要的专注与坚持不懈多过天才与机会。 ——C.W. Wendte Python将很快成为你最喜欢的编程语言 Qt库 PyQt Perl-Qt 简单易学功能强大高效率的高层数据结构简单而有效地实现面向对象编程。 Python简洁的语法和对动态输入的支持再加上解释性语言的本质使得它在大多数平台上的许多领域都是一个理想的脚本语言特别适用于快速的应用程序开发。 注重的是如何解决问题而不是编程语言的语法和结构。 wxPythonTwistedBoa Constructor 特色 简单、易学 免费、开源:Python是FLOSS自由/开放源码软件之一。 高层语言:不必纠结管理程序使用内存等底层的东西 可移植性 如果你小心地避免使用依赖于系统的特性那么你的所有Python程序无需修改就可以在下述任何平台上面运行。 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC这是因为作为解释器的python有各种系统所对应的版本。 解释性一个用编译性语言比如C或C写的程序可以从源文件即C或C语言转换到一个你的计算机使用的语言二进制代码即0和1。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候连接/转载器软件把你的程序从硬盘复制到内存中并且运行。 而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部Python解释器把源代码转换成称为字节码的中间形式然后再把它翻译成计算机使用的机器语言并运行。事实上由于你不再需要担心如何编译程序如何确保连接转载正确的库等等所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上它就可以工作了这也使得你的Python程序更加易于移植。 只要运行程序的计算机上装有Python及程序所用的相关的库那么就可运行。因为它是解释型语言将大部分工作都交由工具环境来解决所以程序本身移植性很强。 面向对象:Python支持面向过程的编程也支持面向对象的编程。 面向过程程序是由过程或可重用代码的函数构建起来的。面向对象程序是由数据和功能组合而成的对象构建而成的。 可扩展性如果你需要你的一段关键代码运行得更快或者希望某些算法不公开可以把你的部分程序用C或C编写然后在你的Python中使用。 可嵌入性可以把Python嵌入C/C程序从而向你的程序用户提供脚本功能。 脚本功能 丰富的库Python标准库确实很庞大。它可以帮助你处理各种工作包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI图形用户界面、Tk和其他与系统有关的操作。记住只要安装了Python所有这些功能都是可用的。这被称作Python的“功能齐全”理念。 除了标准库以外还有许多其他高质量的库如wxPython、Twisted和Python图像库等等。 关于Perl Perl是另外一种极其流行的开源解释性编程语言。Perl编写大型程序时显示出其不方便。 Perl唯一也是十分重要的优势是它庞大的CPAN库——综合Perl存档网络。就如同这个名字所指的意思一样这是一个巨大的Perl模块集它大得让人难以置信——你几乎用这些模块在计算机上做任何事情。 新的Parrot虚拟机按设计可以运行完全重新设计的Perl 6也可以运行Python和其他解释性语言如Ruby、PHP和Tcl等等。这意味着你将来或许可以在Python上使用所有Perl的模块。这将成为两全其美的事——强大的CPAN库与强大的Python语言结合在一起。 其他解释性语言如Ruby、PHP和Tcl等等。 OpenSource.org和UserLinux项目 Linux、BSD下安装PythonWindows下安装Python。 shell程序什么是shell、cmd等等 在计算机科学中Shell俗称壳用来区别于核是指“提供使用者使用界面”的软件命令解析器。它类似于DOS下的command和后来的cmd.exe。它接收用户命令然后调用相应的应用程序。 网上的Python安装包指的是什么 该软件包含编程所需要的模组和编译调试所需要的基本工具。 IDLE程序 IDLE是开发python程序的基本IDE集成开发环境具备基本的IDE的功能是非商业Python开发的不错的选择。当安装好python以后IDLE就自动安装好了不需要另外去找。是用pythontkinter写的。该环境当然支持编辑功能网上很多人将IDEL简单地认为是编辑器。 C:\Python27\Lib\idlelib 可找到IDLE运行。 python的编译器就是pythonw.exe解释器就是python.exe交互式shell python.exe和pythonw.exe区别 在Windows命令行中使用Python 从CMD命令行中启动python解释器需要在windows中设置环境变量如果安装的是python(x,y)那么应会自动写进了环境变量。 如何退出window下Ctrl-zLinux下Ctrl-d window命令行指什么如何使用 环境变量 Linux的包管理软件 编辑器基本要求有语法高亮文本缩进 Notepad 即记事本没有自动文本缩进功能 可用IDLE环境的编辑器 VIMEmacs(Linux)代码编辑器 Python编辑器列表 支持Python的IDE列表 一旦开始编写大型Python程序IDE确实很有用 Hello World它是编程之神的传统咒语可以帮助你更好的学习语言。 cmd和系统命令行 CMD常用命令 lnk 文件是用于指向其他文件如程序的一种文件。这些文件通常称为快捷方式文件。通常它以快捷方式放在桌面上。以方便使用者快速的调用其扩展名为.lnk。 Python是大小写敏感的 注释 ——任何在#符号右面的内容都是注释 #!/usr/bin/python 这是条特殊的注释后面跟着一个程序。这行告诉你的Linux/Unix系统当执行你的程序的时候它应该运行哪个解释器。python解释器有几种 对于Python来说程序、脚本或者软件都是指同一个东西。 PATH变量 如果你希望你的程序能够从各个位置运行呢那样的话你可以把你的程序保存在PATH环境变量中的目录之一。每当你运行任何程序系统会查找列在PATH环境变量中的各个目录。然后运行那个程序。你只要简单地把这个源文件复制到PATH所列目录之一就可以使你的程序在任何位置都可用了。 这里指的运行是指在命令行直接输入程序名运行。如果遇到重名可怎么办 help() 括号中填对象 按q可退出帮助 在Python中有4种类型的数 整数、长整数、浮点数、复数 2、3.23E-4、2.35j 变量不必要进行声明。 字符串 单引号、双引号(在其中可自由使用单引号) 啥区别 三引号指示多行的字符串在其中可自由使用单双引号 转义符\’ \’’ \\ 行末的单独一个反斜杠表示字符串在下一行继续而不是开始一个新的行。 自然字符串 rNewlines are indicated by \n 字符串为字面本身转义字符失效 一定要用自然字符串处理正则表达式 Unicode字符串Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本那么你需要有一个支持Unicode的编辑器。类似地Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如uThis is a Unicode string.。 如果你把两个字符串按字面意义相邻放着他们会被Python自动级连。 语句如下 print “what is your ” “name” 在Python中没有专门的char数据类型。 标示符规则字母下划线数字组成数字不可开头 使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。会根据输入自动区分是哪种类型的数据这点确实比C要好玩与Matlab语句一样 在一个物理行中写多个逻辑行用分号实现 多个物理行写一个逻辑行即语句分行 用’’’或者\实现或者圆括号、方括号、波形括号 强烈建议坚持在每个物理行只写一句逻辑行少用分号 有时候有一种暗示的假设可以使你不需要使用反斜杠。这种情况出现在逻辑行中使用了圆括号、方括号或波形括号的时候。这被称为暗示的行连接。 print ‘the value is’,i 空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白空格和制表符用来决定逻辑行的缩进层次从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。 如何缩进 不要混合使用制表符和空格来缩进因为这在跨越不同的平台的时候无法正常工作。我强烈建议你在每个缩进层次使用单个制表符或两个或四个空格 。 选择这三种缩进风格之一。更加重要的是选择一种风格然后一贯地使用它即只使用这一种风格。 就每一个东西包括数、字符串甚至函数都是对象这一点来说Python是极其完全地面向对象的。 运算符 ** 幂 返回x的y次幂 // 取整除 位左移 位右移 注意此处不是循环移位 按位与 |按位或 ^ 按位异或 ~ 按位翻转 如 333 逻辑运算符 两个布尔常量 True(1) Fasle ! not 布尔非 and布尔与 or布尔或 运算符的优先级 有个表格 la * 3得到lalala a b得到ab 4/3得到1整数的除法得到整数结果。4.0/3或4/3.0得到1.3333333333333333 4 // 3.0得到1.0 x的按位翻转是-(x1) ~5得到-6 求反后再1 得到的则是相反数 比较可以被任意连接3 5 7返回True。 x False; y True; x and y由于x是False返回False。在这里Python不会计算y因为它知道这个表达式的值肯定是False因为x是False。这个现象称为短路计算。 三种控制流语句 if语句 if 逻辑表达式 块语句 elif 逻辑表达式 块语句 else 块语句 冒号表示后面跟一个语句块 guessint(raw_input())函数取得用户猜测的数字。函数只是重用的程序段。 输入对于raw_input函数来说是一个字符串。我们通过int把这个字符串转换为整数并把它存储在变量guess中。 事实上int是一个类不过你想在对它所需了解的只是它把一个字符串转换为一个整数假设这个字符串含有一个有效的整数文本信息。 在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作在某些场合使用字典会更加快捷。 while 循环 while 逻辑表达式 循环体 else: 语句块 当循环跳出时会到else处else其实是多余的,但若循环中有break语句那么加与不加就有点区别了。 for循环 for i in range(1,5): print i else: print ‘The for loop is over’ range(a,b,c) 用于产生a到b之间的序列步进为c默认为1。并且不包括b。 广义来说我们可以使用任何种类的由任何对象组成的序列 break语句 len(str)函数 获得字符串长度 如果你从for或while循环中终止任何对应的循环else块将不执行 continue语句 函数即可重用的程序段。 用def关键字定义。 已经使用了许多内建的函数比如len和range。 def sayhello(): print ‘Hello World!’ def 函数名形参列表 语句块 局部变量在一个块语句内定义作用域和生命期都在该语句块内。在里面操作外面的重名变量不受影响。 全局变量 global语句 global x,y,z global语句被用来声明x是全局的——因此当我们在函数内把值赋给x的时候这个变化也反映在我们在主块中使用x的值的时候。 在函数内使用global说明该变量是在函数外部定义的。 如果你想要为一个定义在函数外的变量赋值那么你就得告诉Python这个变量名不是局部的而是全局的。我们使用global语句完成这一功能。没有global语句是不可能为定义在函数外的变量赋值的。 默认参数值的设置 def say(message,times1) print message*times #竟然还可以用这种手段 有默认参数值的形参必须放在后面 say(‘hello’) 才能判别参数是给第一个形参的 只有在形参表末尾的那些参数可以有默认参数值即你不能在声明函数形参的时候先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。 关键参数我们使用名字关键字而不是位置我们前面所一直使用的方法来给函数指定实参。func(c50,a100) #用这种方式来调用可以罔顾赋参顺序 更自由地赋参 def func(a, b5, c10): print a is, a, and b is, b, and c is, c func(3, 7) func(25, c24) func(c50, a100) return 语句 于函数中返回函数中内部的局部值 b Python里还真看不到分号啊 注意没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。例如如果一个变量的值为None可以表示它没有值。 除非你提供你自己的return语句每个函数都在结尾暗含有return None语句。 xNone print x #什么都没输出 pass语句在Python中表示一个空的语句块。 DocStrings 文档字符串 在函数中用 ‘’’---------------------- --------空一行---------- -------------------------‘’’ 来说明这个函数的使用方法 使程序更易读且可在运行时查看函数文档字符串属性。 print printMax._doc_ 函数在Python中也被看做一个对象 . 操作符 强烈建议对你所写的任何正式函数编写文档字符串 随你的Python发行版附带的pydoc命令与help()类似地使用DocStrings。 为什么程序运行时要指定命令行参数 如main()函数的形参就有个命令行是用于指定什么的 Python标准库 标准库都有哪些 模块是什么模块基本上就是一个包含了所有你定义的函数和变量的文件。 模块的文件名必须以.py为扩展名。 import sys sys模块包含了与Python解释器和它的环境有关的函数。 sys模块的具体介绍 当我们执行python using_sys.py we are arguments的时候我们使用python命令运行using_sys.py模块后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。 sys.argv sys.path 字节编译的.pyc文件 这种文件采用字节码了 输入这种模块 速度会比较快 from 模块名 import 某个变量 那么就不用 模块名.变量名来调用过来 直接使用变量就可以了 from ..import* 指吸纳所有变量名 一般说来应该避免使用from..import而使用import语句因为这样可以使你的程序更加易读也可以避免名称的冲突。 模块的_name_ 假如我们只想在程序本身被使用的时候运行主块而在它被别的模块输入的时候不运行主块我们该怎么做呢 每个Python模块都有它的__name__如果它是__main__这说明这个模块被用户单独运行我们可以进行相应的恰当操作。 if __name__ __main__: print This program is being run by itself else: print I am being imported from another module 模块的制作和调用 Python附带的标准库就是这样一组模块的例子 模块应该被放置在我们输入它的程序的同一个目录中或者在sys.path所列目录之一。每安装完一个库应该会自动写入sys.path中吧我应该也可以手动增添路径。 dir()函数使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。 当你为dir()提供一个模块名的时候它返回该模块定义的名称列表。如果不提供参数它返回当前模块中定义的名称列表。输入的模块同样是列表的一部分。 del a 删除变量/名称 数据结构 列表 列表中元素可以是任何种类的对象不同类混杂 包括数也是对象甚至其它列表 list[,,,,,] len(list) for item in list: print i list.append(‘’) 在末尾增加对象list.sort() 重排列表 索引对象 list[] del list[] 删除某个对象 Python从0开始计数 print range(5) [0, 1, 2, 3, 4] print xrange(5) xrange(5) range将返回一个普通列表但是xrange将返回一个特殊目的对象将显示为其自身的特殊方式。 使用xrange节省for循环内存开销for i in xrange(5): 语句块 我们在print语句的结尾使用了一个逗号来消除每个print语句自动打印的换行符 元组 与列表相似但又有区别 元组和列表十分类似只不过元组和字符串一样是不可变的即你不能修改元组。 元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候即被使用的元组的值不会改变。 你必须在第一个唯一一个项目后跟一个逗号这样Python才能区分元组和表达式中一个带圆括号的对象。 即如果你想要的是一个包含项目2的元组的时候你应该指明singleton (2 , )。 zoo(,,,,,) len(zoo) newzoo(,,,zoo) 列表和元组中的对象不一定都必须是同一类的 元组之内的元组还是元组被充当成元组中的一个对象。同样元组中的元组或列表中的元组或元组中的列表等等都是如此。 索引 zoo[] zoo[2][] 如果第三个元素是元组或列表的话 zoo() zoo(1,) 必须加逗号 为了区分 zoo(1) 也可理解为 zoo1 print %s is %d years old % (name, age) 使用元组print格式化输出 在大多数时候你可以只使用%s定制而让Python来提你处理剩余的事情。这种方法对数同样奏效。然而你可能希望使用正确的定制从而可以避免多一层的检验程序是否正确。 字典 索引靠的是自己指定的键 只能使用不可变的对象比如字符串来作为字典的键但是你可以用不可变或可变的任何对象作为字典的值。 键/值对用冒号分割而各个对用逗号分割所有这些都包括在花括号中。 字典是dict类的实例/对象。 ab { Swaroop : swaroopchbyteofpython.info, Larry : larrywall.org, Matsumoto : matzruby-lang.org, Spammer : spammerhotmail.com } ab[‘Larry’] 按键索引 ab[‘Bravo’]’jdfjj’ 增加 del ab[‘bravo’] len(ab) for name,address in ab.items(): print ‘contact %s at %s ’ % (name,address) if ‘Guido’ in ab: # ab.has_key(‘Guido’) print ………… item方法返回一个元组的列表其中每个元组都包含一对项目——键与对应的值 可以使用help(dict)来查看dict类的完整方法列表。 列表、元组和字符串都是序列说它们是序列因为序列的两个主要特点是索引操作符和切片操作符。他们都可如此操作。 list[N] 0开头 list[-N] 倒数第N个 list[A:B] 切片操作符中的第一个数冒号之前表示切片开始的位置第二个数冒号之后表示切片到哪里结束。不包括最后一个。如果不指定第一个数Python就从序列首开始。如果没有指定第二个数则Python会停止在序列尾。注意返回的序列从开始位置开始刚好在结束位置之前结束。即开始位置是包含在序列切片中的而结束位置被排斥在切片外。shoplist[:]返回整个序列的拷贝。 注意列表元组字符串都可以使用[]来索引 序列的神奇之处在于你可以用相同的方法访问元组、列表和字符串。 参考 mylist shoplist 此句表示 两者指向同一实体 一个改变另一个也改变 这个情况存在与列表和字典中元组不可改变 mylist shoplist[:] 如此才是正确的拷贝 如果想要复制一个列表或者类似的序列或者其他复杂的对象不是如整数那样的简单 对象 那么你必须使用切片操作符来取得拷贝。 字符串的一些方法 str.startwith(‘’) 是否以某字符串开头 返回0或1 if ‘a’ in str: if str.find(‘’)!-1: #寻找是否含有某字符串返回-1或位置 delimiter.join(mylist) mylist为列表delimiter为要嵌入分隔的字符串 以上为Python内建的数据结构。 编写一个Python脚本 字符串可以相加 os time 模块 time.strftime(%Y%m%d%H%M%S) 这些定制与用于print语句的定制%后跟一个元组类似但不完全相同 zip_command zip -qr %s %s % (target, .join(source)) 使用os.system函数运行命令利用这个函数就好像在系统中运行命令一样。即在shell中运行命令——如果命令成功运行它返回0否则它返回错误号。 C:\Documents\...... 在Linux下 目录分隔是/ 所以 指代 目录的字符串 windows下 最好加上r以区别于转义字符 not os.path.exists(today) 检查是否有这样的路径not是求反 os.mkdir(today) 创建文件夹 注意os.sep变量的用法——这会根据你的操作系统给出目录分隔符即在Linux、Unix下它是/在Windows下它是\\而在Mac OS下它是:。使用os.sep而非直接使用字符会使我们的程序具有移植性可以在上述这些系统下工作。 commentraw_input(‘提示语句’) comment.replace(‘某某,’某’) 将串中的某某用某替代 最理想的创建这些归档的方法是分别使用zipfile和tarfile。它们是Python标准库的一部分可以供你使用。使用这些库就避免了使用os.system这个不推荐使用的函数它容易引发严重的错误。 软件是长出来的而不是建造的。软件的编写是逐步渐进式的。 什么分析 如何设计 编写实施 测试测试与调试 使用实施或开发 维护优化 面向对象的编程 在Python中没有数据类型概念所有都是类都是对象。 在Python中即便是整数也被作为对象属于int类。这和C、Java1.5版之前把整数纯粹作为类型是不同的。 属于一个对象或类的变量被称为域。域和方法可以合称为类的属性。 域有两种类型——属于每个实例/类的对象或属于类本身。它们分别被称为实例变量和类变量。 类方法的self参数。 类的方法都必须有第一个的self形参self指代对象本身。 #相当于C中的this MyObject.method(arg1, arg2) MyClass.method(MyObject, arg1, arg2) 即方法中的第一个形参位置已经是被占用的了你只需要给它一个名字,使用方法时就当它不存在。 pass # An empty block 类名后跟一对圆括号可创建一个对象/实例 pperson() _init_方法 对象一被建立自动运行的方法 初始化 (类似构造函数) class Person: def __init__(self, name): self.name name def sayHi(self): print Hello, my name is, self.name p Person(Swaroop) p.sayHi() 在创建一个类的新实例的时候把参数包括在圆括号内跟在类名后面从而传递给__init__方法。__init__方法在类的一个对象被建立时马上运行。这个方法可以用来对你的对象做一些你希望的初始化。 类的变量域由一个类的所有对象实例共享使用。某一对象对它进行修改则所有的对象都发生变化。 对象的变量由类的每个对象/实例拥有。不共享 类定义中没self点缀的都是属于类变量。 只能使用self变量来参考同一个对象的变量和方法。 这被称为属性参考。 self.fangfa self.duixiangbianliang docstring对于类和方法同样有用。我们可以在运行时使用Person.__doc__和Person.sayHi.__doc__来分别访问类与方法的文档字符串。 在类语句块的开头或者方法的开头加上’’’ …….‘’’这个就是文档字符串了。 __del__方法它在对象消逝的时候被调用。可使用del语句删除一个对象。 当对象不再被使用时__del__方法运行但是很难保证这个方法究竟在什么时候运行。如果你想要指明它的运行你就得使用del语句就如同我们在以前的例子中使用的那样。 注意__为双下划线 如果你使用的数据成员名称以双下划线前缀比如__privatevarPython的名称管理体系会有效地把它作为私有变量。 相当于private类型 私有变量的特征 SchoolMember类被称为基本类或超类。而Teacher和Student类被称为导出类或子类。 一个子类型在任何需要父类型的场合可以被替换成父类型即对象可以被视作是父类的实例这种现象被称为多态现象。 Python不会自动调用基本类的constructor你得亲自专门调用它。 如果在继承元组中列了一个以上的类那么它就被称作多重继承。 使用rjust方法来得到一个按一定宽度右对齐的字符串。str.rjust(10,’*’); 通过创建一个file类的对象来打开一个文件分别使用file类的read、readline或write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。模式大概有读模式r、写模式w或追加模式a。如果我们没有指定模式读模式会作为默认的模式。最后当你完成对文件的操作的时候你调用close方法来告诉Python我们完成了对文件的使用。 Python提供一个标准的模块称为pickle。使用它你可以在一个文件中储存任何Python对象之后你又可以把它完整无缺地取出来。这被称为持久地储存对象。 还有另一个模块称为cPickle它的功能和pickle模块完全相同只不过它是用C语言编写的因此要快得多比pickle快1000倍。你可以使用它们中的任一个而我们在这里将使用cPickle模块。记住我们把这两个模块都简称为pickle模块。 只要是一些非法操作或者运行中出现的错误程序就会中断并抛出异常。要有意识地去处理可能发生异常的代码块。 try: 语句 except 异常符号/(异常符号元组) 语句 except #所有情况 语句 else: 语句 #可选没有异常时发生 raise 新定义的异常 可以使用raise语句引发异常。还得指明错误/异常的名称和伴随异常触发的异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 except ShortInputException, x: 指定一个异常情况并跟随其异常对象 在except从句中我们提供了错误类和用来表示错误/异常对象的变量。 try: finally: 在程序运行的时候可按Ctrl-c中断/取消程序。产生异常KeyboardInterrupt异常被触发程序退出。 ffile(open.txt,w) 如果没加’w’的话默认为’r’那么如果此时文件夹中不存在open.tx t会抛出IOError 可以在Python附带安装的文档的“库参考”一节中了解Python标准库中所有模块的完整内容。 类中的特殊方法 __init__(self,…) __del__(self) __str__(self) 对对象使用 print或str()时调用 __lt__(self,other) 使用运算符时调用 __getitem__(self,key) 使用x[key]索引时调用 __len__(self) 对对象使用len()时调用 列表综合 listone [2, 3, 4] listtwo [2*i for i in listone if i 2] print listtwo 在很多时候我们都是使用循环来处理列表中的每一个元素而使用列表综合可以用一种更加精确、简洁、清楚的方法完成相同的工作。 当要使函数接收元组或字典形式的参数的时候有一种特殊的方法它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。 def powersum(power, *args): Return the sum of each argument raised to specified power. total 0 for i in args: total pow(i, power) return total 由于在args变量前有*前缀所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀多余的参数则会被认为是一个字典的键/值对。 lambda这是Python支持一种有趣的语法它允许你快速定义单行的最小函数类似与C语言中的宏这些叫做lambda的函数是从LISP借用来的可以用在任何需要函数的地方 g lambda x: x * 2 g(3) 6 本质上lambda需要一个参数后面仅跟单个表达式作为函数体而表达式的值被这个新建的函数返回。注意即便是print语句也不能用在lambda形式中只能使用表达式。 exec语句用来执行储存在字符串或文件中的Python语句。eval语句用来计算存储在字符串中的有效Python表达式。 exec “print ‘Hello World’” eval ‘55’ assert语句用来声明某个条件是真的。 当assert语句失败的时候会引发一个AssertionError。 assert 判断语句 repr()函数和 用来获得对象的规范字符串表示。可以通过定义类的__repr__方法来控制你的对象在被repr()调用的时候返回的内容。 eval(repr(对象))对象 有许多可供选择的使用Python的GUI PyQt 这是Qt工具包的Python绑定。Qt工具包是构建KDE的基石。 PyGTK 这是GTK工具包的Python绑定。GTK工具包是构建GNOME的基石。 wxPython 这是wxWidgets工具包的Python绑定。 TkInter 这是现存最老的GUI工具包之一。如果你使用过IDLE它就是一个TkInter程序。TkInter是标准Python发行版的一部分。 Python标准库是一个丰富的库在大多数时候你可以在这个库中找到你所需的东西。 Python.org Jython是用Java语言实现的Python解释器。这意味着你可以用Python语言编写程序而同时使用Java库 IronPython是用C#语言实现的Python解释器可以运行在.NET、Mono和DotGNU平台上。这意味着你可以用Python语言编写程序而使用.NET库以及其他由这三种平台提供的库 使你的计算机自动地完成许多先前无法想象的工作或者编写你自己的游戏以及更多别的什么东西。 关于字节流及其转换的问题 Python中返回多个值的方法 利用元组tuple return (x,y,z) 写成返回元组的形式 在调用时用元组去接收即可 关于切片运算符 很多需要再说明下 y[::-1] 就是倒序 序列元组索引都跟C中的数组一样a[0]即为第一个元素 a[0:N] 会显示 a[0]到a[N-1]个元素 a[0:-1] -1指倒退 即a[0:N-1] 所以显示 a[0]到a[N-2]这些元素 序列元组的特点 a[-1] 即是 a[N-1] rfft、irfft与fft、ifft的区别和应用 利用rfft对来做统计相关不太可行 fft(x) x为是实信号则第一点的虚部必为0若x为偶数点则第N/21个点虚部也为0 x.shape[axis] 首先x是一个矩阵shape返回一个元组说明每个维度的元素个数。 如果是一维数组返回的是一个N的元组 set() 去掉重复元素 sorted() 重排 对于序列list list.index()用于返回序列中指定值的序号 #s.split([sep, [maxsplit]]) 以sep是分隔符把s分割成一个list。sep默认为空格。maxsplit是分割的次数默认是对整个s进行分割 #s.rsplit([sep, [maxsplit]]) 和split()的区别是它是从s的串尾往前进行分割 #s.splitlines([keepends]) 把s按照行分隔符分成一个list。如果keepends为True则list的每个元素保留行分割符如果为False则不保留分隔符 #s.join(seq) 用s把seq序列串联起来转载于:https://www.cnblogs.com/boowin/p/4525143.html