程序设计思想与方法

上传人:新** 文档编号:568423745 上传时间:2024-07-24 格式:PPT 页数:49 大小:685KB
返回 下载 相关 举报
程序设计思想与方法_第1页
第1页 / 共49页
程序设计思想与方法_第2页
第2页 / 共49页
程序设计思想与方法_第3页
第3页 / 共49页
程序设计思想与方法_第4页
第4页 / 共49页
程序设计思想与方法_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《程序设计思想与方法》由会员分享,可在线阅读,更多相关《程序设计思想与方法(49页珍藏版)》请在金锄头文库上搜索。

1、程序设计思想与方法程序设计思想与方法课程信息课程信息n n教材教材教材教材 程序设计思想与方法程序设计思想与方法程序设计思想与方法程序设计思想与方法问题求解与计算思维问题求解与计算思维问题求解与计算思维问题求解与计算思维陆朝俊,高教出版社,陆朝俊,高教出版社,陆朝俊,高教出版社,陆朝俊,高教出版社,20132013n n参考书参考书参考书参考书 Python Programming: An Introduction to Python Programming: An Introduction to Computer Science. (Computer Science. (电子版电子版电子版电

2、子版) ) How to Think Like a Computer ScientistHow to Think Like a Computer ScientistLearning with Python.(Learning with Python.(电子版电子版电子版电子版) ) http:/ PythonPython学习手册学习手册学习手册学习手册 第第第第4 4版版版版 ( (原版:原版:原版:原版:LearningLearning Python)Python)2 2课程信息课程信息n n下载下载python 软件的地址软件的地址https:/www.python.org/https:/

3、www.python.org/n nPurdue University的的课件地址:课件地址: http:/secant.cs.purdue.edu/http:/secant.cs.purdue.edu/cs190c:textsoft09cs190c:textsoft09 3 3教学方式教学方式n n课堂教学课堂教学- - - - 每星期四每星期四每星期四每星期四3, 43, 4节节节节讲课讲课讲课讲课, , 演示演示演示演示n n机房上机机房上机单单单单周周周周(3-15(3-15周,共周,共周,共周,共7 7次次次次) )周一周一周一周一1, 21, 2节节节节, , 电院电院电院电院4

4、4号楼号楼号楼号楼31313 3教室教室教室教室完成当天上机作业并提交完成当天上机作业并提交完成当天上机作业并提交完成当天上机作业并提交答疑答疑答疑答疑 4 4考核方式考核方式n n期末考试期末考试期末考试期末考试 笔试笔试笔试笔试, , 占最终成绩的占最终成绩的占最终成绩的占最终成绩的50%50%n n平时作业平时作业平时作业平时作业 上机作业、章节后的作业上机作业、章节后的作业上机作业、章节后的作业上机作业、章节后的作业 ftpftp上传给助教上传给助教上传给助教上传给助教, , 占最终成绩的占最终成绩的占最终成绩的占最终成绩的4 40%0%n n自选作业自选作业自选作业自选作业 编一个大

5、程序编一个大程序编一个大程序编一个大程序, , 期末提交期末提交期末提交期末提交, , 占最终成绩的占最终成绩的占最终成绩的占最终成绩的1 10%0%5 5第第1 1章章 计算与计算思维计算与计算思维问题的提出问题的提出n n当今时代当今时代,计算机几乎无处不在计算机几乎无处不在:企业管理企业管理企业管理企业管理产品设计产品设计产品设计产品设计气象预报气象预报气象预报气象预报电影制作电影制作电影制作电影制作工业控制工业控制工业控制工业控制游戏游戏游戏游戏, , 写文章写文章写文章写文章, , 上网上网上网上网, , n n问题问题:计算机究竟是什么计算机究竟是什么?怎么能做这么怎么能做这么多不

