while循环
在程序中,有时候会遇到代码需要重复多次运行的情况。
例子:
(1)在生活中做事没让媳妇儿满意,跟她承认错误,说10遍:媳妇儿,我错了;
(2)可以使用哪些方式来完成呢?
(3)思考:假定要说10000遍呢?该怎么办?
# 1.普通方式
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# print("媳妇儿,我错了...")
# 2.while循环
# i = 0
# while i < 10:
# print("媳妇儿,我错了...")
# i += 1
# 3.10000遍
i = 0
while i < 10000:
print("媳妇儿,我错了...%d"%i)
i += 1
# *4.扩展
# print("媳妇儿,我错了..."*10000)
[掌握]while循环格式
while可以理解为:当……的时候,即当满足条件判断时,就反复多次地执行指定代码。
while循环语法:
初始化变量语句
while 循环条件:
循环体语句
改变循环条件的语句 # 先写
例子:
(1)使用while循环语句来输出10句:Python真简单;
(2)在程序里,分析while循环的执行流程。
# 初始化变量
# while 条件:
# 循环体语句
# 改变条件的语句 # 先写
# i = 0
# # while i < 10:
# while i < -10:
# print("Python真简单.")
# i += 1
"""
i < -10 False 直接结束
"""
i = 0 # int
# while i < 10:
while i <= 9:
print("Python真简单.%d"%i)
i += 1
"""
i=0 0<10 True print() i=i+1 =0+1 i=1
i=1 1<10 True print() i=i+1 =1+1 i=2
.....
i=9 9<10 True print() i=9+1 i=10
i=10 10<10 False
"""
==总结:==
(1)使用while循环可以执行反复多次的效果;
(2)注意:在使用while循环时,建议先写【改变循环条件的语句】,这样可以避免产生更多错误。
[掌握]while循环应用
例子:
(1)计算10 ~ 100之间所有自然数的和(包含10和100);
(2)分别使用正常和逆向思维来完成。
# 正常
total_sum = 0
i = 10
while i <= 100:
# print(i)
total_sum += i
i += 1
print(f"求和为:{total_sum}")
# 逆向
# sum = 0
# j = 100
# while j >= 10:
# sum += j
# j -= 1
# print(f"求和为:{sum}")
==总结:==
(1)我们会发现:思维逻辑不同,编写出来的while循环案例代码也课可能不同。
[了解]死循环:
死循环,也称为无限循环,指的是程序代码一直执行,不会停止。
产生死循环的情况有:
(1)缺少了:改变循环条件的语句;
(2)误写了:循环条件;
(3)标准的死循环格式。
死循环格式:
while True:
代码1
代码2
...
例子:
(1)当缺少了:改变循环条件的语句,完成一个死循环案例;
(2)当误写了:循环条件,完成一个死循环案例;
(3)使用标准的死循环格式完成一个死循环案例;
(4)执行程序,观察效果。
# 缺少语句
# i = 0
# while i <= 10: # True
# print("hello , python")
# 误写条件
# i = 0
# while i > -10: # True
# print("hello , FangGe")
# i += 1
# 标准
while True:
print("hello , itheima...")
==总结:==
(1)若要在程序里完成死循环的效果,建议直接写成(==while True==)。
其他控制语句
[掌握]for循环
与while循环功能类似,for语句也能完成反复多次的执行。
for语法:
for 临时变量 in 序列: 满足条件时,执行的代码1 满足条件时,执行的代码2 …… [else: 当for循环正常执行结束后,执行代码]
说明:
序列指的是能被循环处理的数据类型,比如列表、字符串等。
接着,来看一下for循环里常见的序列range()函数。
函数名 | 含义 |
---|---|
range(x, y) | 一个序列,专门用于给for循环使用。 |
说明:
range()中的参数表示从x到y的取值,即[x,y),表示能获取到x值,但获取不到y值。
例子
(1)使用for循环格式来编写程序;
(2)输出0 ~ 4之间的数字,可使用range();
(3)循环输出itheima中的单个字符,且当正常执行结束后,输出:已循环结束;
(4)执行程序,观察效果。
# 1.0-4
# for temp in range(0,5):
for temp in range(5):
print(temp)
# 2.itheima
# for temp in "itheima":
# print(temp)
# 3.else
# for temp in "itheima":
# print(temp)
# else: # 原则: for语句中能正常执行完所有才会执行else break
# print("已循环执行结束.")
# *4.数字不是序列
# for temp in 100: # 唯一?? 哈希/散列
# pass
# iterator
# iterable # 扩展: 迭代、循环、遍历 ====>循环
==总结:==
(1)for与while循环功能类似,且都能完成反复多次执行的效果;
(2)注意:for可以配合else关键字一起使用,这句话正确吗?==A、正确==;B、错误。
[了解]嵌套循环
当在while循环内,再包含一个while循环时,则称为嵌套循环。
通俗地说,嵌套循环就是指外层有一个循环,里面再嵌套一个内层循环。
说明:
也可以使用两个for语句形成嵌套语句。
嵌套循环的语法:
初始化变量语句1 while 循环条件1: # 外层循环 [循环体语句1] 初始化变量语句2 while 循环条件2: # 内层循环 循环体语句2 改变循环条件的语句2 改变循环条件的语句1
说明:
(1)可以把内层循环当做一个循环的循环体语句来处理;
(2)当外层循环执行一次,内层循环执行所有。
我们已知道,print()输出函数有自动换行的效果,原因是底层源码设置了默认值\n。
函数名 | 含义 |
---|---|
print(args, end="\n") | 用于输出信息内容,默认有换行效果。 |
说明:
若要取消换行效果,只需把end值修改为其他内容。
一起看看一个统计嵌套循环的执行次数的案例。
请观察代码,并思考:执行次数为多少?
i = 0
while i<3: # 外层循环
j = 0
while j<5: # 内层循环
print("Hello World...")
j += 1
i += 1
例子:
(1)使用嵌套循环来完成程序;
(2)请使用*代替,并输出一个正方形的显示效果。
# 1.输出行
i = 1
while i <= 5:
# 2.输出列
j = 1
while j <= 5:
print("*", end="\t")
j += 1
print("")
i += 1
==总结:==
(1)可以使用for或while循环完成嵌套循环,这句话正确吗?==A、正确==;B、错误;
(2)注意:在实际应用中,循环、遍历、迭代,这三个词,都可以表示循环的含义。[思考]
==思考:
(1)使用嵌套循环来完成程序;
(2)动手实践一个九九乘法表的显示效果。
# 行
i = 1
while i <= 9:
# 列
j = 1
# while j <= 9:
while j <= i:
print(f"{j}*{i}={i*j}",end="\t")
j += 1
print("")
i += 1
[掌握]break语句
==目标:==掌握break语句的使用。
break语句主要是用于终止某个循环语句块的执行。
break语法:
循环语句块 …… break 其他语句
说明:
break会终止循环的执行。
例子
(1)一次长跑比赛中,体育老师说:本次长跑总共跑50圈,如果有同学跑到第10圈时,感到身体不适,就直接退出比赛;
(2)使用while循环和break模拟长跑效果。
# 1.循环
i = 1
while i <= 50:
print(f"正在跑第{i}圈...")
# 2.判断
if i == 10:
print("身体不适,直接退出比赛...")
# 3.退出
break # break: 终止 跳过当前循环的整个循环
i += 1
==总结:==
(1)对于程序里的break,可以简单的理解为()的意思;==A、终止==;B、中断
(2)注意:break语句用于跳出当前的整个循环。
[了解]continue语句
==目标:==了解continue语句的简单使用。
continue语句不常使用,表示用于跳过某个循环语句块的一次执行,然后继续执行下一轮的循环。
continue语法:
循环语句块 …… continue 其他语句
说明:
continue会中断循环的一次执行。
例子
(1)请在输出itheima的单个元素时,如遇字母e,直接跳过且不输出;[后字母]
(2)使用for循环和continue模拟跳过输出的效果。
# 1.定义变量、for语句
strs = "itheima"
for temp in strs:
print("-----------------------")
# 2.判断
if temp == "e":
# 3.跳过一次执行, 并进入下一次循环
continue
print(temp)
==总结:==
(1)continue语句很少使用,表示的是跳过当前循环的一次循环,然后会继续下一轮的循环执行;
(2)注意:break和continue语句只能应用在循环语句中,这句话正确吗?==A、正确==;B、错误。
猜拳游戏案例
[了解]随机数的处理
==目标:==了解如何生成随机数?
要完成猜拳游戏程序的编写,优先需要知道怎么生成随机数。
注意:在Python中,要获取随机数值,可以使用生成随机数的random模块:
# 导入模块
import random
random模生成随机数的函数:
函数名 | 含义 |
---|---|
randint(a, b) | 生成随机数,用于返回[a, b]之间的整数,并能取值a和b。 |
说明:
能同时取值a和b。
例子
(1)使用random模块来生成一个0-5之间的随机数;
(2)生成一个50-100之间的随机数值;
(3)执行程序,观察效果。
==总结:==
(1)若要生成随机数,可以使用Python的()库;==A、random==;B、math;
(2)注意:当使用randint(a, b)生成随机数时,能同时取值a和b。
[掌握]猜拳游戏代码编写
==目标:==完成猜拳游戏的代码编写。
首先,一起来了解一下:猜拳游戏规则。有:
(1)玩家输入自己要出的拳,例如石头(1)、剪刀(2)、布(3);
(2)电脑随机出拳,例如电脑可以出:石头、剪刀、布的任意一个;
(3)猜拳游戏的比较胜负规则是:石头能赢剪刀、剪刀能赢布、布能赢石头。
例如,根据游戏规则,一起来完成猜拳游戏的代码编写。
操作步骤:
(1)显示操作界面:石头1 剪刀2 布3 (2)玩家出拳; (3)电脑要出拳; (4)判断玩家 胜利:玩家1 电脑2; 玩家2 电脑3; 玩家3 电脑1; 平局:玩家1 电脑1; 玩家2 电脑2; 玩家3 电脑3; 失败:另外的。
import random
# 1.显示界面
print("=========猜拳小游戏V1.0===========")
# 5.重复
while True:
# 2.玩家出拳
print("可以选择出拳的方式有:")
print("\t(1)石头")
print("\t(2)剪刀")
print("\t(3)布")
player = int(input("请输入你的出拳:"))
# 3.电脑
computer = random.randint(1, 3)
# 4.判断
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print("恭喜你,赢了~~")
elif player == computer:
print("平局!!")
else:
print("失败了,洗洗手再来一把!!!")
# **6.扩展 """ 1.玩家和电脑的出拳方式没显示, 该怎么显示出来呢? 2.想要退出游戏,该怎么办? """
==总结:==
(1)在编程时,可以综合运用多个简单知识,并形成一个复杂的程序;
(2)注意:在编写程序前,建议一定要先写一写完成程序的操作步骤。