鱼C论坛

 找回密码
 立即注册
查看: 5397|回复: 4

[已解决]004 动动手课后练习2

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

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

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

x
  1. temp = input('请输入一个整数:')
  2. number = int(temp)
  3. while number:
  4.     i = number - 1
  5.     while i:
  6.         print(' ', end = '')
  7.         i = i - 1
  8.     j = number
  9.     while j:
  10.         print('*', end = '')
  11.         j = j - 1
  12.     print()
  13.     number = number - 1
复制代码


     为什么这里会出现字母‘J’,不明白这些代码的逻辑思维。我的理解是:
   i = number - 1
    while i:
        print(' ', end = '')
        i = i - 1

这段代码中,比如我输入数字5,程序会执行  i = number - 1,就是5-1 ;
                                                       while i:    循环 i
                                                       print(' ', end = '')        循环体打印无内容,end = '' 用空格替代自动换行,之前输入是数字5,所以空格5次?
                                                      i = i - 1         防止继续无限打印??特别不懂这句代码的作用

  j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1

这段就更加不明白了?

end = ''   的作用是用空格代替自动换行啊。那么打印的结果不应该是     * * * * *    (每出现一个*后,不是应该空格一次再* 吗)
    答案怎么是一连出现5个*****  ,中间不会有空格?
最佳答案
2017-5-7 22:04:25
end = ''这个是代替print里的默认参数end = '\n',你也理解错了end = '',是代替换行,但''引号里面没有空格哦
end = ' ',这种有空格的话,就会像你说的那样:空格代替自动换行啊。那么打印的结果不应该是     * * * * *    (每出现一个*后,不是应该空格一次再* 吗)

print(' ', end = '')   这一句循环空格5次是这个参数' ',而不是后面end=''

i = i - 1         防止继续无限打印??特别不懂这句代码的作用:
这一句,前面是不是有个while i:,要执行while语句里面的内容,只有i是非0非flase,就行,循环执行到第5次的时候,i=0,那么就不执行while语句里面的内容了

  j = number    number的值赋给j
    while j:   
        print('*', end = '')    打印*,且不换行
        j = j - 1   
    print()                   当while j:不执行后,打印空行,相当于print(end='\n')
    number = number - 1   

还有不懂的可以回复给我(你可以在IDLE里输入:help(print)    和help(while)了解这两个语句)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-7 22:04:25 | 显示全部楼层    本楼为最佳答案   
end = ''这个是代替print里的默认参数end = '\n',你也理解错了end = '',是代替换行,但''引号里面没有空格哦
end = ' ',这种有空格的话,就会像你说的那样:空格代替自动换行啊。那么打印的结果不应该是     * * * * *    (每出现一个*后,不是应该空格一次再* 吗)

print(' ', end = '')   这一句循环空格5次是这个参数' ',而不是后面end=''

i = i - 1         防止继续无限打印??特别不懂这句代码的作用:
这一句,前面是不是有个while i:,要执行while语句里面的内容,只有i是非0非flase,就行,循环执行到第5次的时候,i=0,那么就不执行while语句里面的内容了

  j = number    number的值赋给j
    while j:   
        print('*', end = '')    打印*,且不换行
        j = j - 1   
    print()                   当while j:不执行后,打印空行,相当于print(end='\n')
    number = number - 1   

还有不懂的可以回复给我(你可以在IDLE里输入:help(print)    和help(while)了解这两个语句)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 10:36:09 From FishC Mobile | 显示全部楼层
ButcherRabbit 发表于 2017-5-7 22:04
end = ''这个是代替print里的默认参数end = '\n',你也理解错了end = '',是代替换行,但''引号里面没有空 ...

看完你的回复,以下是我一部分的理解:
end = ''     作用只是不换行
end = ' '     作用是空格且不换行
i  是负责打印空格数量;
j  是赋值后有内容地打印
疑问:为什么是j,不可以是26个字母其他一个吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 11:39:01 | 显示全部楼层
xuhuimingdeyuc 发表于 2017-5-8 10:36
看完你的回复,以下是我一部分的理解:
end = ''     作用只是不换行
end = ' '     作用是空格且不换 ...

可以使26个字母的任意一个,不过我们一般都是按元素作用命名,如for each in range(10)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 14:38:33 From FishC Mobile | 显示全部楼层
好吧,我没元素那方面的知识点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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