6、同的事情多不同的事情?7计算机计算机: 硬件硬件(1)8 8主存储器主存储器CPU输入设备输入设备输出设备输出设备次级存储器次级存储器计算机计算机: :硬件硬件(2)(2)n n中央处理器中央处理器中央处理器中央处理器(CPU):(CPU):执行执行执行执行指令指令指令指令 每条指令只能完成简单的操作每条指令只能完成简单的操作每条指令只能完成简单的操作每条指令只能完成简单的操作! !n n例如例如例如例如: : 加法加法加法加法, , 比较比较比较比较, , 移动移动移动移动, etc., etc. 但按一定的次序执行大量简单指令能完成复杂任但按一定的次序执行大量简单指令能完成复杂任但按一定的

7、次序执行大量简单指令能完成复杂任但按一定的次序执行大量简单指令能完成复杂任务务务务! !n n存储器存储器存储器存储器: : 存储信息存储信息存储信息存储信息( (程序和数据程序和数据程序和数据程序和数据) ) 主存主存主存主存: : CPUCPU能直接访问能直接访问能直接访问能直接访问, ,速度快但易失速度快但易失速度快但易失速度快但易失 次级存储器次级存储器次级存储器次级存储器: :速度慢但持久速度慢但持久速度慢但持久速度慢但持久n n输入输入输入输入/ / / /输出设备输出设备输出设备输出设备: : : :人机交互人机交互人机交互人机交互99 9101010计算机计算机: :软件软件n

8、 n计算机是信息处理机器计算机是信息处理机器, ,信息处理过程信息处理过程由预定的由预定的程序程序控制控制. .单条指令是做不了什么事情的单条指令是做不了什么事情的单条指令是做不了什么事情的单条指令是做不了什么事情的, , , ,需要大量需要大量需要大量需要大量指令组成一个逐步执行的指令组成一个逐步执行的指令组成一个逐步执行的指令组成一个逐步执行的指令序列指令序列指令序列指令序列, , , ,即程序即程序即程序即程序. . . .n n各种程序统称为计算机软件各种程序统称为计算机软件. .n n没有软件的计算机毫无用处没有软件的计算机毫无用处. .1010计算计算n n计算计算计算计算: :

9、: : 利用计算机执行程序来解决问题利用计算机执行程序来解决问题利用计算机执行程序来解决问题利用计算机执行程序来解决问题. . . .不是狭义的数学计算不是狭义的数学计算不是狭义的数学计算不是狭义的数学计算! ! ! !n n程序使得简单指令能完成复杂任务程序使得简单指令能完成复杂任务程序使得简单指令能完成复杂任务程序使得简单指令能完成复杂任务. . . .问问问问: : : :只会加法的小学生能完成乘法运算任务吗只会加法的小学生能完成乘法运算任务吗只会加法的小学生能完成乘法运算任务吗只会加法的小学生能完成乘法运算任务吗? ? ? ?答答答答: : : :能能能能! ! ! !关键是编写合适的

10、程序关键是编写合适的程序关键是编写合适的程序关键是编写合适的程序 在纸上写下在纸上写下在纸上写下在纸上写下0 0 0 0,记住结果;,记住结果;,记住结果;,记住结果; 给所记结果给所记结果给所记结果给所记结果加加加加上第上第上第上第1 1 1 1个个个个n n n n,记住结果;,记住结果;,记住结果;,记住结果; 给所记结果给所记结果给所记结果给所记结果加加加加上第上第上第上第2 2 2 2个个个个n n n n,记住结果;,记住结果;,记住结果;,记住结果; 给所记结果给所记结果给所记结果给所记结果加加加加上第上第上第上第m m m m个个个个n n n n,记住结果,记住结果,记住结果

11、,记住结果; ; ; ; 报告结果报告结果报告结果报告结果( ( ( (即即即即m m m mn n n n) ) ) )111111121212通用计算机通用计算机n n计算机是具有如下特征的机器计算机是具有如下特征的机器:能够存储和处理信息能够存储和处理信息能够存储和处理信息能够存储和处理信息n n输入输入输入输入处理处理处理处理输出输出输出输出信息处理由程序控制信息处理由程序控制信息处理由程序控制信息处理由程序控制n n计算机计算机计算机计算机程序程序程序程序是一个详细的逐步执行的指令序列是一个详细的逐步执行的指令序列是一个详细的逐步执行的指令序列是一个详细的逐步执行的指令序列, ,告诉

