鱼C论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2278|回复: 7

[已解决]输出结果的问题

[复制链接]
发表于 2017-5-20 15:10:51 | 显示全部楼层 |阅读模式

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

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

x
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number
    while i:
        print('',end = '')
        i = i - 1
        g = number
        while g:
            print('*',end = '')
            g = g - 1
            print()
            number = number - 1
这段代码中,明显没有把while g:和while i:  并列上,,,,,这样的代码打印出来是:

请输入一个整数:8
*
*
*
*
*
*
*
*
                  
                      这是因为print()和number = number -1 没有向后缩进吗?


    当print(‘    ’,end = ‘  ’),,,如果加上空格后输出结果为:




请输入一个整数:8
  *
*
*
*
*
*
*
*


   只有第一个有空格 这是为什么?
                 
最佳答案
2017-5-20 18:03:48
本帖最后由 当回首遇上转身 于 2017-5-21 15:07 编辑

注意while循环的嵌套
while g:里面循环之后number = 0,g = 0所以在while i:第一次循环执行完之后while g就不再执行。之后while i执行的都是while i:和while g:之间的部分,而由于number跟g一样在while g:循环里面已经赋值为0,所以while number: 循环也只是执行一次就退出了。

有图片应该会没那么抽象,你的程序看到的部分其实是while g: 的部分
360截图20170520175520876.jpg
看不到的是while i: 的部分,例如我在while i: 的输出中加入一个S:
360截图20170520175933750.jpg

注意缩进!!注意缩进!!注意缩进!!
其实你程序就是缩进问题,while别嵌套错了
  1. temp = input('请输入一个整数:')
  2. number = int(temp)
  3. while number:
  4.     i = number
  5.     while i:
  6.         print(' ',end = '')
  7.         i = i - 1
  8.     g = number
  9.     while g:
  10.         print('*',end = '')
  11.         g = g - 1
  12.     print()
  13.     number = number - 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-20 17:28:03 | 显示全部楼层
因为你while g:里有个print(),这个默认打印换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-20 18:03:48 | 显示全部楼层    本楼为最佳答案   
本帖最后由 当回首遇上转身 于 2017-5-21 15:07 编辑

注意while循环的嵌套
while g:里面循环之后number = 0,g = 0所以在while i:第一次循环执行完之后while g就不再执行。之后while i执行的都是while i:和while g:之间的部分,而由于number跟g一样在while g:循环里面已经赋值为0,所以while number: 循环也只是执行一次就退出了。

有图片应该会没那么抽象,你的程序看到的部分其实是while g: 的部分
360截图20170520175520876.jpg
看不到的是while i: 的部分,例如我在while i: 的输出中加入一个S:
360截图20170520175933750.jpg

注意缩进!!注意缩进!!注意缩进!!
其实你程序就是缩进问题,while别嵌套错了
  1. temp = input('请输入一个整数:')
  2. number = int(temp)
  3. while number:
  4.     i = number
  5.     while i:
  6.         print(' ',end = '')
  7.         i = i - 1
  8.     g = number
  9.     while g:
  10.         print('*',end = '')
  11.         g = g - 1
  12.     print()
  13.     number = number - 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-21 14:54:41 | 显示全部楼层
当回首遇上转身 发表于 2017-5-20 18:03
注意while循环的嵌套
while g:里面循环之后g = 0所以在while i:第一次循环执行完之后while g就不再执行。 ...

为什么在while g:中的 g 和number 赋值为0,,,,,以上说的执行一次,这不太懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-21 15:04:48 | 显示全部楼层
枫丹白露666 发表于 2017-5-21 14:54
为什么在while g:中的 g 和number 赋值为0,,,,,以上说的执行一次,这不太懂

这是全局变量和局部变量的作用域问题,你程序的number变量在while g:里面没有定义局部变量,所以当while g: 里面number值变化的时候while number:也会变化,变量g由于number为0在g= number的时候总是为0,所以while g:无法执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-21 15:48:48 | 显示全部楼层
当回首遇上转身 发表于 2017-5-21 15:04
这是全局变量和局部变量的作用域问题,你程序的number变量在while g:里面没有定义局部变量,所以当while  ...

while g:里面循环之后number = 0,g = 0所以在while i:第一次循环执行完之后while g就不再执行。之后while i执行的都是while i:和while g:之间的部分,而由于number跟g一样在while g:循环里面已经赋值为0,所以while number: 循环也只是执行一次就退出了。

  这个是你写下的,,,然后不明白为什么while g:里面循环之后number= 0,g= 0,,,,while g:里面不就是:
print(' *',end = '  ')
g = g - 1
print()
number = number - 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-21 16:13:36 | 显示全部楼层
g = g - 1和number = number - 1就相当于自减1
360截图20170521170943500.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-22 13:25:30 | 显示全部楼层
当回首遇上转身 发表于 2017-5-21 16:13
g = g - 1和number = number - 1就相当于自减1

好的谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-27 15:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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