第九节 流程控制语句之循环语句 + 语句嵌套

这节课依旧是流程控制语句
剩下的部分
循环语句和语句之间的嵌套
for循环
while循环
选择循环语句嵌套
循环语句嵌套

下面就来看一下循环语句

循环语句

先看一下循环语句的流程图
在这里插入图片描述

for循环

for循环是一个计次循环,一般应用在循环次数已知的情况下

通常适用于枚举或遍历序列

# for循环基本结构
for 循环控制变量 in 循环控制变量变化范围:
	语句 1
	语句 2
语句3

for语句与if语句一样也是通过相同的缩进来表示所属的

例:

# 计算1~100的累加和
result = 0
for i in range(101): 
	result+=i  # result = result + i
print(result)

上述代码中用到了 range() 函数,该函数是Python中的内置函数,用于生成一系列连续的整数,多用于for循环中
下面来看一下range()函数的使用:

range(start,end,step)
# range()函数具有三个参数
# start: 用于指定计数的起始值,可以省略,如果省略则从0开始
# end: 用于指定计数的结束值(但不包括该值),不能省略当range()函数中只有一个参数时,即表示指定计数的结束值
# step:用于指定步长,即两个数之间的间隔。可以省略,若省略则表示步长为1

注意:在使用range()函数时,如果只用一个参数,那么表示指定的是end;如果只用两个参数,那么表示指定的是start和end;只有三个参数都存在时,最后一个参数step才表示步长

例题:
输入两个正整数 m,n(m<n),输出 m 到 n 中的每一个数

# 首先从键盘读入m n两个整数
m=int(input())
n=int(input())
# 通过for循环打印出m和n之间的所有数字,这里计数结束值应该是n+1,因为end参数是不包括end参数本身的这个值的
for i in range(m,n+1):
    print(i)

这里可以将for i in range() 记成for循环的固定格式,i 是我们自己取得变量名用来在for循环中代替要处理的变量,in 就是表示将变量限制在range()函数表示的范围内

下面做题来练个手
实战案例:

一、 输出 100 以内的奇数

for i in range(101):
    if i%2!=0 :
        print(i,end=" ")

二、 输出 301 至 350 之间的偶数

for i in range(301,351):
	if i%2==0:
		print(i,end=" ")

while循环

while循环是通过一个条件来控制是否要继续反复执行循环体中的语句

也可以叫做死循环

while循环流程图

# while循环基本形式
while 判断条件:
	语句1
    语句2
语句3

判断条件为真时,执行语句块会被一直执行,直至判断条件为假时,循环终止。这就要求在执行语句块中,应该有改变判断条件结果的语句存在,否则判断条件结果一直不改变,会成为永久循环,也就是死循环

例题: 求 s=1 +2 +3……+n,当加到第几项时,s 的值会超过

1000?

s = 0
n = 0
# 题目中的限定条件是s的值超过1000,所以这里的判断条件就应该是s<1000
while s < 1000:
    n=n+1 # 随着循环的进行,n的值会变成1,2,3,4,5......
    s=s+n # 求和s,1+2+3+4+5......
print(n)

一道小练习
练习: 输入一个正整数,倒序输出这个正整数的每一位。

例如:输入 123 倒序输出 321(暂不必考虑 0 在最前面不符合数字格式)

n = int(input())

while n!=0:
    x = n%10 # 对10取余,得到个位上的数字
    print(x,end="")
    n//=10 # 对10取整除,撇掉个位,一位位的减少

嵌套

嵌套这里就通过题目来见识一下什么是嵌套
明白什么情况下要进行语句的嵌套

选择循环嵌套

角谷的猜想

题目描述: 角谷猜想,是指对于任意一个正整数,如果是奇数,

则乘 3 加 1,如果是偶数,则除以 2,得到的结果再按照上述规则重

复处理,最终总能够得到 1。如,假定初始整数为 5,计算过程分别

为 16、8、4、2、1。程序要求输入一个整数,将经过处理得到 1 的

过程输出来。

输入:一个正整数 N(N <= 2,000,000)

输出:从输入整数到 1 的步骤,每一步为一行,每一部中描述计

算过程。最后一行输出"End"。如果输入为 1,直接输出"End"。

样例输入:5

样例输出:

5*3+1=16

16/2=8

8/2=4

4/2=2

2/2=1

End

# 这一题需要用到while循环和if...else语句的嵌套
num = int(input())
# 从题干中分析,只要这个数不是1,就需要一直对它进行处理所以要用到while循环
while num!=1:
# 偶数和奇数的处理方法不一样,所以里面要套一个if来判断奇偶性
    if num%2==0:
        print(f"{num}/2={num/2}")
        num//=2
    else:
        print(f"{num}*3+1={num*3+1}")
        num=num*3+1
print("End")

循环嵌套

输出九九乘法表,如图所示:

在这里插入图片描述

#九九乘法表一共 9 行,需要循环 9 次
#行号从 1 变换至 9,用行号 i 表示乘法表中每个乘法运算的第二个数字
for i in range(1,9+1):
#一行中的共有 i 列,用行号 j 表示乘法表中每个乘法运算的第一个数字
for j in range(1,i+1):
#依照乘法表样式输出
print(j,"*",i,"=",i*j,end=" ")
print("")#内层循环输出一行结束,需输出一个回车

--------------------------------------------------------------------------------End-----------------------------------------------------------------------------------------------

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值