12、计算机该做什么告诉计算机该做什么告诉计算机该做什么告诉计算机该做什么n n程序可改变程序可改变程序可改变程序可改变: : 不同的程序完成不同的处理任务不同的程序完成不同的处理任务不同的程序完成不同的处理任务不同的程序完成不同的处理任务n n计算机执行一个程序即可实现一个功能计算机执行一个程序即可实现一个功能计算机执行一个程序即可实现一个功能计算机执行一个程序即可实现一个功能; ; ; ;换着换着换着换着执行不同的程序即可实现不同的功能执行不同的程序即可实现不同的功能执行不同的程序即可实现不同的功能执行不同的程序即可实现不同的功能. . . .n n人们造了各种各样的计算机人们造了各种各样的计算

13、机, 但但: 所有所有计算机具有相同的能力计算机具有相同的能力!计算机科学计算机科学n n并非研究计算机并非研究计算机!计算机之于计算机科学家正如望远镜之于天计算机之于计算机科学家正如望远镜之于天计算机之于计算机科学家正如望远镜之于天计算机之于计算机科学家正如望远镜之于天文学家文学家文学家文学家. (E. W. Dijkstra). (E. W. Dijkstra)n nCS研究计算的基础研究计算的基础,实现与应用实现与应用.例如例如例如例如,CS,CS的一个基本问题的一个基本问题的一个基本问题的一个基本问题: :什么是可计算的什么是可计算的什么是可计算的什么是可计算的? ?n n本课程的目标

14、本课程的目标:像计算机科学家一样思考像计算机科学家一样思考131313程序设计程序设计n n计算的关键是程序设计计算的关键是程序设计( (编程编程).).给定一个问题给定一个问题给定一个问题给定一个问题, , , ,利用计算机支持的简单操利用计算机支持的简单操利用计算机支持的简单操利用计算机支持的简单操作作作作, , , ,设计出一个操作步骤的序列设计出一个操作步骤的序列设计出一个操作步骤的序列设计出一个操作步骤的序列, , , ,计算机执计算机执计算机执计算机执行这个序列从而解决问题行这个序列从而解决问题行这个序列从而解决问题行这个序列从而解决问题. . . .n n学习程序设计的好处学习程

15、序设计的好处: :做计算机的主人做计算机的主人做计算机的主人做计算机的主人提高问题求解能力提高问题求解能力提高问题求解能力提高问题求解能力本身是很有乐趣的智力活动本身是很有乐趣的智力活动本身是很有乐趣的智力活动本身是很有乐趣的智力活动1414程序设计语言程序设计语言n n问问问问: :用什么语言告诉计算机做什么用什么语言告诉计算机做什么用什么语言告诉计算机做什么用什么语言告诉计算机做什么? ? 答答答答: :用精确无歧义的程序设计语言用精确无歧义的程序设计语言用精确无歧义的程序设计语言用精确无歧义的程序设计语言. . 精确的语法和语义精确的语法和语义精确的语法和语义精确的语法和语义( (形式和

16、意义形式和意义形式和意义形式和意义) )151515程序设计语言程序设计语言n n有不同层次的程序设计语言有不同层次的程序设计语言有不同层次的程序设计语言有不同层次的程序设计语言 计算机的计算机的计算机的计算机的“ “母语母语母语母语”:”: 机器语言机器语言机器语言机器语言n n例如例如例如例如: 0000010000000001.: 0000010000000001.是是是是Intel8086Intel8086能理解能理解能理解能理解的一条指令的一条指令的一条指令的一条指令 将机器语言用将机器语言用将机器语言用将机器语言用助忆符助忆符助忆符助忆符表示表示表示表示: :汇编语言汇编语言汇编语

