第6课 Python while条件循环 课件(共19张PPT)电子工业出版社初中信息技术第二册

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

第6课 Python while条件循环 课件(共19张PPT)电子工业出版社初中信息技术第二册

资源简介

(共19张PPT)
while 条件循环
while 条件循环:在规定的条件内,循环执行某个程序块。
基本结构:
while 循环条件:
循环体程序块
条件为True,重复执行循环体程序块;
条件为False,结束循环。
流程图:
例1:输出小于10的正奇数
a=1
while a<10:
print(a)
a=a+2
运行程序
观察:while语句的执行过程
例2:程序在1~100之间取随机数作为神秘数字,请玩家猜是什么数字。
如果没猜中:猜大了,显示提示信息“你的数字大了,请重猜!”,并且让用户继续猜;猜小了,显示提示信息“你的数字小了,请重猜!”,并且让用户继续猜;如果猜中了,就结束游戏。
思考:什么条件下用户需要重复猜?
用户猜的数字不是神秘数字
random()
生成0~1之间的随机小数。[0,1),大于等于0.0小于1.0
语法格式为:random.random()
random:生成随机数
import random可导入random模块。
randint(a,b)
生成a~b之间的随机整数。[a,b],大于等于a小于等于b。
语法格式为:random.randint(a,b)
import random
secret_number=random.randint(1,100)
your_number=int(input("请输入你猜的数字"))
while your_number!=secret_number:
if your_number>secret_number:
print("你的数字大了,请重猜")
else:
print("你的数字小了,请重猜")
your_number=int(input("请输入你猜的数字"))
print("猜中啦!你真聪明!")
例3:任意输入一个除了1以外的正整数,判断它是否为质数。
思考:什么是质数?
即这个数只能被1和自己整除,若这个正整数为x,即只能被1和x整除。
如果被2~(x-1)中任意一个整数整除了,这个正整数就不是质数。
除了1以外的只能被1和本身整除的正整数被称为质数
让这个正整数x分别除以2~x中的每一个整数,如果只有x能被整除,即说明x是质数;
正整数x重复除以i,直到i和x相等,结束循环
2~x
设置变量i,为变量累加:i=i+1
x=int(input("输入一个不是1的正整数"))
i=2
while x%i!=0:
i=i+1
if x==i:
print(str(x)+"是质数")
else:
print(str(x)+"不是质数")
手持一枚硬币,抛向空中,让硬币自由下落,硬币落地后正面朝上和反面朝上的概率各是多少?
随机现象:在一定条件下,在个别试验或观察中呈现不确定性,但在大量重复试验或观察中其结果又具有一定规律性的现象,称为随机现象。
概率各为50%
主题:编写程序,模拟掷硬币后出现正面朝上和反面朝上的结果
1.问题需求:
统计给定次数条件下,正面朝上和反面朝上的出现的次数,并输出统计结果。
2.输入和输出:
输入:程序本身限定次数;
增加交互性和趣味性:由用户输入次数。
输出:分别打印正面朝上和反面朝上的次数。
实现相关功能的思路方法:
因为投掷硬币正面朝上和反面朝上是随机出现的,即1和0是随机出现的,因此可用random()函数生成0和1
1.如何表示正面朝上和反面朝上?
用1表示正面朝上,用0表示反面朝上,使用变量赋值
2.如何生成1和0?
需要重复掷骰子,统计正面朝上和反面朝上的次数,因此需要重复生成随机数,用while条件循环在给定的次数范围内,重复统计1和0出现的次数。
3.如何统计1和0出现的次数?
import random
n=int(input("请输入掷硬币的次数:"))
i=1
x=0
y=0
while(i<=n):
if (random.randint(0,1)==1):
x=x+1
else:
y=y+1
i=i+1
print("正面朝上的次数是:",x)
print("反面朝上的次数是:",y)
分别输入掷硬币的次数10、100、1000、10000、100000、1000000,你发现了什么?
掷硬币次数越多,实验所得频率趋近于理论概率值。
扩展练习:
编写程序,模拟掷骰子出现1、2、3、4、5、6点的结果
1.问题需求:
统计给定次数条件下,掷骰子出现1、2、3、4、5、6点的次数,并输出统计结果。
2.输入和输出:
输入:程序本身限定次数;
增加交互性和趣味性:由用户输入次数。
输出:分别打印1、2、3、4、5、6点的出现的次数和概率。
import random
n=int(input("请输入掷骰子的次数:"))
i=1
a=0
b=0
c=0
d=0
e=0
f=0
while(i<=n):
if (random.randint(1,6)==1):
a=a+1
if (random.randint(1,6)==2):
b=b+1
if (random.randint(1,6)==3):
c=c+1
if (random.randint(1,6)==4):
d=d+1
if (random.randint(1,6)==5):
e=e+1
if (random.randint(1,6)==6):
f=f+1
i=i+1
print("掷骰子1朝上的次数是:",a,"概率为",a/n)
print("掷骰子2朝上的次数是:",b,"概率为",b/n)
print("掷骰子3朝上的次数是:",c,"概率为",c/n)
print("掷骰子4朝上的次数是:",d,"概率为",d/n)
print("掷骰子5朝上的次数是:",e,"概率为",e/n)
print("掷骰子6朝上的次数是:",f,"概率为",f/n)
for遍历循环和while 条件循环的区别
while循环用于控制条件,它并不关注程序循环了多少次,更多希望的是程序能一直循环,直到发生某个事件才结束循环。
for循环用于控制次数,要求事先知道要进行多少次循环,或者说需要有个非常明确的列表范围
循环大测试:
1.用for循环打印出1~100的所有奇数;
2.用for循环制作倒计时,从10倒数到1;
3.用for循环计算1*2*3*…*20的值;
4.用for循环遍历“family”,打印其中的字母;
5.一次考试中,老师把所有成绩存入了一个列表,列表为[65,75,78,98,56,90,45,59,88,87],请打印出所有不及格的成绩;
6. 从列表[46,67,34,56,48,90,300,233,566]中找出一个大于80的数字。

展开更多......

收起↑

资源预览