#55. 【循环】打印星号(信息素养真题)

【循环】打印星号(信息素养真题)

题目描述

任意输入一个整数n,输出一个n行的的图案,每行都是由数字 + 空格 + *号组成,*号后无空格。

题目格式

输入

一个整数 nn,代表输出有几行

输出

输出 nn 行。(格式详见样例)

题目样例

5
0*********
1 *******
2  *****
3   ***
4    *
3
0*****
1 ***
2  *

题目解释

当样例1的输入为 5 时,输出有5行:

  • 第一行:数字0,没有空格,9个星号
  • 第二行:数字1,1个空格,7个星号
  • 第三行:数字2,2个空格,5个星号
  • 第四行:数字3,3个空格,3个星号
  • 第五行,数字4,4个空格,1个星号

题目提示

  1. 面对这样的画图提示,就像做数学中的找规律题目一样。找到其中元素的规律。这道题目中,【题目描述】中已经告诉你有3个元素:数字、空格数量、星号数量。 如果你能分别找出其中的规律,规律是从几开始,每次循环如何变化,并且将开始的值分别保存在对应的变量里,你就一定可以解出题目。 以这道题目(n=5时)为例,数字从0开始,每次变化为增加1;空格数量从0开始,每次也是增加1;星号数量从9开始,每次减小2。那么,开始的数字放在循环之前,变化放在循环里边。

    shuzi = 0
    kongge = 0
    xinghao = 9
    for i in range(5):
      print() #如何输出呢?看提示2
      shuzi = shuzi + 1
      kongge = kongge + 1
      xinghao = xinghao - 2
    
  2. 如何在一行输出不同的内容,而且他们之间还没有空格呢?有两种方法:

    • 1)方法一:print(shuzi, " "*kongge, "*"*xinghao, sep="") 代表输出了三个东西,并且中间不添加空格来分割。sep=""代表将默认分隔符从空格改为没有(空字符串)。
    • 2)方法二:print(str(shuzi) + " "*kongge + "*"*xinghao) 代表将shuzi这个整数变量转换为字符串类型之后,和另外两个字符串拼接起来,形成一个新的长的字符串。

记忆知识点

在Python中,字符串 乘上 一个整数,代表把这个字符串重复整数次。

字符串之间可以加+号,代表把这些字符串拼接起来。

  1. 如果你还有错误,可能是没有根据输入的整数来计算开始的星号数量。(如果你有耐心看到这里,就一定能做对!)