17、言汇编语言n n上例即上例即上例即上例即: ADD AL,1.: ADD AL,1.需要需要需要需要汇编器汇编器汇编器汇编器处理后机器才懂处理后机器才懂处理后机器才懂处理后机器才懂 适合人用的语言适合人用的语言适合人用的语言适合人用的语言: : 高级语言高级语言高级语言高级语言n n如如如如: x = y + 1. : x = y + 1. 需要需要需要需要编译器编译器编译器编译器或或或或解释器解释器解释器解释器翻译后机器才懂翻译后机器才懂翻译后机器才懂翻译后机器才懂161616高级语言高级语言n n高级程序设计语言有很多种高级程序设计语言有很多种, 据说据说2008年网上被引用最多的年网上被

18、引用最多的10个语言是个语言是(按字母顺序按字母顺序): C, C+, C#, Java, JavaScript, Perl, PHP, Python, Ruby, SQL.17程序设计语言程序设计语言n n高级语言的翻译高级语言的翻译编译编译编译编译源代码编译成目标代码源代码编译成目标代码源代码编译成目标代码源代码编译成目标代码, , 再执行再执行再执行再执行一次编译一次编译一次编译一次编译, , 多次执行多次执行多次执行多次执行. .解释解释解释解释源代码直接被解释执行源代码直接被解释执行源代码直接被解释执行源代码直接被解释执行每次执行都要重新解释每次执行都要重新解释每次执行都要重新解释每

19、次执行都要重新解释. .181818编译编译vs解释解释思考思考: :为什么高级语言程序具有可移植性为什么高级语言程序具有可移植性, , 即同一个程序可以在不同厂商的计算机上执行即同一个程序可以在不同厂商的计算机上执行? ?1919Pythonn nPython采用编译采用编译/解释混合方式解释混合方式先编译成字节码先编译成字节码先编译成字节码先编译成字节码, , 再解释执行再解释执行再解释执行再解释执行n n安装安装Python 2.x与新的与新的与新的与新的Python 3.xPython 3.x有不兼容的地方有不兼容的地方有不兼容的地方有不兼容的地方n n启动启动Python20算法与编

20、码实现算法与编码实现n n程序设计程序设计先用非形式化的语言将问题求解步骤表达先用非形式化的语言将问题求解步骤表达先用非形式化的语言将问题求解步骤表达先用非形式化的语言将问题求解步骤表达出来出来出来出来算法算法算法算法; ;n n伪代码伪代码伪代码伪代码再用形式化的编程语言将上述算法实现再用形式化的编程语言将上述算法实现再用形式化的编程语言将上述算法实现再用形式化的编程语言将上述算法实现程序程序程序程序n n代码代码代码代码2121算法算法 例例: :欧几里德算法欧几里德算法n n欧几里德算法欧几里德算法:求最大公约数求最大公约数.输入输入:自然数自然数a, b输出输出: a, b的最大公约数

21、的最大公约数步骤步骤: 第第1步步:令令r为为a除以除以b所得余数所得余数 第第2步步:若若r = 0,则算法结束则算法结束, b即为答案即为答案 否则置否则置ab, br,转到第转到第1步步.2222对算法的要求对算法的要求n n算法的每个步骤必须是明确的算法的每个步骤必须是明确的算法的每个步骤必须是明确的算法的每个步骤必须是明确的, ,可行的可行的可行的可行的. . 不明确不明确不明确不明确:在菜中放点盐在菜中放点盐在菜中放点盐在菜中放点盐 不可行不可行不可行不可行:用青菜豆腐做出龙肝凤髓的美味用青菜豆腐做出龙肝凤髓的美味用青菜豆腐做出龙肝凤髓的美味用青菜豆腐做出龙肝凤髓的美味 每个步骤不

