鱼C论坛

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

[已解决]关于while循环的一个小问题

[复制链接]
发表于 2019-12-28 11:10:55 | 显示全部楼层 |阅读模式

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

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

x
这是我写的一个程序
temp = input("请输入一个整数:")
#
number = int(temp)
#
word = ("**")
#
while number:
#
    j = number-1
#
    while j:
#
        print(word*number)
#        
        j = j-1
#
    print()
#
    number = number-1
#
执行后和我想的不一样,假如输入的数字为5,我认为print(word*number)应该只输出单行5个*,实际输出4行10个*,求大佬解惑
最佳答案
2019-12-28 12:17:56
yjptx121 发表于 2019-12-28 12:04
多谢回复,我是否可以这样理解,在while循环里,j=number-1会一直循环,直到while number为false,例如我 ...

你多了一层循环,其实只要一层 while 循环就足够了:
temp = input("请输入一个整数:")
number = int(temp)
word = "*"
while number:
    print(word * number)
    number = number - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-28 11:34:17 | 显示全部楼层
楼主的代码太复杂了,试试这段代码:
temp = input("请输入一个整数:")
number = int(temp)
print(number * "*")    # 输出 number 个 *
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-28 11:42:12 | 显示全部楼层
zltzlt 发表于 2019-12-28 11:34
楼主的代码太复杂了,试试这段代码:

多谢回答,我的目的不是输出number个*,我就是想测试一下print(‘word*number’)是否会如我所想的那样输出number个*,但实际结果却是出现number行(number*2)个*,所以就有点不明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-28 11:47:43 | 显示全部楼层
yjptx121 发表于 2019-12-28 11:42
多谢回答,我的目的不是输出number个*,我就是想测试一下print(‘word*number’)是否会如我所想的那样 ...

你的 word 有两个 "*"。

word = ("**")

试试这段代码:
temp = input("请输入一个整数:")
number = int(temp)
word = "*"
while number:
    j = number - 1
    while j:
        print(word * j)
        j = j - 1
    print()
    number = number - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-28 12:04:01 | 显示全部楼层
zltzlt 发表于 2019-12-28 11:47
你的 word 有两个 "*"。

word = ("**")

多谢回复,我是否可以这样理解,在while循环里,j=number-1会一直循环,直到while number为false,例如我输入的是5,那么第一次循环就是:当number为真时,执行word*j,然后number-1,第二次循环执行word*(j-1),number-1-1,第三次执行word*(j-1-1),number-1-1-1以此类推,直到number为假,那么执行结果应该是:
****
***
**
*
可现在执行的结果是:
****
***
**
*

***
**
*

**
*

*
这个不是很懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-28 12:17:56 | 显示全部楼层    本楼为最佳答案   
yjptx121 发表于 2019-12-28 12:04
多谢回复,我是否可以这样理解,在while循环里,j=number-1会一直循环,直到while number为false,例如我 ...

你多了一层循环,其实只要一层 while 循环就足够了:
temp = input("请输入一个整数:")
number = int(temp)
word = "*"
while number:
    print(word * number)
    number = number - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-28 12:45:12 | 显示全部楼层
zltzlt 发表于 2019-12-28 12:17
你多了一层循环,其实只要一层 while 循环就足够了:

受教了,谢谢,现在我明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 15:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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