鱼C论坛

 找回密码
 立即注册
查看: 1739|回复: 6

while循环

[复制链接]
发表于 2023-8-6 17:56:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
line = 1
while line <= 4:
    print('*' * line)
    line += 1
此代码运行得到下图:
*
* *
* * *
* * * *


line = 1
while line <= 4:
    num = 1
    while num <= line:
        print(num, end=' ')
        num += 1
    print()
    line += 1
此代码运行得到下图:
1
1 2
1 2 3
1 2 3 4


我想问为什么第二个要加print()去换行;第一个不用加print()去换行,就能自己换行。
求大佬解答和指导


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-6 17:56:32 | 显示全部楼层
关于换行的解答

在第一个例子中,我们没有显式地添加 print() 语句来换行,而是通过循环中的 print('*' * line) 语句来实现每次打印一行星号的效果。这是因为在Python中,print() 函数默认会在打印内容之后自动添加换行符。

而在第二个例子中,我们使用了内部的循环来打印一系列数字,那么为了让每行的数字能够分隔开来,我们需要在外部的循环结束后使用 print() 函数来手动添加一个换行符。这样做的目的是确保每行的数字序列都以独立的行显示出来。

总结起来,需要加入 print() 函数进行换行的原因是在于我们希望在特定的位置创建换行,以提供更好的可读性。如果不需要换行,则可以直接使用 print() 函数进行内容打印。

希望以上解答能够帮助到你!如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 17:56:34 | 显示全部楼层
在第一个代码中,每次循环打印完一行星号后,使用了 print() 语句来实现换行。这是因为 print() 函数默认会在打印内容的末尾添加一个换行符,所以每次打印完星号后会自动换行。

而在第二个代码中,每次循环打印完一行数字后,并没有使用 print() 语句来实现换行。相反,使用了 print() 语句来打印一个空行,从而实现换行的效果。如果不加 print() 语句,那么每次打印完一行数字后,下一行的数字会直接接在上一行的末尾,没有换行的效果。

所以,在第二个代码中,为了实现每次循环打印完一行数字后换行的效果,需要使用 print() 语句来打印一个空行。而在第一个代码中,由于每次打印完星号后会自动换行,所以不需要额外的 print() 语句来实现换行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 17:56:36 | 显示全部楼层
关于换行的解答和指导

在第一个代码中,我们没有显式地使用 print() 函数来换行,而是直接在打印星号的那一行结尾处加上了换行符 \n。这是因为默认情况下,print() 函数在打印完内容后会自动添加换行符。所以在第一个代码中,每次打印星号时都会自动换行。

而在第二个代码中,我们通过在内部循环结束后调用一次 print() 函数来实现换行。这是因为内部循环打印数字时,我们使用了 end=' ' 参数,将空格作为分隔符,使得数字在同一行上打印。为了在每一行打印完数字后换行,我们需要在外部循环的每一次迭代结束后调用一次 print() 函数。

如果你希望在第一个代码中明确地使用 print() 函数来换行,你可以在每次循环结束后添加 print() 函数,例如在打印星号的语句后面加上 print() 即可:
line = 1while line <= 4:    print('*' * line)    line += 1    print()
这样,每次打印星号后就会执行一次 print() 函数,实现自动换行。

希望以上解答能够解决你的疑问。如有任何其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 18:48:14 From FishC Mobile | 显示全部楼层
print函数的end参数用来控制打印完value参数
后再打印的字符,默认是换行符。这就是为什么print函数打印完后会默认换一行。
在第1个例子中,end参数就是默认值,所以打印完后会自动换行。在第2个例子中,end参数被设置为一个空字符串,打印完后不会自动换行。所以需要我们再print()一次,此时由于没有指定end参数,会打印一个换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-6 21:13:48 | 显示全部楼层
给个最佳答案呗!求你了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 07:35:03 | 显示全部楼层
您好!关于您提出的问题,让我来解释一下:

在第一个代码块中:
line = 1
while line <= 4:
    print('*' * line)
    line += 1
print('*' * line)这行代码会在每次循环时打印一个星号字符串,并且*之后没有任何字符,因此print()函数默认会在每次打印后自动添加换行符,所以您不需要额外的print()来换行。

在第二个代码块中:
line = 1
while line <= 4:
    num = 1
    while num <= line:
        print(num, end=' ')
        num += 1
    print()
    line += 1
在这个代码块中,我们有两个嵌套的循环。外部的while循环控制行数,内部的while循环控制每行打印的数字。在内部的循环中,我们使用print(num, end=' ')来打印数字,并且指定end=' ',这表示在每个数字打印后不要换行,而是用一个空格分隔。所以每行的数字会在同一行打印。

但是,外部的while循环在每行数字打印完后会执行print()语句,这里没有指定end参数,所以它会默认打印一个空行,从而实现换行的效果。

总结一下,第一个代码块之所以不需要额外的print()来换行,是因为print('*' * line)默认会在打印后自动换行。而第二个代码块之所以需要print()来换行,是因为我们想要在每行的数字打印完成后手动换行,所以需要在外部的while循环中使用print()来实现换行效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表