您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[北京大学]:北京大学 Python入门课件 - 发现报告
当前位置:首页/其他报告/报告详情/

北京大学 Python入门课件

2009-10-29张永伟北京大学李***
北京大学 Python入门课件

张永伟北京大学 软微学院 语言信息工程系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/IntegratedDevelopmentEnvironmentsPyScripter主页: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: