chendonghao 发表于 2020-5-23 18:24:16

课后题咨询(小白咨询)

本帖最后由 chendonghao 于 2020-5-23 18:24 编辑

为了达到这个效果

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

我开始是想的这个

print("请输入一个整数:", end = " ")
temp = input()
num = int(temp)
i = " * " * num
while num:
    print(i)
    i = i + " * "
    num = num - 1
出来的效果是这样的

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

然后我想这不快成了,换减号应该就可以了吧

print("请输入一个整数:", end = " ")
temp = input()
num = int(temp)
i = " * " * num
while num:
    print(i)
    i = i - " * "
    num = num - 1

可是减号不行,效果是这样的

请输入一个整数: 8
********
Traceback (most recent call last):
File "E:/练习/1.py", line 7, in <module>
    i = i - " * "
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>>

实际是运行不了

然后看了下正确答案,感觉没看懂
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


Twilight6 发表于 2020-5-23 18:25:27

本帖最后由 Twilight6 于 2020-5-23 18:28 编辑

num = int(input('请输入一个整数:'))
while num:
    print(' '*(num-1)+'*'*num)
    num = num - 1
这样即可   我们通过观察 空格的数量和 * 号的数量正好相差 1就得出上面的代码
标准答案的太麻烦,感觉反而不好理解{:10_278:} (其实是我懒了 嘿嘿)

永恒的蓝色梦想 发表于 2020-5-23 18:28:18

楼上正解

KevinHu 发表于 2020-5-23 18:29:25

Twilight6 发表于 2020-5-23 18:25
这样即可   我们通过观察 空格的数量和 * 号的数量正好相差 1就得出上面的代码
标准答案的太麻烦,感 ...

你为什么每次都要用粗体字{:10_277:}

Twilight6 发表于 2020-5-23 18:29:57

KevinHu 发表于 2020-5-23 18:29
你为什么每次都要用粗体字

我自己看着感觉很舒服。。。我就以为你们看着也毕竟舒服吧嘿嘿
页: [1]
查看完整版本: 课后题咨询(小白咨询)