张永伟北京大学 软微学院 语言信息工程系2009年10月29日《Python语言入门》简介 人生苦短,我用Python! 课程相关信息隶属课程:《计算机科学技术基础-C》主讲教师:俞敬松(yjs@ss.pku.edu.cn )课程助教:张永伟(zhangywibb@gmail.com)课程讲义:http://www.pkumti.net/ 课程简介课程目标能使用python语言编写简单的程序掌握程序设计的基本原理方法课程内容python语言基本语法正则表达式程序开发实践 课程简介1. Python语言引论1.1 python语言历史1.2 python语言特点1.3 python开发环境1.4 第一个python程序 课程简介2. python基本语法2.1 python文件类型2.2 python编码规则2.3 变量和常量2.4 数据类型2.5 运算符与表达式 课程简介3. python控制语句3.1 结构化程序设计3.2 条件语句3.3 循环语句z3.3.1 while 循环z3.3.2 for 循环z3.3.3 break和continue语句 课程简介4.内置数据结构4.1 元组4.2 列表4.3 字典4.4 序列 课程简介5. 字符串与正则表达式5.1 字符串操作5.2 正则表达式5.3 文件的高级操作 课程简介6. 函数、模块与异常处理python程序的结构函数模块异常处理 课程简介7. 面向对象编程*面向对象编程类类的属性类的方法类的继承 课堂组织课堂时间分配讲解理论知识66.67%程序实践33.33%课堂点名课堂不点名 考核方式考核方法《Python语言入门》成绩计入《计算机科学技术基础-C》总成绩开卷、但不能与Ta人有任何形式的交流只考编程,不考概念成绩计算方法课堂作业30%课后作业20%最后一节课考试50% 教材与参考书教材孙广磊 ,征服Python:语言基础与典型应用, 人民邮电出版社 ,2007年09月丘恩(Wesley J.Chun)著、宋吉广译,Python核心编程(第2版) ,人民邮电出版社 ,2008年07月Mark Lutz 著 侯靖译 ,Python学习手册(第3版) ,机械工业出版社,2009年08月周伟 宗杰,Python开发技术详解,机械工业出版社,2009年08月Ben Forta著 杨涛 等译,正则表达式必知必会,人民有点出版社,2007年12月 教材与参考书参考书《Python 学习笔记》《Python语言入门》《Python 从新手到高手》《OReilly - Python Cookbook》《Programming Python, 3rd Edition》《Python Programming for the Absolute Beginner》Python自带文档所有参考书在课程主页上均有下载 谢谢!好好想想,有没有问题? 张永伟北京大学软微学院语言信息工程系2009年10月29日《Python语言入门》课程第一讲Python语言引论 课堂调查举手统计接触过计算机编程语言?写过200行代码以内的程序?写过超过200行代码的程序? Python语言历史python语言起源在1989年末,Guido van Rossum为了打发圣诞节的无聊,创造了python。python版本最新版本为3.1.1 课程采用版本2.6.x Python与其他语言比较Python与其他语言比较比Tcl更强大比Perl的语法和设计更简单比Java更简单、更易于使用比C++更简单、更易于使用比Visual Basic更强大也具备跨平台特性比Ruby更成熟、语法更具可读性具备SmallTalk和Lisp等动态类型的特性,但是对于开发者定制系统的终端用户来说更简单,也更接近传统变成语言的语法。 Python的缺点Python的缺点运行速度不够快开发速度与运行速度之间的矛盾至今还没有一门编程语言,开发速度比Python快,运行速度比C快 Python语言特点(1)python语言特点面向对象降低了结构化程序设计的复杂性,使得程序设计更贴近显示生活。简单学习简单使用简单跨平台一次编写、到处运行。 Python语言特点(2)python语言特点功能强大动态类型、自动内存管理、大型程序支持、易于扩展、丰富的内臵对象类型、丰富的内臵工具、丰富的库工具、丰富的第三方工具应用广泛数据库、网络、图形图像、科学计算、web开发、操作系统扩展等 python开发环境python版本2.6.x主页:http://python.org开发环境(IDE)python IDE列表http://wiki.python.org/moin/IntegratedDevelopmentEnvironmentsPyScripter主页:http://code.google.com/p/pyscripter/Ulipad主页:http://code.google.com/p/ulipad/ 第一个python程序(1)搭建运行环境下载并安装python 2.6.x 软件包下载并安装PyScripter代码输入输入第一个python程序代码代码保存将python程序代码保存为以.py结尾的文件程序运行按快捷键F11即可以运行编写的python程序 第一个python程序(2)#coding:utf-8"""多行注释2"""#单行注释#输出字符串"Hello Python",字符串用成对的单引号,#或双引号,或三个单引号,三个单引号扩起来。print 'Hello Python'; #分号可以省略#定义两个整型变量,并分别赋值,8,9a=8b=9#条件判断语句,注意缩进。#缩进是初学者最容易犯的错误之一。if a>b:print "a>b";else:print "a<=b";注意:分号、冒号,引号均为英文符号。注意:缩进的一致性,一般用Tab符号缩进 第一个python程序(3)#coding:utf-8#程序的交互,及python中文问题#提示输入一个字符串inputString=raw_input("input one String:\t")#打印输入的字符串#print “你刚才输入的是:\t”+inputStringprint "你刚才输入的是:\t"+inputString.decode('gbk').encode('utf-8')#print "你刚才输入的是:\t"+inputString.decode('utf-8').encode('gbk')#提示输入一个整数inputInt=raw_input("input one Integer:\t")#打印输入的整数print inputInt#计算加法print inputInt+"+2="+str(int(inputInt)+2)Python中文问题值得注意!试一试如果输入的不是一个数字会发生什么状况? 课后作业搭建、熟悉python开发环境下节课开始使用PyScripter开发python程序程序作业编写一个程序,分别要求用户输入2个人的考试成绩,输出两个人成绩的平均值。求平均值的公式为(a+b)/2测试程序的输出结果与你的预期一样么?如果不一样,能否查阅相关资料,解决这个问题。 谢谢!好好想想,有没有问题? 张永伟北京大学 软微学院 语言信息工程系2009年11月19日《Python语言入门》课程 第三讲python控制语句 上节课作业作业:编写一个程序,分别要求用户输入2个人的考试成绩,输出两个人成绩的平均值。答案1:#编写一个程序,分别要求用户输入2个人的考试成绩,输出两个人成绩的平均值。#要求分别输入2个学生的成绩score1S=raw_input("请输入第一个学生的成绩:");score2S=raw_input("请输入第二个学生的成绩:");#分别将两个人的成绩做类型转换,字符串类型变为整型score1=int(score1S);score2=int(score2S);#计算平均值averageScore=1.0*(score1+score2)/2print "average score is "+str(averageScore) 上节课作业答案2:#编写一个程序,分别要求用户输入2个人的考试成绩,输出两个人成绩的平均值。#要求分别输入2个学生的成绩score1=input("请输入第一个学生的成绩:");score2=input("请输入第二个学生的成绩:");#计算平均值averageScore=1.0*(score1+score2)/2#输出结果print "average score is ",averageScore;input()函数支持用户输入数字或表达式 课程内容课程内容结构化程序设计条件语句循环语句zwhile 循环zfor 循环zbreak和continue语句文件 结构化程序设计结构化程序设计方法自顶向下、逐步求精;把需要的问题分解为若干个小任务来完成,再对每个小任务进行设计,逐步求精;结构化程序设计是面向对象程序设计的基础。结构化程序设计的三种基本结构顺序结构选择结构循环结构 结构化程序设计的三种基本结构顺序语句语句处于同一语句块内,程序执行时,所有语句按顺序依次执行条件语句又称选择语句、判断语句;条件语句是指根据条件表达式的不同结果,使程序选择执行不同代码块的语句。循环语句循环语句是指在满足某个条件的情况下,使程序重复执行同一个代码块的语句。 条件语句条件语句基本形式条件语句的执行 过程如果条件1为真,则执行if语句块;否则进入elif语句的条件判断,如果条件2为真则执行语句块2;如果所有条件都不满足,则执行else语句块3。if <条件1>: #条件为真时,执行缩进的语句块,为假时继续判断elif的条件语句块1 #要用缩进来表示语句块处于if语句之中elif <条件2>: #当条件为真时,执行缩进的语句,当条件为假时执行else语句块2else:#前边所有的条件都为假,则执行下面的缩进语句语句块3 条件语句注意事项条件语句注意事项else语句与和它最近的if语句配对if,elif,else语句可以嵌套elif语句可以省略else语句也可以省略问题:条件为真时,执行相应语句块。什么情况下条件为真呢?0,True,[3,4],[],5,False,””,“python”,None,3.0,0.0? 条件的真假条件的真假任何非零数字或非空对象都为真;数字0,空对象以及特殊对象None都被认作是假;比较和相等测试会返回True或False(1和0的特殊版本);布尔and和or运算表达式会返回真或假的操作对象。 条件语句例子例子1:分数及格与否的判断score=60;#只有if语句if score<60: #如果分数小于60则输出"not pass"print "not pass";#标准的if,else语句if score<60: #如果分数小于60则输出"not pass!"print "not pass!";else: #否则输出"pass!"print "pass!"; 例子2:分数及格与否的判断score=60;#复杂一点的if,elif,else语句if score<60: #如果分数小于60则输出"not pass!!"print "not pass!!";#如果分数大于等于60分或小于80分,则输出"pass but not good!!"elif score>=60 and score <80: