《python 第一章(精品).ppt》由会员分享,可在线阅读,更多相关《python 第一章(精品).ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、程序设计程序设计 思想与方法思想与方法姚莉秀E-mail: Tel:34204010教学安排p课时安排:讲课上机p作业:平时作业+大作业p考核:出勤+平时表现+作业+期末考试课程考核p去年课程成绩的组成为:n考试 50%n大作业 20%n平时 30%p闭卷考试p今年的成绩比例、是否有上机考试待定程序设计是什么?1、写一篇英文作文、写一篇英文作文2、阅读对象:计算机、阅读对象:计算机3、目的:让计算机按照你的命令完成一系列的任务、目的:让计算机按照你的命令完成一系列的任务程序设计是什么?英文作文英文作文import math#Makes the math library available.de
2、f main():print This program finds the real solutions to a quadratic print a,b,c=input(Please enter the coefficients(a,b,c):)delt=b*b-4*a*c if delt=0:discRoot=math.sqrt(delt)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print print The solutions are:,root1,root2 else:print print delt0,no root.pri
3、ntmain()raw_input()int main()float a,b,c,x1,x2,dlt;cout “input 3 parameters:”;cout a;cout b;cout c;dlt=b*b 4*a*c;if(dlt=0)x1=(-b+sqrt(dlt)/2/a;x2=(-b-sqrt(dlt)/2/a;cout x1 x2;else cout=0:else:pI hear and I forget.pI see and I remember.pI do and I understand.实践、实践、再实践!知之者不如好之者,好之者不如乐之者孔子p像计算机科学家那样思考(
4、Think like a computer scientist)p学会用计算机处理各种问题课程目标p具备“计算思维”能力:n使用计算式思维的基本工具,写一些小规模程序(computational thinking)n使用各种计算机工具,理解其他人所写程序的能力(understand code)n了解计算科学的功能和局限以及它们的代价 (understand abilities and limits)n掌握如何将科学问题适用到计算科学框架 (map problems into computation)课程目标第第1章章 计算机与程序计算机与程序计算机的发展计算机的组成信息的表示程序设计语言初识P
5、ython计算机的起源u1946ENIAC:第一台全电子数字积分计算机,由John Mauchly和John Eckert设计uENIAC的特点:u真空管u无程序存储u采用十进制ENIAC 耗资 100万美圆 重量 30吨 占地 150平方米 电子器件 1.9万只电子管 运算速度 5000次/秒 pEDVAC(Electronic Discrete Variable AutomaticCompUter)约翰冯诺依曼(John Von Neumann)第一台现代意义的通用计算机,采用二进制由五个基本部分组成:1)运算器 2)控制器 3)存储器 4)输入装置 5)输出装置冯冯诺诺依依曼曼结结构构计
6、计算算机机计算机发展阶段p第一代计算机(19461958):电子管为基本电子器件;使用机器语言和汇编语言;主要应用于国防和科学计算;运算速度每秒几千次至几万次。p第二代计算机(19581964):晶体管为主要器件;软件上出现了操作系统和算法语言;运算速度每秒几万次至几十万次。p第三代计算机(19641971):普遍采用集成电路;体积缩小;运算速度每秒几十万次至几百万次。p第四代计算机(19711975):以大规模集成电路为主要器件;运算速度每秒几百万次至上亿次。p第五代计算机(1975):超大规模集成电路,智能、网络第一代计算机第一代计算机p基于真空管技术p典型产品有1951生产的UNIVAC
7、I,由 Mauchly and Eckert 设计p第一代机的特点:n无操作系统n采用机器指令或汇编语言第二代计算机第二代计算机p采用晶体管技术p特点:n更可靠、更便宜n出现了程序设计语言n出现了简单的操作系统:批处理系统IBM 7000 series,DEC PDP-8第三代计算机第三代计算机p采用集成电路技术p特点:n价格更便宜n高集成度n出现了分时系统 IBM 360 series(1964)第四代计算机第四代计算机p采用大规模和超大规模集成电路(LSI/VLSI)技术p特点:n体积更小、价格更低、内存扩大n有完善的操作系统第五代计算机第五代计算机p人工智能计算机 进行中第第1章章 计算
8、机简介计算机简介计算机的发展计算机的组成信息的表示程序设计语言初识Python计算机的组成p硬件:计算机的躯壳p软件:计算机的灵魂计算机是一种能够按照事先存储的程序自动、高效地计算机是一种能够按照事先存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统。对数据进行输入、处理、存储和输出的系统。计算机硬件计算机硬件存储器存储器输入设备输入设备输出设备输出设备控制器控制器运算器运算器CPU存储器存储器p保存程序和数据(1)外存储设备(硬盘、光盘、U盘等)(2)内存储设备 内存用于保存正在运行的程序代码和数据最小单元是bit,一个bit存储一个二进制位。一般8个bit组成一个byte,若干个
9、byte组成一个word。在一般的机器中,内存按字节编址,内存大小也是按字节计量。关机后,内存的数据全部丢失。计算机硬件计算机硬件存储器存储器输入设备输入设备输出设备输出设备控制器控制器运算器运算器CPUCPU(Central Processing Unit)p两个部件:nALU Arithmetic Logic Unit(运算器)nControl Unit(控制器)控制器控制器p控制器控制计算机的其余部分如何完成程序的指令n指挥内存和其它部件之间的信息的传送(包括信息和指令)n指挥CPU和输入输出设备之间的控制信息的传送控制器中的信息存储控制器中的信息存储p控制器中有两个寄存器:n指令寄存器
10、(IR):保存当前正在执行的指令n程序计数器(PC):保存下一条要执行的指令地址控制器的工作:p取下一条指令:按PC指定的地址到内存中取出下一条指令,存入IR。p解码指令:将指令解码成一系列的控制信号p执行指令:将控制信号发送给相关部件,执行相应的运算计算机硬件计算机硬件存储器存储器输入设备输入设备输出设备输出设备控制器控制器运算器运算器CPU运算器的组成运算器的组成p逻辑电路:执行控制器发出的控制信号p一组存放正在运算的数据的寄存器运算器可以执行的运算运算器可以执行的运算p算术运算:加、减、乘、除p逻辑运算:比较两个数据以及完成与、或、非之类的运算p移位运算计算机硬件计算机硬件存储器存储器输
11、入设备输入设备输出设备输出设备控制器控制器运算器运算器CPU输入输出设备p输入设备将人能理解的符号转换成计算机能处理的符号。常用的输入设备有:键盘、鼠标、光笔等p输出设备将计算机的输出转换成人能理解的输出。常用的输出设备有:显示器、打印机、音响设备等计算机的组成计算机,也被称之为计算机,也被称之为“电脑电脑”,是一种能够按照事先,是一种能够按照事先存储的程序自动、高效地对数据进行输入、处理、存存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统储和输出的系统p硬件:计算机的躯壳p软件:计算机的灵魂计算机软件p软件可以分为系统软件和应用软件。p系统软件居于计算机系统中最靠硬件的部分,它将
12、计算机的用户与硬件隔离。系统软件与具体的应用无关,但其他的软件要通过系统软件才能发挥作用。常用的系统软件有操作系统、编译器、网络软件等。p应用软件是为了支持某一应用而开发的软件。如字处理软件、财务软件等。计算机的主要评价指标:运算速度:每秒钟所能执行的指令条数(ips)。微型计算机常用的表示方法是CPU主频。内存容量:是CPU可以直接访问的存储器,需要执行的程序与需要处理的数据就是存放在主存中的。内存储器容量的大小反映了计算机即时存储信息的能力。字长:一般说来,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。在其他指标相同时,字长越大计算机处理数据
13、的速度就越快。外存容量:PC机的外存容量通常是指硬盘容量。外存容量越大,可存储的信息就越多,可安装的应用软件就越丰富。显卡第第1章章 计算机简介计算机简介计算机的发展计算机的组成信息的表示程序设计语言初识Python数制p计算机内部采用二进制(0,1)来表示所有的信息。为了表达方便人们还采用八进制和十六进制。p数制n十进制:0,1,2,3,4,5,6,7,8,9n二进制:0,1n八进制:0,1,2,3,4,5,6,7n十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F数制十进制p0,1,2,3,4,5,6,7,8,9p逢10进1 9+1=10 8+3=11p表示方法 (1
14、78)10 178数制二进制p0,1p逢2进1 0+0=0 0*0=0 0+1=1 0*1=0 1+0=1 1*0=0 1+1=10 1*1=1p表示方法 (101)2 101数制八进制p0,1,2,3,4,5,6,7 p逢8进1 7+1=10p 表示方法 (365)8 0365 数制十六进制p0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F p逢16进1 F+1=10p表示方法 (F0C)16 0 xF0C 0 xf0c 数制中的权p引入:十进制数 232=2*100+3*10+2*1p所谓“权”是指同一个数字放在不同位置,它所代表的数的大小是不同的。p在十进制中,个位、十位、
15、百位,它们的权权分别是100、101、102;p在二进制中各位置的权权,分别是20,21,22,,2n (100110)2=?p在八进制中各位置的权权,分别是80,81,82,,8n (71054)8=?p在十六进制中各位置的权权,分别是160,161,162,16n (867AF1)16=?其他进制转换为十进制数制之间的转换p二进制十进制p二进制八进制p二进制十六进制二进制-十进制p方法:基数乘以权,然后相加。例:1 1 0.011=1*22+1*21+0*20+0*2-1+1*2-2+1*2-3 =4 +2 +0 +0 +0.25+0.125 =6.375 十进制二进制(整数的转换)p方法
16、:除方法:除2取余。十进制数除以取余。十进制数除以2,直至商为,直至商为0,最先得的余数为最低位。最先得的余数为最低位。十进制十进制八进制八进制?十进制十进制十六进制十六进制?十进制二进制(小数的转换)(0.525)(0.525)1010=(?)=(?)2 2方法:乘方法:乘2 2取整。用取整。用2 2连续乘要转换的十进制数及各次所得之积的小数连续乘要转换的十进制数及各次所得之积的小数部分,直到成绩的小数部分为部分,直到成绩的小数部分为0 0。0.625*2=1.25 取整数10.25*2=0.50 取整数00.5*2=1 取整数1从上往下取:(0.625)10=(0.101)2(52.625
17、)10=(110100.101)2(0.95)10=(?)2二进制-八进制 8=23从尾部每三位(从尾部每三位(bit)一个单位构成一位八进制整数位。一个单位构成一位八进制整数位。例:例:(1 000 101)2 =(105)8八进制八进制二进制二进制?(267)8=(?)2(267)8=(10 110 111)2二进制-十六进制 从尾部每四位(从尾部每四位(bit)一个单位构成一位八进制一个单位构成一位八进制整数位。整数位。p例:例:(100 0101)2 =(45)16十六进制十六进制二进制二进制?(1AF)16=(?)2(1AF)16=(0001 1010 1111)2小题目十进制 12
18、3 二进制?十进制 123 八进制?八进制 546 二进制?1111011173101100110以二进制表示数据以二进制表示数据p文本p声音p图象p整型数p实型数整型数的表示码制p讨论如何将符号位数字化。0表示正数,1表示负数。p原码p反码p补码原码p用符号位和数值表示带符号数。正数的符号位为0,负数的符号位为1。数值部分用二进制表示。p如用一个字节表示数值62:62原=0 0111110 -62原=1 0111110注意:注意:a.a.数数0 0的原码有两种形式:的原码有两种形式:+0+0原原=00000000B=00000000B-0-0原原=10000000B=10000000B b.
19、b.8 8位二进制原码的表示范围:位二进制原码的表示范围:-127-127+127+127反码p正数的反码与原码相同,负数的反码为该数的绝对值的原码取反。p如正负62的反码:62反=0 0111110 -62反=1 1000001注意:注意:a.a.数数0 0的反码有两种形式:的反码有两种形式:+0+0反反=00000000B=00000000B-0-0反反=11111111B=11111111B b.b.8 8位二进制反码的表示范围:位二进制反码的表示范围:-127-127+127+127补码p正数的补码与原码相同,负数的补码为该数的反码加1。如:62补=0 0111110 -62补=1 1
20、000010p大多数计算机系统都用补码表示整数补码在微型机中是一种重要的编码形式。补码在微型机中是一种重要的编码形式。(1)为了能让计算机执行减法为了能让计算机执行减法 采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。a-b补补=a补补+(-b)补)补(2)统一正统一正0和负和负0 与原码、反码不同,数值与原码、反码不同,数值0的补码只有一个,即的补码只有一个,即0补补=00000000B。Reference_materials原码反码和补码.doc以二进制表示数据以二进制表示数据p文本信息p声音p图象p整型数
21、p实型数问题2.3-1.3=?2.3 1=?实型数的表示p定点表示:小数点的位置固定不变(定点整数和定点小数)p浮点表示:小数点位置不固定。一个浮点数分成尾数和阶码两部分。阶码表示小数点在该数中的位数,尾数表示数的有效数值。p如十进制数N=246.135,其浮点表示可为:N=246135*10-3=2461350*10-4 =0.246135*103阶码尾数浮点数的存储p阶码一般采用补码形式的二进制表示。尾数通常采用原码形式的二进制表示。p当字长一定时,分配给阶码的位数越多,表示数的范围越大,但分配给尾数的位数将减少,从而降低数的精度。p32位机器表示实数通常为:最高位(31位)是符号位(0表
22、示正,1表示负);30位到23位这8位用于存放阶码;22位到0位这23位用于存放有效数字。符号位符号位 阶码阶码 尾数尾数小数的十进制与二进制转换十进制 二进制 0.3 0.0 1001 1001 1001 截断误差截断误差p由于尾数部分位数不够,使数值部分丢失,有时一个十进制转化成二进制数时小数点后会无限循环,因此尾数无法精确表示,这称为截断误差p实型数在计算机中不能精确表示,只是一个近似值。因此,最好不要判两个实型数相等问题2.3-1.3=0.99999999999999982.3 1=1.2999999999999998第第1章章 计算机简介计算机简介计算机的发展计算机的组成信息的表示程
23、序设计语言初识Python程序设计p算法设计:设想计算机是如何一步一步完成这个任务 p编码:用计算机认识的语言,如Python语言,描述这个完成任务的过程 p编译与调试:检验程序是否正确,达到预期的目标程序设计就是教会计算机去完成某一特定的任务,程序设计就是教会计算机去完成某一特定的任务,即设计出完成某个任务的程序即设计出完成某个任务的程序 。程序设计包括以。程序设计包括以下几个阶段:下几个阶段:程序设计语言p人与计算机进行交流的一种语言,告诉计算机该做什么p为什么不用自然语言与计算机交互?n精确的语法和语义n无二义性p有不同层次的程序设计语言64I saw the man in the pa
24、rk with the telescope.不同层次的程序设计语言不同层次的程序设计语言p机器语言p汇编语言p高级语言机器语言机器语言p是机器的母语。每种计算机都有自己的机器语言。与计算机硬件设计有关。p每个语句用一组二进制数表示p用机器语言写程序是非常困难的,读机器语言写的程序也是非常困难的p机器语言提供的功能非常简单汇编语言汇编语言p用缩写和助记符代替机器语言的0和1的比特串p和机器语言一样,不同类的机器有不同的汇编语言p汇编程序:将汇编语言写的程序翻译成机器语言的程序p解决了机器语言的可读性问题,但没有解决功能简单的问题以及可移植型问题高级语言高级语言p类似于英语的语言,适合于人理解p功
25、能比机器语言强,解决问题更加容易语言的翻译p将高级语言的程序翻译成机器语言n解释执行n编译执行编译执行main()int i,s;i=1;s=0;C compiler0110001011101001Source programObject program将程序全部翻译成机器语言的程序,然后再执行。解释执行解释执行源程序源程序 解释系统解释系统(逐句解释、执行)(逐句解释、执行)原始数据原始数据结果结果高级语言的特点高级语言的特点p具备了一定的机器独立性,使用户可以专注于解决问题的方法。但某些方面还是受到机器的限制p为了解决移植性问题,ANSI制订了一系列的标准高级语言p本课程采用Python语
26、言p高级程序设计语言有很多种,据说2008年网上被引用最多的10个语言是(按字母顺序):C,C+,C#,Java,JavaScript,Perl,PHP,Python,Ruby,SQL73第第1章章 计算机简介计算机简介计算机的发展计算机的组成信息的表示程序设计语言初识PythonPythonpfree,open sourcep比较新,比较流行 released in 1991 by Guido van Rossump高级语言、广泛、解释型p语法结构清晰,工具库丰富p需要强调的是:n本课程不是讲Python,只是工具n关键是讲“计算思维”启动 PythonPython 2.7.1(r271:8
27、6832,Nov 27 2010,18:30:46)MSC v.1500 32 bit(Intel)on win32Type copyright,credits or license()for more information.提示符、语句提示符、语句:提示符,提示你可以输入命令p print Hello,world Hello,world print 2+35 print 2+3=,2+32+3=5 函数pUsually we want to execute several statements together that solve a common problem.One way to
28、do this is to use a function.p def hello():print Hello print Computers are Fun 函数的定义 def hello():print Hello print Computers are Fun p第一句话定义了一个函数,函数名hellop后面的语句成为函数体p最后空行(hit enter twice)标识hello函数结束函数的执行 hello()HelloComputers are Fun 注意:(1)()不能省略,否则当成变量 (2)()内能带参数带参数的函数p函数名()def greet(person):print
29、Hello,personprint How are you?函数参数的执行 greet(Terry)Hello TerryHow are you?greet(Mary)Hello MaryHow are you?通过参数传递,可以输出不同的内容。带参数的函数p函数定义 p函数的调用defarea(x,y):printx*yarea(3,4)12area(2,4)8模块p如果一段程序需要反复执行,可以把它以文件形式保存在外存储器中。p保存在外存储器中的程序称为一个模块,也称为脚本文件或源文件。pPYTHON的源文件的后缀名为pyp程序模拟物理现象:chaos程序Module File(源文件/源
30、程序)程序注释程序注释函函数数调用函数调用函数注:注:python文件以文件以 .py 为后缀。为后缀。程序注释p以#开头p注释是写给人看的,而不是写给计算机的。p Python程序不执行注释p给程序添加注释是良好的程序设计风格 函数头def main():p一般一个源程序都有一个名为main模块输出语句print This program illustrates a chaotic functionp输出语句输入语句x=input(Enteranumberbetween0and1:)x:变量(variable)Avariableisusedtoassignanametoavaluesotha
31、twecanrefertoitlater.屏幕提示Enteranumberbetween0and1:键盘输入的值被存放到x中 循环语句 for i in range(10):x=3.9*x*(1-x)print x循环体被执行10遍x=3.9*x*(1-x)print xx=3.9*x*(1-x)print xx=3.9*x*(1-x)print x x=3.9*x*(1-x)print x x=3.9*x*(1-x)print x x=3.9*x*(1-x)print x x=3.9*x*(1-x)print x x=3.9*x*(1-x)print x x=3.9*x*(1-x)print
32、 x x=3.9*x*(1-x)print x循环体循环体 x=3.9*x*(1-x)This is called an assignment statementThe part on the right-hand side(RHS)of the“=“is a mathematical expression.*is used to indicate multiplicationOnce the value on the RHS is computed,it is stored back into(assigned)into x程序的执行(1)找到相应的目录下的文件名,双击执行(2)打开pyth
33、on编译器,通过file菜单打开chaos文件,然后通过Run菜单运行。程序的执行(3)导入的方式 import chaosThis program illustrates a chaotic functionEnter a number between 0 and 1:.50.9750.09506250.3354999222660.8694649252590.4426331091130.9621652553370.1419727793620.47508438620.9725789275370.104009713267chaos.py必须在必须在python程序的同程序的同一个目录下一个目录下添加python的路径pimport时,系统必须知道到哪里去找那个文件p这是通过PYTHONPATH指定的p安装PYTHON时,系统会指定缺省path。缺省的路径是:Python26Libsite-packagesp添加搜索路径n右键单击我的电脑,然后单击属性。n单击高级选项卡。n单击环境变量。n单击新建添加一个新变量名和值。本章小结p本章目标本章目标p计算机与程序计算机与程序p编程语言编程语言p初识初识Python本章作业本章作业p安装软件安装软件p熟悉软件熟悉软件ptry运行运行chapter01、02例子例子p教材习题:教材习题:n1.9 Exercises(p11)