22、必是最底层的琐细步骤每个步骤不必是最底层的琐细步骤每个步骤不必是最底层的琐细步骤每个步骤不必是最底层的琐细步骤, ,可以是组合的可以是组合的可以是组合的可以是组合的高级步骤高级步骤高级步骤高级步骤. .如如如如:焯水焯水焯水焯水 n n算法的所有步骤必须在有限时间内完成算法的所有步骤必须在有限时间内完成算法的所有步骤必须在有限时间内完成算法的所有步骤必须在有限时间内完成. .n n我们说的计算我们说的计算我们说的计算我们说的计算, ,即是指即是指即是指即是指 算法计算算法计算算法计算算法计算:用明确可用明确可用明确可用明确可行的基本步骤组成的序列来解决问题行的基本步骤组成的序列来解决问题行的基

23、本步骤组成的序列来解决问题行的基本步骤组成的序列来解决问题. .232324计算思维计算思维n n计算思维计算思维(computational thinkin计算机科学家利用计算机计算机科学家利用计算机计算机科学家利用计算机计算机科学家利用计算机( (计算过程计算过程计算过程计算过程) )解决问解决问解决问解决问题时的思想和方法题时的思想和方法题时的思想和方法题时的思想和方法计算机科学计算机科学计算机科学计算机科学( (CS)CS)是关于是关于是关于是关于“ “计算计算计算计算” ”的科学的科学的科学的科学n n如何像计算机科学家一样思考如何像计算机科学家一样思考?24242525真的有计算思

24、维吗真的有计算思维吗? ?n n人们在解决不同问题时有不同的思考方式人们在解决不同问题时有不同的思考方式人们在解决不同问题时有不同的思考方式人们在解决不同问题时有不同的思考方式数学思维数学思维数学思维数学思维: : : :解数学问题解数学问题解数学问题解数学问题工程思维工程思维工程思维工程思维: : : :工程设计工程设计工程设计工程设计形象思维形象思维形象思维形象思维: : : :文学创作文学创作文学创作文学创作.n n计算思维计算思维计算思维计算思维: : : :建立在计算机的建立在计算机的建立在计算机的建立在计算机的能力能力能力能力与与与与局限局限局限局限之上之上之上之上. . . .n

25、 n由于计算机的广泛应用由于计算机的广泛应用由于计算机的广泛应用由于计算机的广泛应用, , , ,计算思维未来会成为计算思维未来会成为计算思维未来会成为计算思维未来会成为人们的基本能力人们的基本能力人们的基本能力人们的基本能力. . . .与阅读与阅读与阅读与阅读, , , ,书写书写书写书写, , , ,算术能力一样算术能力一样算术能力一样算术能力一样! ! ! !计算思维计算思维 例例:问题表示问题表示n n问题的表示问题的表示(建模建模)抽象抽象抽象抽象: :将现实中的各种数量关系将现实中的各种数量关系将现实中的各种数量关系将现实中的各种数量关系, ,空间关系空间关系空间关系空间关系,

26、,处理过程抽象为计算机的数据结构和控制处理过程抽象为计算机的数据结构和控制处理过程抽象为计算机的数据结构和控制处理过程抽象为计算机的数据结构和控制结构结构结构结构n n例如例如例如例如: :温度数据抽象为数值还是文字温度数据抽象为数值还是文字温度数据抽象为数值还是文字温度数据抽象为数值还是文字? ?不同抽象层次不同抽象层次不同抽象层次不同抽象层次n n问题表示得合适与否直接影响问题的解问题表示得合适与否直接影响问题的解法的发现和效率法的发现和效率2626计算思维计算思维 例例:算法设计算法设计n n化难为易化难为易:分解分解, 约简约简, 嵌入嵌入, 转换转换, 模拟模拟n n分治法分治法,

27、递归法递归法, 贪心法贪心法, 动态规划动态规划.n n递归地思考递归地思考n n并行处理并行处理2727计算思维计算思维 例例:编程实现编程实现n n类型系统与类型检查类型系统与类型检查n n结构化与模块化的思考结构化与模块化的思考n n编程范型编程范型:过程式过程式,面向对象面向对象,函数式函数式,.n n程序美学程序美学,系统设计的简洁与优雅系统设计的简洁与优雅2828计算思维计算思维 例例:计算理论计算理论n n算法复杂度分析算法复杂度分析问题的解法是有效率差别的问题的解法是有效率差别的问题的解法是有效率差别的问题的解法是有效率差别的有些问题是难解的有些问题是难解的有些问题是难解的有些

28、问题是难解的寻求近似解寻求近似解寻求近似解寻求近似解n n问题的可计算性问题的可计算性有些问题是不可计算的有些问题是不可计算的有些问题是不可计算的有些问题是不可计算的2929计算思维计算思维 例例:其他其他n n预取和缓存预取和缓存n n对最坏情况的预防对最坏情况的预防,保护保护,恢复恢复n n启发式推理启发式推理n n时空等不可兼得要素的权衡时空等不可兼得要素的权衡n n3030计算思维的特点计算思维的特点n n是概念化思考是概念化思考,而非编程而非编程n n是基本思考能力是基本思考能力,而非机械的套用而非机械的套用n n是人的思考是人的思考,而非计算机而非计算机n n与数学思维和工程思维相

29、结合与数学思维和工程思维相结合n n是思想是思想,而非人造物而非人造物n n人人皆有人人皆有,处处皆是处处皆是3131生活中的计算思维生活中的计算思维n n算法算法:最大公约数最大公约数n n查找方法查找方法:查黄页是顺序翻找还是借助查黄页是顺序翻找还是借助索引索引n n排序排序:整理扑克牌整理扑克牌n n排队排队:先来先处理先来先处理n n预取与缓存预取与缓存:书包存放当天上课用的书书包存放当天上课用的书n n并行处理并行处理:烧菜烧菜n n3232计算计算 + Xn n计算数学计算数学,计算几何计算几何,自动定理证明自动定理证明n n计算物理学计算物理学n n计算化学计算化学n n计算生物

30、学计算生物学,生物信息学生物信息学n n计算经济学计算经济学n n计算机艺术计算机艺术:电影特效电影特效,计算机作曲绘画计算机作曲绘画书法书法n n3333计算计算+X: 十二五十二五863计划计划n n征集重大应用软件课题征集重大应用软件课题征集重大应用软件课题征集重大应用软件课题 聚变与裂变聚变与裂变聚变与裂变聚变与裂变能源数值模拟能源数值模拟能源数值模拟能源数值模拟 真实真实真实真实飞机飞机飞机飞机外型全流场和优化设计数值模拟外型全流场和优化设计数值模拟外型全流场和优化设计数值模拟外型全流场和优化设计数值模拟 航天航天航天航天飞行器全飞行流域数值模拟飞行器全飞行流域数值模拟飞行器全飞行流

31、域数值模拟飞行器全飞行流域数值模拟 新药新药新药新药研发与蛋白质折叠数值模拟研发与蛋白质折叠数值模拟研发与蛋白质折叠数值模拟研发与蛋白质折叠数值模拟 真实感真实感真实感真实感动漫动漫动漫动漫渲染与创作渲染与创作渲染与创作渲染与创作 大型大型大型大型工程设备工程设备工程设备工程设备结构力学分析结构力学分析结构力学分析结构力学分析 复杂电磁环境复杂电磁环境复杂电磁环境复杂电磁环境数值模拟数值模拟数值模拟数值模拟 新型新型新型新型材料材料材料材料设计与性能评估设计与性能评估设计与性能评估设计与性能评估343420132013年诺贝尔化学奖年诺贝尔化学奖n n多尺度复杂化学系统模型多尺度复杂化学系统模

32、型: :在多尺度模在多尺度模型的辅助下型的辅助下, ,化学家们让计算机化学家们让计算机“做帮做帮手手”来揭示化学过程来揭示化学过程. .n n诺贝尔化学奖评选委员会诺贝尔化学奖评选委员会: :对化学家来对化学家来说说, ,计算机是同试管一样重要的工具计算机是同试管一样重要的工具, ,计计算机对真实生命的模拟已为化学领域大算机对真实生命的模拟已为化学领域大部分研究成果的取得立下了部分研究成果的取得立下了“汗马功劳汗马功劳” 3535本课程的定位本课程的定位n n学习利用计算机解决问题的思想方法学习利用计算机解决问题的思想方法学习利用计算机解决问题的思想方法学习利用计算机解决问题的思想方法, ,

33、, ,应用于应用于应用于应用于其他专业领域其他专业领域其他专业领域其他专业领域n n不是程序设计语言课程不是程序设计语言课程不是程序设计语言课程不是程序设计语言课程! ! ! !编程是计算思维的实践编程是计算思维的实践编程是计算思维的实践编程是计算思维的实践坏消息坏消息坏消息坏消息: : : :学习编程语言需要掌握非常繁琐的细节学习编程语言需要掌握非常繁琐的细节学习编程语言需要掌握非常繁琐的细节学习编程语言需要掌握非常繁琐的细节好消息好消息好消息好消息:Python:Python:Python:Python语言非常简单语言非常简单语言非常简单语言非常简单, , , ,易学易用易学易用易学易用易

34、学易用n n不是算法和数据结构课程不是算法和数据结构课程不是算法和数据结构课程不是算法和数据结构课程! ! ! !会学习一些基本的知识会学习一些基本的知识会学习一些基本的知识会学习一些基本的知识3636本课程的定位本课程的定位(续续)计算机科学计算机科学程程序序设设计计语语言言算算法法设设计计与与分分析析数数据据结结构构理理, ,化化, ,生生.经经, ,管管, ,金融金融.工程工程数学数学艺术艺术计计算算思思维维可可计计算算性性理理论论3737Python语言语言n n荷兰人荷兰人荷兰人荷兰人Guido van RossumGuido van Rossum于于于于19801980年代年代年代

35、年代发明发明发明发明 通用通用通用通用/ /跨平台跨平台跨平台跨平台/ /开源开源开源开源/ /自由自由自由自由( (免费免费免费免费) ) 简单易学简单易学简单易学简单易学, ,高度的可读性高度的可读性高度的可读性高度的可读性 支持多种编程范型支持多种编程范型支持多种编程范型支持多种编程范型n n编译编译编译编译+解释解释解释解释 源代码先编译成字节码源代码先编译成字节码源代码先编译成字节码源代码先编译成字节码, ,再解释执行再解释执行再解释执行再解释执行3838Python语言语言n n流行编程语言前流行编程语言前10名之一名之一http:/ 3939Python安装与运行安装与运行n n

36、版本版本版本版本: : : :教材和上课都采用教材和上课都采用教材和上课都采用教材和上课都采用Python 2.7Python 2.7Python 2.7Python 2.7与最新的与最新的与最新的与最新的Python 3.xPython 3.xPython 3.xPython 3.x有不兼容的地方有不兼容的地方有不兼容的地方有不兼容的地方. . . .n n安装后安装后安装后安装后, , , ,启动启动启动启动PythonPythonPythonPython解释器解释器解释器解释器命令行命令行命令行命令行GUIGUIGUIGUI4040第一个程序第一个程序:HelloWorldn n交互方式

37、交互方式交互方式交互方式 print Hello, World! print Hello, World!Hello, World!Hello, World!n n本课程的教学中常用交互方式演示新语句本课程的教学中常用交互方式演示新语句本课程的教学中常用交互方式演示新语句本课程的教学中常用交互方式演示新语句n n实际上很少用交互方式执行程序实际上很少用交互方式执行程序实际上很少用交互方式执行程序实际上很少用交互方式执行程序 多次执行同一程序需要多次输入程序多次执行同一程序需要多次输入程序多次执行同一程序需要多次输入程序多次执行同一程序需要多次输入程序 多行语句无法一次性执行多行语句无法一次性执行

38、多行语句无法一次性执行多行语句无法一次性执行4141第一个程序第一个程序:HelloWorldn n程序文件程序文件将语句保存在纯文本文件将语句保存在纯文本文件将语句保存在纯文本文件将语句保存在纯文本文件hello.pyhello.py中中中中四种执行方式四种执行方式四种执行方式四种执行方式n n在在在在IDLEIDLE中用中用中用中用Run ModuleRun Module菜单执行菜单执行菜单执行菜单执行n n双击双击双击双击hello.pyhello.py文件图标文件图标文件图标文件图标n n import hello import hello n nC:Python27 python h

39、ello.pyC:Python27 python hello.pyprint Hello, World! 4242程序构件程序构件:数据数据n n数据是被处理的信息数据是被处理的信息n n有不同类型的数据有不同类型的数据字符串数据字符串数据字符串数据字符串数据 print Hello, World! print Hello, World!数值数据数值数据数值数据数值数据 print 3.1415 print 3.14154343程序构件程序构件:变量变量n n和数学类似和数学类似:用一个名字表示可变的数用一个名字表示可变的数据据数学中多用单字母数学中多用单字母数学中多用单字母数学中多用单字母,

40、 ,程序中多用单词程序中多用单词程序中多用单词程序中多用单词/ /词组词组词组词组n n标识符标识符:Python命名命名以字母或下划线开头以字母或下划线开头以字母或下划线开头以字母或下划线开头, ,后跟后跟后跟后跟0 0个或多个字母个或多个字母个或多个字母个或多个字母, ,数字数字数字数字, ,下划线下划线下划线下划线. .区分大小写字母区分大小写字母区分大小写字母区分大小写字母. .合法合法合法合法: x : x xYzxYz x_123 x_123 _ _ _ _w3 _w3非法非法非法非法: 3q : 3q x-123x-123 first namefirst namen n良好的命名

41、风格良好的命名风格:有意义有意义,风格一致风格一致4444程序构件程序构件:表达式表达式n n表达式表达式表达式表达式: :能计算出一个值能计算出一个值能计算出一个值能计算出一个值. . 字面值字面值字面值字面值: 3.14, “hello”: 3.14, “hello” 变量变量变量变量 数据数据数据数据+运算符运算符运算符运算符( (如如如如 ) ) 2+3*4-5 2+3*4-5n n运算符运算符运算符运算符 不同类型的数据有不同运算不同类型的数据有不同运算不同类型的数据有不同运算不同类型的数据有不同运算 运算符有优先级运算符有优先级运算符有优先级运算符有优先级n n良好编程风格良好编程

42、风格良好编程风格良好编程风格: :用空格用空格用空格用空格, ,括号增加表达式的可读括号增加表达式的可读括号增加表达式的可读括号增加表达式的可读性性性性4545程序构件程序构件:语句语句n n输出语句输出语句我们用语句模板来给出正确用法我们用语句模板来给出正确用法我们用语句模板来给出正确用法我们用语句模板来给出正确用法print print print print ,.2,.n n赋值语句赋值语句 x = 3.14 x = 3.14 print x * 10 print x * 104646程序构件程序构件:函数函数n n多条语句构成一个整体多条语句构成一个整体,并命名并命名 def gree

43、t(): def greet(): print Hello! print Hello! print Goodbye! print Goodbye! greet() greet()Hello!Hello!Goodbye!Goodbye!n n习惯上为程序定义一个主函数习惯上为程序定义一个主函数main4747程序构件程序构件:注释注释n n程序中可以使用注释程序中可以使用注释,用于解释变量用用于解释变量用途途,函数功能等等信息函数功能等等信息.# Author: John# Author: John# Version: 1.0# Version: 1.0def main():def main(): . .n n注释是给人看的注释是给人看的,对程序执行没有作用对程序执行没有作用,被编译器被编译器/解释器忽略解释器忽略n n良好的编程风格良好的编程风格:多用注释多用注释! 4848End4949

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号