Python语言介绍及编程入门1概述Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。2Python的特色(一)可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C或C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。3Python的特色(二)Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。它使你能够专注于解决问题而不是去搞明白语言本身。Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。例如if语句:ifage21:printYoucannotbuywine!\nprintButyoucanbuychewinggum.\nprintthisisoutsideif\n4Python的特色(三)一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。5Python的特色(四)Python语法:•Python增加了什么-新的语法成分冒号(:)。所有的复合语句(语句中嵌套了语句)都有相同的一般形式,就是首行以冒号结尾,首行下一行嵌套的代码往往按缩进的格式书写。•Python删除了什么-括号是可选的-终止行就是终止语句(分号)-缩进的结束就是代码块的结束(})6Python中的关键字和语法•if:当条件成立时执行语句块。经常与else,elif(相当于elseif)配合使用。•for:遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。•while:当条件为真时,循环执行语句块。•try:与except,finally配合使用处理在程序运行中出现的异常情况。•class:用于定义类型。•def:用于定义函数和类型的方法。•pass:表示此行为空,不执行任何操作。•assert:用于程序调试阶段时测试运行条件是否满足。•with:Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加锁,然后在语句块运行结束后释放它。•yield:在迭代器函数内使用,用于返回一个元素。•global:定义全局变量。•lambda:定义匿名函数。7常见的运算符及其用法运算符名称说明例子+加两个对象相加3+5得到8。'a'+'b'得到'ab'。-减得到负数或是一个数减去另一个数-5.2得到一个负数。50-24得到26。*乘两个数相乘或是返回一个被重复若干次的字符串2*3得到6。'la'*3得到'lalala'。**幂返回x的y次幂3**4得到81(即3*3*3*3)/除x除以y4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333//取整除返回商的整数部分4//3.0得到1.0%取模返回除法的余数8%3得到2。-25.5%2.25得到1.5左移把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)22得到8。——2按比特表示为10右移把一个数的比特向右移一定数目111得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。8常见的运算符及其用法运算符名称说明例子&按位与数的按位与5&3得到1。|按位或数的按位或5|3得到7。^按位异或数的按位异或5^3得到6~按位翻转x的按位翻转是-(x+1)~5得到6。9常见的运算符及其用法运算符名称说明例子小于返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。53返回0(即False)而35返回1(即True)。比较可以被任意连接:357返回True。大于返回x是否大于y53返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。=小于等于返回x是否小于等于yx=3;y=6;x=y返回True。=大于等于返回x是否大于等于yx=4;y=3;x=y返回True。==等于比较对象是否相等x=2;y=2;x==y返回True。x='str';y='stR';x==y返回False。x='str';y='str';x==y返回True。!=不等于比较两个对象是否不相等x=2;y=3;x!=y返回True。10Python语法的基本概念1.数:整数、长整数、浮点数、复数。2.字符串:(1)在双引号中的字符串与单引号中的字符串的使用完全相同(2)利用三引号[“”“或”’],你可以指示一个多行的字符串(3)转义符[\],但在一个字符串行末的单独一个反斜杠用于续行(4)自然字符串:通过给字符串加上前缀r或R来指定,这样就保持原样(不转义)(5)Unicode字符串:在字符串前加上前缀u或U,例:u“这是unicode”3.变量:使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。4.标识符:以字母表中的字母(大写或小写)、下划线(‘_’)或数字(0-9)组成,并且第一个字符必须是字母(大写或小写)或下划线(‘_’)。5.缩进:在Python语法,没有使用大括号而是以缩进的方式来标示语句块,即同一层次的语句必须有相同的缩进。11Python语法的基本概念7.控制流(1)if语句:形式如下(注意if语句在结尾处包含一个冒号,告诉Python语法下面跟着一个语句块;并且,没有switch语句)ifcondition:statementelifcondition:statementelsestatement(2)while语句:形式如下whilecondition:statementelse:(3)for语句:形式如下forelementincollection:statementelse:(4)break语句:形式同其他语言,需要注意的是,如果从for或while循环中终止,任何对应的循环else块将不执行(5)continue语句:形式同其他语言8.函数:通过def定义。Def后跟一个函数的标识符名称,然后跟一对圆括号。括号中可以包括一些变量名,该行以冒号结尾,接下来是一块语句,它们是函数体,例:deffunction_name():statement12文件读写•open()函数f=open(“foo”,“w”)#写方式打开文件g=open(“bar”,“r”)#只读方式打开文件f.close()#关闭文件•文件的读取/写入f.write(HelloWorld)buff=g.read()#读取文件所有数据line=g.readline()#读一行数据lines=g.readlines()#以列表的方法返回文件所有数据•格式化的输入使用%来格式化字符串foriinrange(0,10):f.write(2times%d=%d\n%(i,2*i))13Python、Perl、Ruby的比较Python:首先就以语法而论,python没有perl的灵活紧凑。它可以编写运行在操作系统的应用程序,可以编写web代码,它不是脚本语言但是有脚本语言的功能,他和java,C++,C地位差不多。它代码的运行效率高,有的代码几乎能和C++相比,它还能嵌入到C++中,很方便。它适合用来做小网站。如果在Linux系统的话编写命令是很好的,和perl一样,而且运行速度很快。perl易写难读,而Python强制编程员有个良好的编程习惯。好在他学起来非常容易。14Python、Perl、Ruby的比较Perl:Perl强大的正则表示式比对以及字符串操作使这个工作变得简单而没有其它语言能相比。Perl非常擅长于切割,扭转,绞,弄平,总结,以及其它的操作文字文件。Perl能容错,它并不介意某个值是空的或是有奇怪的字符,正规表示式能够被写成取出并且更正错误的一般错误。15Python、Perl、Ruby的比较Ruby:Ruby是面向对象的编程语言,是脚本语言和PHP一样。它追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似Perl的强大的文本处理功能,可以用它来进行实用的编程。此外,您还可以很方便地使用C语言来扩展Ruby的功能,因此可以把它当作各种库的前端来使用。Ruby很适合做中小型web工程,它和jsp(J2EE)并不冲突,一个是低端的一个是高端的。16Python、Perl、Ruby的比较总结:Perl精练、复杂、强大、灵活、自由、表现力强,但规范性、可读性、一致性、整洁性和可维护性较差。Python优雅规范、简洁明晰、易学易用、类库丰富,但效率稍差,有些人不喜欢它对空白符敏感的特性。Ruby语法精巧、高度灵活,兼具Perl的表现力和Python的可读性,尤其注重程序员的感受,但其性能和线程模型尚有待改进。17Python编程实例冒泡算法:num=[23,2,3,6,18,9,33,13,24,19]forjinrange(len(num))[::-1]:foriinrange(j):if(ilen(num)-1):if(num[i]num[i+1]):temp=num[i]delnum[i]num.insert(i+1,temp)printnum输出结果:[2,3,6,9,13,18,19,23,24,33]18Python编程实例计算从1到n的自然数中有多少个数字1,例如10包含一个“1”,而110则包含两个“1”:#计算从1到n的自然数中数字1的个数g_count=0foriinrange(1,100000):g_count=g_count+str(i).count('1')if(i==9ori==99ori==999ori==9999ori==99999):print('从1到%d共有%d个数字1'%(i,g_count))输出结果:从1到9共有1个数字1从1到99共有20个数字1从1到999共有300个数字1从1到9999共有4000个数字1从1到99999共有50000个数字119Python编程实例mySQL的应用:#-*-encoding:gb2312-*-importos,sys,stringimportMySQLdb#连接数据库try:conn=MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='test1')exceptException,e:printesys.exit()#获取cursor对象来进行操作cursor=conn.cursor()#创建表sql=createtableifnotexiststest1(namevarchar(128)primarykey,ageint(4))cursor.execute(sql)#查询出数据sql=select*fromtest1cursor.execute