题目
代码
symbol = input()
for i in range(1,6,2):
str = []
for j in range(0,i):
str.append(symbol)
print('{:^5s}'.format(''.join(str)))
算法思路
最初入门编程的时候是使用嵌套循环,根据规律逐个输出空格或者符号,上一篇文章(刷题笔记——1807.[编程基础]输入输出练习之格式控制)的笔记中有提到使用format方法进行左右对齐或居中对齐的输出方式,所以本题可以考虑通过format方法来达成最终目的。
根据题意可知,最终的输出结果是一个由自定义字符组成的共三行的三角形,且这三行分别有1, 3, 5个自定义字符。
所以,本题可以通过嵌套循环来向列表输入特定数量的字符,组成该行要输出的字符串。在外循环开始时初始化列表,之后通过内循环向列表添加字符,内循环结束后在外循环的最后一步按居中对齐的格式来输出本行的字符串。
为方便取值,外循环的循环条件设置为start=1,stop=6,step=2
。
笔记
join方法
str.join(sequence)
,join方法用于将序列中的元素以指定的字符连接生成一个新的字符串,其中str
为分隔字符,sequence
为待组合序列,最后返回组合生成的新字符串。
range方法
range(stop)
range(start, stop[, step]) # step为可选参数
range函数返回的是一个可迭代对象(类型是对象)而非列表。其中start
为起点(默认为0),stop
为终点(终点不可达,例:range(0,2)输出为0, 1),step
为步长(步长默认为1,为负数时逐步递减)。
参考资料
Python join()方法——菜鸟教程
Python3 range() 函数用法——菜鸟教程