(本科)第5章 循环控制结构ppt课件.pptx
《(本科)第5章 循环控制结构ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)第5章 循环控制结构ppt课件.pptx(109页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:(本科)第5章 循环控制结构ppt课件Chap5 Program Control StructureDepartment of Computer Science and TechnologyDepartment of University Basic Computer TeachingNanjing UniversityNanjing University程序控制结构3顺序选择循环sequence structureselection structurerepetition structureNanjing University顺序结构4Nanjing University顺序结构
2、5AB# Filename: seq.pymystring = Hello, World! print(mystring)File一个入口一个出口Nanjing University5.1.1 赋值语句6Nanjing University赋值语句7普通赋值r = 2增量赋值m /= 5链式赋值b = a = a + 1多重赋值p , r = 3 , 5Nanjing University多重赋值 多重赋值的基本形式8变量1, 变量2, , 变量n = 表达式1, 表达式2, , 表达式n name, age = Niuyun, 18 nameNiuyun age18SourceNanjing
3、 University多重赋值的本质9 name, age = Niuyun, 18 temp = Niuyun, 18 temp(Niuyun, 18) name, age = temp nameNiuyun age18Source元组打包Tuple packing序列解包Sequence unpackingNanjing University多重赋值10 x = 3 y = 5 x, y = y, x x5 y3Source语法糖syntactic sugarNanjing University5.1.2 基本输入和输出语句11Nanjing University输入/输出12输入输出in
4、put()print()Nanjing University输入函数input()13输入语句的一般形式:x = input(输入提示)返回值类型是strNanjing University输入input()函数14 x = input(Enter an integer between 0 and 10: )Enter an integer between 0 and 10: 3 x3 x = int(input(Enter an integer between 0 and 10: )Enter an integer between 0 and 10: 3 x3 y = float(input
5、(Enter the price of the apples: )Enter the price of the apples: 4.5 y4.5Source返回值类型:strint()函数float()函数Nanjing University输入input()函数15 z = eval(input(Enter a number: )Enter a number: 3 z3 z = eval(input(Enter the price of every apple: )Enter the price of every apple: 3.5 z3.5 z = eval(input(Enter th
6、e price of the apples: )Enter the price of the apples: 6 + 3 * 4 z18Source返回值类型:streval()函数Nanjing University输入input()函数16 a, b, c = eval(input(Please enter the numbers(a,b,c): )Please enter the numbers(a,b,c): 12,34,567 a12 b34 c567Source返回值类型:streval()函数Nanjing University输入input()函数17 a, b, c = ev
7、al(input(Please enter the numbers(a,b,c): )Please enter the numbers(a,b,c): 12,34,567 nums(12, 34, 567) lst = eval(input(Please enter a list: )Please enter a list: 12, 34, 567 lst12, 34, 567Source返回值类型:streval()函数Nanjing University输出函数print()18输出语句的一般形式:print(对象1, 对象2, , 对象n, sep = , end = n )输出到标准输
8、出设备 sep表示输出对象之间的分隔符,默认为空格 参数end的默认值为n,表示print()函数输出完成后自动换行Nanjing University输出函数print()19 print(1, 2, 3)1 2 3 print(1, 2, 3, sep = ,)1,2,3 a, b = 454, 213 print(a, *, b, =, sep = , end = ); print(a*b)454*213=96702Source改变sep的值Nanjing University输出函数print()20格式化输出形式: print(格式字符串 % (对象1, 对象2, , 对象n) pr
9、int(格式化模板.format(对象1, 对象2, , 对象n))Nanjing University输出函数print()格式化模板21 0 is taller than 1.format(Xiaoma, Xiaowang) Xiaoma is taller than Xiaowang. age, height = 21, 1.758 print(Age:0: print(:,.format(2*100)1,267,650,600,228,229,401,496,703,205,376Source 参数参数的的位置位置: : 对齐说明符对齐说明符 符号说明符符号说明符 最小宽度说明符最小宽
10、度说明符 . .精度说明符精度说明符 类型说明符类型说明符 Nanjing University符号符号描述描述b b二进制,以2为基数输出数字o o八进制,以8为基数输出数字x x十六进制,以16为基数输出数字,9以上的数字用小写字母(类型符为X时用大写字母)表示c c字符,将整数转换成对应的Unicode字符输出d d十进制整数,以10为基数输出数字f f定点数,以定点数输出数字e e指数记法,以科学计数法输出数字,用e(类型符是E时用大写E)表示幂+m.nf+m.nf 输出带符号(若格式说明符中显式使用了符号“+”,则输出大于或等于0的数时带“+”号)的数,保留n位小数,整个输出占m列(
11、若实际宽度超过m则突破m的限制)05d05d右对齐,左边的0表示用0填充左边,右边的数字5表示输出项宽度为5左对齐,默认用空格填充右边,= y: t = xelse: t = yFile检查条件“x = y”是否满足,若满足则取x否则取y赋给变量tNanjing Universityelse 语句三元运算符33条件表达式(也称三元运算符)的常见形式如下所述:x if C else y# Filename: elsepro-2.pyx = eval(input(Please enter the first number: )y = eval(input(Please enter the seco
12、nd number: )if x = y: t = xelse: t = yFilet = x if x = y else yNanjing University5.2.3 elif子句34Nanjing Universityelif 语句35if 表达式表达式1: 语句序列语句序列1elif 表达式表达式2: 语句序列语句序列2elif 表达式表达式N-1: 语句序列语句序列N-1else: 语句序列语句序列N语 法 表达式2为True时执行的代码块语句序列2 表达式N为True时执行的代码块语句序列N-1 语句序列N是以上所有条件都不满足时执行的代码块语句序列NNanjing Univer
13、sityelif 语句36多分支结构流程图语句序列2True表达式1语句序列1TrueFalse表达式2False表达式n-1TrueFalseFalse语句序列n-1语句序列nNanjing University例5.3 猜数字游戏程序随机产生一个0300之间的整数,玩家竞猜,若猜中则提示Bingo,若猜大了提示Too large,否则提示Too small# Filename: 5-3-1.pyfrom random import randintx = randint(0, 300)num = int(input(Please input a number between 0300: )i
14、f num = x : print(Bingo!)elif num x: print(Too large, please try again.)else: print(Too small, please try again.)File37Nanjing University5.2.4 嵌套的if语句38Nanjing University嵌套的if语句391 : if 表达式表达式1:2 : if 表达式表达式2:3 : 语句语句序列序列14 : else:5 : 语句语句序列序列26 : else:7 : if 表达式表达式3:8 : 语句序列语句序列39 : else:10: 语句语句序列
15、序列4语 法Nanjing University例5.3 猜数字游戏改写代码# Filename: 5-3-1.pyfrom random import randintx = randint(0, 300)num = int(input(Please input a number between 0300: )if num = x : print(Bingo!)elif num x: print(Too large, please try again.)else: print(Too small, please try again.)File40# Filename: 5-3-2.pyfrom
16、 random import randintx = randint(0, 300)num = int(input(Please input a number between 0300: )if num = x : print(Bingo!)else: if num x: print(Too large, please try again.) else: print(Too small, please try again.)FileNanjing University例5.4 符号函数(sign function)41 请分别用if-elif-else结构和嵌套的if结构实现符号函数(sign
17、function),符号函数的定义:Nanjing University例5.4 符号函数42# prog5-4-1.pyx = eval(input(Enter a number: )if x 0: sgn = -1elif x = 0: sgn = 0else: sgn = 1print (sgn = :.0f.format(sgn)File# prog5-4-2.pyx = eval(input(Enter a number: )if x != 0: if x 0: sgn = -1 else: sgn = 1else: sgn = 0print (sgn = :.0f.format(s
18、gn)FileNanjing University循环结构43Nanjing University循环 循环结构是满足一个指定的条件,每次使用不同的数据对算法中的计算或处理步骤完全相同的部分重复计算若干次的算法结构,也称为重复结构44010302Nanjing University5.3.1 while语句45Nanjing Universitywhile 循环46While 表达式表达式: 语句语句序列(循环体)序列(循环体)语法 当表达式值为True时执行语句序列代码块 继续判断表达式的值是否为True, 若是则继续执行循环体, 如此周而复始,直到表达式的值为False或发生异常时停止循环
19、的执行 若循环体什么都不执行,用pass语句表示表达式Nanjing Universitywhile 语句47表达式True语句序列Falsewhile语句流程图有几点要注意:while语句是先判断再执行,所以循环体有可能一次也不执行;循环体中需要包含能改变循环变量值的语句,否则表达式的结果始终是True的话会造成死循环;要注意语句序列的对齐,while语句只执行其后的一条或一组同一层次的语句。Nanjing University例5.5 计算1+2+100的值# prog5-5.pys = 0i = 1while i = 100: s += i i += 1print(1+2+100 = :
20、d.format(s)Source481+2+100 = 5050Input and Output经典累加问题Nanjing University例5.6 求两个正整数的最大公约数和最小公倍数。49# prog5-6.py# -*- coding: gb2312 -*-x = eval(input(Enter the first number: )y = eval(input(Enter the second number: )z = x * yif x 1e-8: s += x k += 2 sign *= -1 x = sign / ks *= 4print(pi = :.15f.form
21、at(s)Sourcepi = 3.141592633590251Input and Outputmath模块中pi值等于Nanjing University5.3.2 for语句51Nanjing Universityfor 循环52for 变量变量 in 可迭代对象可迭代对象:语句语句序列序列语 法 遍历一个数据集内的成员 在列表解析中使用 生成器表达式中使用可以明确循环的次数 序列 迭代器 其他可迭代对象(字典的键、文件的行)可迭代对象Nanjing Universityfor 循环53取可迭代对象中的元素可以取到元素语句序列无元素可取for语句流程图可迭代对象指可以按次序迭代(循环)的
22、对象,包括序列、迭代器(iterator)以及其他可以迭代的对象如字典的键和文件的行等。执行时变量取可迭代对象中的一个值,执行语句序列,再取下一个值,执行语句序列Nanjing Universityfor 循环54 aList = 1, 2, 3 for item in aList: print(item)123 for item in enumerate(a, b, c): print(item)(0, a)(1, b)(2, c)SourceNanjing University猜数字游戏55程序随机产生一个0300间的整数, 玩家竞猜,允许猜多次,系统给出 “猜中”、“太大了”或太 小了”
23、的提示。# Filename: guessnum2.pyfrom random import randintx = randint(0, 300)for count in range(5): digit = int(input(Please input a number between 0300: ) if digit = x : print(Bingo!) elif digit x: print(Too large, please try again.) else: print(Too small, please try again.)FileNanjing University可迭代对象
24、和 迭代器可迭代对象 能用for循环遍历的对象都可被称为可迭代对象 字符串、列表等迭代器 属于可迭代对象,for语句会通过_iter_()方法获得对象的迭代器,并通过_next_()获取下一个元素56Nanjing University可迭代对象 和 迭代器57 aList = 1, 2, 3 for item in aList: print(item)123Source i = iter(1, 2, 3) next(i)1 next(i) 2 next(i)3 next(i) Traceback (most recent call last): File , line 1, in i._ne
25、xt_()StopIterationSourceNanjing University可迭代对象 和 迭代器58 from collections import Iterable, Iterator # 导入Iterable和Iterator类 isinstance(aList, Iterable)True isinstance(aList, Iterator)False isinstance(iter(aList), Iterator)True isinstance(enumerate(abc), Iterator)TrueSourceNanjing University可迭代对象 和 迭代器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科第5章 循环控制结构ppt课件 本科 循环 控制 结构 ppt 课件
限制150内