| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- temp = input('请输入一个整数:')
 
 - number = int(temp)
 
 - while number:
 
 -     i = number - 1
 
 -     while i:
 
 -         print(' ', end = '')
 
 -         i = i - 1
 
 -     j = number
 
 -     while j:
 
 -         print('*', end = '')
 
 -         j = j - 1
 
 -     print()
 
 -     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个*****  ,中间不会有空格? 
 
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)了解这两个语句) 
 
 
 |   
 
 
 
 |