巫师凯伊007 发表于 2021-9-7 16:37:18

004讲课后题

代码:
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
运行结果:
请输入一个整数:5
    *****
   ****
***
**
*
>>>
这个代码我只能看懂前四行,后面就看不懂了。那位大佬帮忙解释下后面的代码吧,真的是看不懂,呜呜呜{:5_100:}

大马强 发表于 2021-9-7 16:54:58

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:   #输出i个空格
      print(' ', end = '')
      i = i - 1 #输出下行空格数减一
    j = number
    while j:    #输出j个符号 *
      print('*', end = '')
      j = j - 1 #输出下行符号 *数减一
    print()
    number = number - 1

大马强 发表于 2021-9-7 16:59:30

你要看看它输出的规律
在程序输入5
1.输出5行
2.每一行都有空格(除了最后一行)和符号
3.符号数量和输出时行数所在行数相等,空格=行数减一
明白这些你也可以试试下倒着输出

Angelina_Jolie 发表于 2021-9-7 17:14:27

本帖最后由 Angelina_Jolie 于 2021-9-7 17:21 编辑

temp = input('请输入一个整数:')#输入的一个字符串
number = int(temp)#把输入的字符串转数字类型   <=> number = int(input(' xxx '))
while number:#调用number数字   当number为0时程序终止
    i = number - 1# 给i赋值
    while i:#当i为0时程序终止
      print(' ', end = '')#表示不换行
      i = i - 1#执行一次i的值减一
    j = number
    while j:
      print('*', end = '')
      j = j - 1
    print()
    number = number - 1

一阵三十六 发表于 2021-9-7 23:30:10

我是这样认为的:
temp = input('请输入一个整数:')
number = int(temp)
while number: #当number == 0时,循环A停止 循环A共执行 number 次
    i = number - 1 # 每次 循环A 开始时,i的值改变
    while i:# 当 i的值为零 时,循环B结束 循环B执行 (number - 1)次
      print(' ', end = '')#循环B开始时在第N行打印(number - 1)次
      i = i - 1                      # i值减一
    j = number # 将 number 的值赋给 j
    while j:#循环c执行 j 次
      print('*', end = '') # 在第N行继续打印
      j = j - 1 # j 值减一
    print()#换行
    number = number - 1 # number 减一
'''
输入的数字就是A循环的次数
每一次A循环的时候,B循环当前 number-1 次
每一次A循环的时候,C循环当前 number 次
每次A循环的结果在同一行,即不同行代表不同的 A循环
第 5 6 7 行为一个小循环
第 9 10 11 行为另一个小循环
'''

人生立 发表于 2021-9-8 09:15:33

你可以把number设置为5然后debug
页: [1]
查看完整版本: 004讲课后题