教科版(2019)高中信息技术Python编程循环结构while语句 课件(10PPT)

资源下载
  1. 二一教育资源

教科版(2019)高中信息技术Python编程循环结构while语句 课件(10PPT)

资源简介

(共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.08
cnt = 0 # 记录对折次数
while h <= ①:
cnt = cnt + ② #对折次数加1
h *= ③
print(cnt)
input("运行完毕,请按回车键退出...")
2、王明同学为希望工程捐款,第一个月捐款1元,第二个月捐款2元,以后每个月都在前一个月的基础上增加1元,至少需要多少个月捐款总额达1000元?(假如你是希望工程的负责人,帮王明算一下)
sum = ① # 给捐款总额变量赋初值(单位:元)
m = 1 # 给捐款需要的月份赋初值
while ②:
sum += ③ # 计算每月新的捐款总额
m += 1 # 捐款月份加1
print("至少需要", m, "个月完成捐款任务,共捐款", sum, "元") # 输出结果
3、假如你购买了5万元的一年期理财产品实际收益率为1.25%,由于产品一直在持续运作,投资者不按时赎回视为自动再投资。在收益率不变的情况下,至少多少年存款总额达到6万元 (你的身份是投资人)
rate = 0.0125 # 给利率变量赋初值
money = 50000 # 给存款总额变量赋初值(单位:元)
year = 0 # 给存款需要的年头赋初值
while ①:
money = ② *(1+rate) # 计算每年新的存款总额
③ # 存款年数加1
print("存款总额为6万元至少需要", year, "年") # 输出结果
4、“谷角猜想”:日本数学家谷角静夫在研究自然数时发现了一个奇怪现象,对于任意一个自然数X若X为偶数,则将其除以2,若X为奇数,则将其乘以3,然后再加1。如此经过有限次运算后,(X>1),总可以得到自然数1。要求编写程序,使得通过键盘输入一个自然数X,把X经过有限次运算后,最终变成自然数1,统计需要变换的次数。(让你通过计算机验证谷角猜想,《百日冲刺》第50页第6题)
n = int(input("n=")) # 输入正整数n
cnt = 0 # 记录变换次数
while n > ①:
cnt = cnt+1 # 变换次数cnt累加
if n % 2 == 0:
n //= ②
else:
n = 3*n+1
print(③) # 输出变换次数
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 random
num = ①.randint(1, 100)
i = 1
while i <= 5:
ans = int(input("请猜数:"))
if ②:
print("大了,还剩", 5-i, "次机会")
elif ans < num:
print("小了,还剩", 5-i, "次机会")
else:
print("恭喜猜中!!!")
break
i = i + ③
print("正确答案是:", num)
第5题和第6题,题目相同,代码对比如下:
使用while循环的程序代码
import random
num = ①.randint(1, 100)
i = 1
while i <= 5:
ans = int(input("请猜数:"))
if ②:
print("大了,还剩", 5-i, "次机会")
elif ans < num:
print("小了,还剩", 5-i, "次机会")
else:
print("恭喜猜中!!!")
break
i = 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 random
res = 0 #骰子的数字
i = ① #投掷的次数
while ②:
res=random.randint(1,6)
print(res)
③ #投掷的次数加1
print("一共掷了",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//10
print(s)

展开更多......

收起↑

资源预览