资源简介 (共10张PPT)做出判断的分支2.2编制程序实现对垃圾类型的分类判断功能简介如果 输入“猪可以吃” 显示 “这是厨余垃圾(湿垃圾)”如果 输入“猪吃了会死” 显示 “这是有害垃圾如果 输入“猪不吃” 显示 “这是其他垃圾(干垃圾)”如果 输入“卖了可以买猪” 显示 “这是可回收垃圾”其他 显示 “输入错误,请重新输入”算法设计Python编程循环结构 while语句高中信息技术 必修1 数据与计算一、新授:(一) While语句(条件循环)1、while语句即条件循环 ,一般用于循环次数未知的情况,只有当循环条件成立时,才执行循环体。(注意for循环是循环次数已知,是计数循环)2、 while语句的基本格式while 关系表达式:语句或语句组while循环在执行时,首先对while后面的关系表达式进行计算,如果关系表达式的值为真(True),则继续执行while循环所属的语句或语句组。反之,关系表达式的值为假(False),则不执行while循环所属语句或语句组。3、特殊的关系表达式用数字0表示假,用非零数字表示真。如果循环以“while 2:”开头,那么,关系表达式的值为真,在不加干预的情况下,程序就会“不知疲倦”一直执行循环体。如果想停止程序,按快捷键Ctrl+C即可。(二) 、随机数random( ) 函数random( ) 方法返回随机生成的一个实数,它在[0,1)范围内。(包含0不包含1)random(a,b) 方法返回随机生成的一个实数,它在[a,b)范围内。以下是 random() 方法的语法:import random #导入random 模块random.random( ) #调用random 方法注意:random( )是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。(《百日冲刺》第62页第6题)实例:生成一个随机数(学生运行此程序,体验产生随机数的效果)print ("random() : ", random.random())几个常用的随机数模块:random.randint(a,b) # 产生[a,b] 的一个整数型随机数(a到b的闭区间)random.random( ) # 产生 0 到 1 之间的随机浮点数random.uniform(a,b) # 产生 a 到b之间的随机浮点数,区间可以不是整数(三) 、循环的提前结束使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue语句。语句 作用break 跳出当前循环体。如果有两层或两层以上的循环,在最内层使用break语句,则跳出的是最内层的循环,外层的循环不受影响continue 结束当次循环,进行下一次循环学生活动:考试真题 提问学生 先做后讲学生先自己完成各题任务,然后根据学生完成情况,针对学生不会的部分,教师进行详细讲解。1、2005年10月9日,国家测绘局正式宣布珠穆朗玛峰的高度是8844.43米,并停用之前的数据。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变为0.16毫米。再对折一次,厚度变为0.32毫米。每对折一次,其厚度均变为对折前的两倍。假设这张纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度 (让大家做个大工程)height = 8844430 #珠穆朗玛峰高884430毫米h = 0.08cnt = 0 # 记录对折次数while h <= ①:cnt = cnt + ② #对折次数加1h *= ③print(cnt)input("运行完毕,请按回车键退出...")2、王明同学为希望工程捐款,第一个月捐款1元,第二个月捐款2元,以后每个月都在前一个月的基础上增加1元,至少需要多少个月捐款总额达1000元?(假如你是希望工程的负责人,帮王明算一下)sum = ① # 给捐款总额变量赋初值(单位:元)m = 1 # 给捐款需要的月份赋初值while ②:sum += ③ # 计算每月新的捐款总额m += 1 # 捐款月份加1print("至少需要", m, "个月完成捐款任务,共捐款", sum, "元") # 输出结果3、假如你购买了5万元的一年期理财产品实际收益率为1.25%,由于产品一直在持续运作,投资者不按时赎回视为自动再投资。在收益率不变的情况下,至少多少年存款总额达到6万元 (你的身份是投资人)rate = 0.0125 # 给利率变量赋初值money = 50000 # 给存款总额变量赋初值(单位:元)year = 0 # 给存款需要的年头赋初值while ①:money = ② *(1+rate) # 计算每年新的存款总额③ # 存款年数加1print("存款总额为6万元至少需要", year, "年") # 输出结果4、“谷角猜想”:日本数学家谷角静夫在研究自然数时发现了一个奇怪现象,对于任意一个自然数X若X为偶数,则将其除以2,若X为奇数,则将其乘以3,然后再加1。如此经过有限次运算后,(X>1),总可以得到自然数1。要求编写程序,使得通过键盘输入一个自然数X,把X经过有限次运算后,最终变成自然数1,统计需要变换的次数。(让你通过计算机验证谷角猜想,《百日冲刺》第50页第6题)n = int(input("n=")) # 输入正整数ncnt = 0 # 记录变换次数while n > ①:cnt = cnt+1 # 变换次数cnt累加if n % 2 == 0:n //= ②else:n = 3*n+1print(③) # 输出变换次数5、实现功能:随机产生一个0-99内的整数,在给定的5次范围进行猜数,如果猜的数大了,提示“大了,还剩几次机会”,如果猜的数小了,提示“小了,还剩几次机会”。如果猜对了,提示“恭喜猜中”结束猜数游戏。无论猜对与否最后都输出要猜的数字。(在赌场使用本计算机程序的原理,目的是让95%以上的赌客必输。方法是……)使用for循环的程序代码(学生运行时用二分法猜数,效率高)import ① #导入随机模块m = random.randint(1, 100) # 产生一个1~100的正整数for i in range(5):t = int(input("请输入你猜的数:"))if t > m:print("数偏大")② t < m:print("数偏小")else:print("猜中了!")③ # 退出循环if t != m:print("这个数是:", m)print("5次没有猜中,很遗憾,游戏结束")6、题目与上题相同。实现功能:随机产生一个0-99内的整数,在给定的5次范围进行猜数,如果猜的数大了,提示“大了,还剩几次机会”,如果猜的数小了,提示“小了,还剩几次机会”。如果猜对了,提示“恭喜猜中”结束猜数游戏。无论猜对与否最后都输出要猜的数字。使用while循环的程序代码(注意与for循环代码的异同)import randomnum = ①.randint(1, 100)i = 1while i <= 5:ans = int(input("请猜数:"))if ②:print("大了,还剩", 5-i, "次机会")elif ans < num:print("小了,还剩", 5-i, "次机会")else:print("恭喜猜中!!!")breaki = i + ③print("正确答案是:", num)第5题和第6题,题目相同,代码对比如下:使用while循环的程序代码import randomnum = ①.randint(1, 100)i = 1while i <= 5:ans = int(input("请猜数:"))if ②:print("大了,还剩", 5-i, "次机会")elif ans < num:print("小了,还剩", 5-i, "次机会")else:print("恭喜猜中!!!")breaki = i + ③print("正确答案是:", num)使用for循环的程序代码import ①m = random.randint(1, 100)for i in range(5):t = int(input("请输入你猜的数:"))if t > m:print("数偏大")② t < m:print("数偏小")else:print("猜中了!")③if t != m:print("这个数是:", m)print("5次没有猜中,很遗憾,游戏结束")7、小明和朋友一起玩掷骰(tóu)子(俗称“色(shǎi)子”)的游戏,谁先投到3谁就赢了。请编一个程序让计算机统计小明用几次才掷到了数字3。 (小时候玩的赌输赢的小游戏)import randomres = 0 #骰子的数字i = ① #投掷的次数while ②:res=random.randint(1,6)print(res)③ #投掷的次数加1print("一共掷了",i,"次")8、从键盘输入一个整数,统计这个数中各位数,数位上数字“3”出现的次数。例如:5303,数字“3”出现了2次。打开文件“131\c2-11.py”请在①②③处补全代码,输出统计结果。n = abs(int(input())) # 输入一个整数s = ① # s表示“3”的个数while n > 0:a = n ② 10 # 取个位数if a == 3:③n = n//10print(s) 展开更多...... 收起↑ 资源预览