资源简介 (共29张PPT)第二章 算法与问题解决引入一个农夫要将一匹狼、一只羊和一筐菜运到河对岸。但他的船太小,一次只能带一样。当他不在时,狼要吃羊、羊会吃菜。怎样乘船才能安全地把这些东西运过河?分析问题食物链解决问题第一次:先带羊过去;第二次:把狼带过去,返程时再把羊带回来;第三次:把蔬菜带过去;第四次:最后把羊带过去。寻找解决问题方法,可以称之为算法解决问题第一次:先带羊过去;第二次:把狼带过去,返程时再把羊带回来;第三次:把蔬菜带过去;第四次:最后把羊带过去。寻找解决问题方法,可以称之为算法算法的概念算法的特征问题:1、判断抛物线y=5x2 +4x+6与X轴是否有交点。2、设计一个算法,要求输入X的一个值后,输出相应的绝对值 。算法:1、计算 =42-4*5*6;2、如果 >0,执行步骤3,否则执行步骤4;3、输出有交点,结束;4、输出无交点,结束。分析项目 抛物线 绝对值执行步骤个数每一步是否明确可执行是否有输入是否有输出4是否是4是是是算法的特征有穷性:计算步骤是有限的确定性:每一个步骤必须有确切的定义数据输入:必须有0个或多个数据输入数据输出:必须有1个或多个数据输出可行性:每个步骤都可以在有限时间内完成死循环?随便进行?大致就行?0个输入是算法本身给出了初始条件无功而返?可以得出结果。算法的要素如何确定工作多久?如何记录进水量的 如何记录工作时间?时间达标了会干嘛?不达标会干嘛?数据运算控制转移算法的描述我们刚刚是如何描述一个算法的?文字描述→自然语言流程图算法的描述流程图伪代码算法的描述算法的描述用计算机程序设计语音描述算法基本结构—顺序结构算法描述的方法 优势 不足自然语言表示法 用人们日常所用的语言,比较容易掌握。 当算法中含有多分支或循环操作较多时很难清晰地表示出来,由于自然语言的歧义性,容易导致算法执行的不确定性。流程图表示法 用程序框图来描述,流程描述清晰简洁。 所占篇幅较大,由于允许使用流程线,过于灵活,不受约束。伪代码表示法 用介于自然语言和计算机语言之间的文字和符号来描述,书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。 由于编程语言的种类繁多,伪代码的语句不容易规范,有时会产生误解。计算机程序设计语言 用计算机专门的语言来描述,精确性高,计算机可以直接运行。可移植,不同设备对于相同的代码都能运行 计算机语言的学习成本高3.2 Python语言程序设计3.2.1 Python语言基础编程环境图3.2.1 IDLE的操作界面解释器操作界面编辑器操作界面编程环境解释器操作界面编辑器操作界面敲一次回车运行一行代码编辑完成后,运行所有代码拓展链接集成开发环境(IDE) 是提供程序开发环境的应用程序,一般包括代码编辑器、调试器和图形用户界面工具。目前,用于编写Python程序的IDE较多,如IDLE、Spyder、Wing、PyCharm等。如图3. 2. 2是Spyder的操作界面。图3.2.2 spyder的操作界面编辑器解释器数据类型与表达式表3.2.1 Python常见数据类型42.0是什么类型呢?“42.0”是什么类型呢?python 是弱类型语言,相对于强类型语言,它不需要声明变量的类型。甚至粗暴到连声明关键字都省略了。数据按照其本身特征可以分为若干类型,常见的Python基本数据类型如表所示。数据类型与表达式数据信息分析运算010203Python算术运算符Python关系运算符Python逻辑运算符算术运算符算术运算是运用算术运算符进行数的加、减、乘、除等数学运算。优先程度最高级别为1,级别数字越大,优先级越低。a.2**10b.3*4–5*6c.123-123//100*100d. "Who " + "Am " + "I "字符串运算符:”*” 用于重复字符串关系运算符关系运算的结果是一个布尔值,若两个数据之间指定的关系成立,则结果为真(True),否则为假(False)。关系运算符的优先级全部相同,但低于算术运算符,优先级为4关系运算符表3.2.3 Python 关系运算符逻辑运算法表3.2.4 Python 逻辑运算符逻辑运算符经常用于描述复杂情况的判断。逻辑运算符的优先级各不相同:not 优先级为5,and 优先级为6,or优先级为7。运算符的优先级优先程度最高级别为1,级别数字越大,优先级越低。和数学一样,括号的优先级最高,高于任何运算符,有括号先算括号变量和赋值语句运算符 描述 实例= 基本赋值运算符 c=a+b将a+b的运算结果赋值给c+= 加法赋值运算符 c+=a等效于c=c+a = 减法赋值运算符 c =a等效于c=c a*= 乘法赋值运算符 c*=a等效于c=c*a/= 除法赋值运算符 c/=a等效于c=c/a%= 取模赋值运算符 c%=a等效于c=c%a**= 幂赋值运算符 c**=a等效于c=c**a//= 取整除赋值运算符 c//=a等效于c=c//aa = 160 ----变量为整型b = “test” ----变量为字符型x = y = z =1 ----多重赋值x, y, z, = 1, 2, “string” ----多元赋值abx = y = z =x, y, z,变量在首次赋值时产生,没赋值即不存在a35a5变量就是存放值的一段内存空间a = 5a = 31.变量名通常由字母,数字,下划线(_)组成;2.数字不能作为变量名开头;3.不能以python中的关键字命名(False、and、if); 3.help('keywords')查看4.建议变量名要有意义;5.不建议用汉字和拼音去命名;6.变量名要区分大小写(A和a是两个不同的变量);7.建议使用驼峰型(GuessAge或guessAge)和下3. 3.划线(guess_ age)来命名;8.常量通常使用全部大写来命名.课堂小练在Python Shell中输入:2+3*7,按回车键后,输出的结果是 ( )A.35 B.33C.23 D.2+3*7AAA选项错误BBB选项错误CCC选项正确,本题考查算术运算符,即数学中的运算DDD选项错误2. 已知 x="20",y="21",z=x+y,则 print (z)的结果是 ( )A.41 B.2021C. ''41'' D. ''20"''21"AAA选项错误BBB选项正确,本题考查算术运算符在字符串中的运算CCC选项错误DDD选项错误课堂小练3. 下列Python表达式能正确表示数学表达式的是A.(-b+b**2-4*a*c**0.5)/(2*a)B.(-b+(b**2-4*a*c)**0.5)/(2*a)C.-b+(b**2-4*a*c)**0.5/(2*a)D.-b+(b**2-4*a*c**0.5)/(2*a)AAA错误,其表示BBB正确,本题考查算术运算符CCC错误,其表示DDD错误,其表示4. 下列表达式的值为False的是 ( )A.0 or True B.True or FalseC.2<1 and 2<3 D. 10%3==6//5 and 6/2==3AAA错误,or运算符只需要一侧有True就为TrueBBB错误,or运算符只需要一侧有True就为TrueCCC选项正确,and运算符有一侧为False则为FalseDDD选项错误,and运算符两侧都True则为True感谢一路有你 展开更多...... 收起↑ 资源预览