python基础知识-while嵌套循环细节之-变量初始化

本文探讨了在Python中使用while循环嵌套打印7行7列矩形时,因变量未正确初始化导致的问题。通过分析内循环与外循环的关系,指出变量初始化的重要性,并给出正确代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

while循环嵌套需要把变量初始化

题目:使用while循环打印一个7行7列的矩形,图片如下:

在这里插入图片描述

如下图,是没有初始化变量的结果

i = 1
j = 1
while i <= 7:
    while j <= 7:
        print("*", end=" ")
        j += 1
    print( )
    print("我是外循环----->>%d"%i)
    i += 1

在这里插入图片描述
在这里我们发现只是打印了一行,而并没有打印出矩形。

探究其原因,如下所示:

i = 1
j = 1
while i <= 7:
    while j <= 7:
        print("我是内循环————>>%d"%j)
        j += 1
    print("我是外循环----->>%d"%i)
    i += 1

在这里插入图片描述
通过上图我们发现内循环打印了7次,外循环也打印了7次。
出现这种原因是因为:没有为变量做初始化的操作(就是回归原来的值—>> i = 1的状态)。
追其根本是因为: i += 1 等价于 i = i + 1
j +=1 等价于 j = j + 1
所以每次让内循环回归初始值,那么问题就解决了

正确的结果如下所示

i = 1
j = 1
while i <= 7:
    j = 1
    while j <= 7:
        print("*", end=" ")
        j += 1
    print( )
    i += 1

在这里插入图片描述
所也在这里告诫大家千万不要忘了把变量初始化,同时也是告诫我自己。

Python中的do-while循环、while循环和for循环都是常见的控制流结构,它们在功能和使用上略有不同。 1. **do-while循环**:这个循环结构首先执行一次do后面的代码块,然后再检查条件。如果条件满足(即,循环结束后代码块被执行了一次或多次),则继续循环。否则,跳过循环并执行循环后的代码。 示例: ```python do { print("这是do-while循环") } while <condition>; ``` 如果`<condition>`满足,则循环会输出“这是do-while循环”,然后继续检查条件,直到条件不满足为止。 2. **while循环**:这是最基本的循环结构,首先检查条件,如果条件为真,则执行代码块,然后再次检查条件。如果条件为假,则跳过代码块并执行循环后的代码。 示例: ```python while <condition>: print("这是while循环") ``` 如果`<condition>`满足,则循环会输出“这是while循环”,然后再次检查条件,否则执行循环后的代码。 3. **for循环**:for循环通常用于遍历序列(如列表、元组、字符串等)或其他可迭代对象。它首先初始化一个计数器或迭代器,然后每次迭代时都会执行代码块,直到计数器达到指定的范围(或者停止迭代)。 示例: ```python for i in range(5): print(i) ``` 在这个例子中,代码会输出从0到4的整数。这是因为每次循环时都会将`i`设置为下一个值(即每次迭代都会递增),直到`i`达到`range(5)`的范围为止。 总结一下它们的区别: * do-while循环至少会执行一次代码块(在条件满足的情况下),而while和for循环可能不会执行代码块。 * do-while循环通常用于需要至少执行一次的操作,例如初始化变量或设置默认值。而while和for循环更适合用于迭代或其他需要重复执行的操作。 * for循环更适合于遍历序列或其他可迭代对象,而do-whilewhile循环通常用于更复杂的逻辑或条件检查。 在选择使用哪种循环结构时,应根据具体的需求和逻辑来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值