Python程序设计—从基础到开发•夏敏捷杨关主编•清华大学出版社第3章Python控制语句•主讲夏敏捷•计算机学院副教授3.1选择结构•三种基本程序结构中的选择结构,可用if语句、if…else语句和if…elif…else语句实现。if语句的语法形式如下所示:if表达式:语句1#比较输入的整数是否大于6a=input(请输入一个整数:)#取得一个字符串a=int(a)#将字符串转换为整数ifa6:print(a,大于6)if…else语句的语法形式如下所示:if表达式:语句1else:语句23.1.2if…else语句•a=input(请输入一个整数:)#取得一个字符串•a=int(a)#将字符串转换为整数•ifa6:•print(a,大于6)•else•print(a,小于等于6)if表达式1:语句1elif表达式2:语句2……elif表达式n:语句nelse:语句n+13.1.3if…elif…else语句3.2.1while语句while判断条件:执行语句3.2循环结构count=0whilecount9:print('Thecountis:',count)count=count+1print(Goodbye!)3.2.2for语句for语句可以遍历任何序列的项目,如一个列表、元祖或者一个字符串。1.for循环的语法for循环的语法格式如下:for循环索引值in序列循环体for循环把字符串中字符遍历出来。forletterin'Python':#第一个实例print('当前字母:',letter)for循环把列表中元素遍历出来。fruits=['banana','apple','mango']forfruitinfruits:#第二个实例print('元素:',fruit)print(Goodbye!)3.2.2for语句2.通过索引循环对于一个列表,另外一种执行循环的遍历方式是通过索引(元素下标)。实例如下:fruits=['banana','apple','mango']foriinrange(len(fruits)):print('当前水果:',fruits[i])print(Goodbye!)3.2.3continue和break语句break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。3.2.4循环嵌套•Python语言允许在一个循环体里面嵌入另一个循环。如在while循环中可以嵌入for循环;也可以在for循环中嵌入while循环。嵌套层次一般不超过3层,以保证可读性。•【例3-6】打印九九乘法表。•【例3-7】使用嵌套循环输出2~100之间的素数。3.3常用算法及应用实例•累加与累乘【例3-8】求自然对数e的近似值,近似公式为:e=1+1/1!+1/2!+1/3!+...+1/n!•求最大数和最小数求数据中的最大数和最小数的算法是类似的,可采用“打擂”算法。【例3-9】求区间[100,200]内10个随机整数中的最大数。•枚举法枚举法又称为穷举法,此算法将所有可能出现的情况一一进行测试,如计算“百钱买百鸡”问题3.3常用算法及应用实例•递推与迭代•1.递推•利用递推算法或迭代算法,可以将一个复杂的问题转换为一个简单过程的重复执行。这两种算法的共同特点是,通过前一项的计算结果推出后一项。不同的是,递推算法不存在变量的自我更迭,而迭代算法则在每次循环中用变量的新值取代其原值。•【例3-12】输出斐波那契(Fibonacci)数列的前20项即1,1,2,3,5,8,…。递推与迭代•2.迭代•迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。•【例3-14】迭代法求a的平方根。求平方根的公式为:xn+1=(xn+a/xn)/2,求出的平方根精度是前后项差绝对值小于10-5。游戏初步——猜单词游戏•【案例】游戏初步——猜单词游戏。计算机随机产生一个单词,打乱字母顺序,供玩家去猜。欢迎参加猜单词游戏把字母组合成一个正确的单词.乱序后单词:yaes请你猜:easy真棒,你猜对了!是否继续(Y/N):y乱序后单词:diufctlfi请你猜:difficutl对不起不正确.继续猜:difficult真棒,你猜对了!是否继续(Y/N):n