#55. 【循环】打印星号(信息素养真题)
【循环】打印星号(信息素养真题)
题目描述
任意输入一个整数n,输出一个n行的的图案,每行都是由数字 + 空格 + *号
组成,*号后无空格。
题目格式
输入
一个整数 ,代表输出有几行
输出
输出 行。(格式详见样例)
题目样例
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个星号
题目提示
-
面对这样的画图提示,就像做数学中的找规律题目一样。找到其中元素的规律。这道题目中,【题目描述】中已经告诉你有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
-
如何在一行输出不同的内容,而且他们之间还没有空格呢?有两种方法:
- 1)方法一:
print(shuzi, " "*kongge, "*"*xinghao, sep="")
代表输出了三个东西,并且中间不添加空格来分割。sep=""
代表将默认分隔符从空格改为没有(空字符串)。 - 2)方法二:
print(str(shuzi) + " "*kongge + "*"*xinghao)
代表将shuzi
这个整数变量转换为字符串类型之后,和另外两个字符串拼接起来,形成一个新的长的字符串。
- 1)方法一:
记忆知识点
在Python中,字符串 乘上 一个整数,代表把这个字符串重复整数次。
字符串之间可以加
+
号,代表把这些字符串拼接起来。
- 如果你还有错误,可能是没有根据输入的整数来计算开始的星号数量。(如果你有耐心看到这里,就一定能做对!)