Python3 打印菱形 使用abs()的方法 最少的代码搞定
核心代码就是print(" "*abs(4-n), "*"*(2*(4-abs(4-n))-1))
,需要先确定当前行空格个数,再确定*
符号的个数。
'''------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:编写编写函数fun,其功能为打印如下图所示图形。
*
***
*****
*******
*****
***
*
要求:要求使用abs()。
编写函数中包含输出语句,直接打印表达式的结果。
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的
任何内容,仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''
def fun(n):
# **********Program**********
print(" "*abs(4-n), "*"*(2*(4-abs(4-n))-1))
# ********** End **********
def main():
for index in range(1, 8):
fun(index)
if __name__ == '__main__':
main()
如果觉得上面的方法复杂,可以使用下面方法7行菱形:
for i in range(-3, 4):
j = abs(i)
#先是j个空格,然后打印(7-2j)个* ,后面的都是空格
print(' '*j+'*'*(7-2*j))
如果是9行:
for i in range(-4,5):
j = abs(i)
#先是j个空格,然后打印(9-2j)个* ,后面的都是空格
print(' '*j+'*'*(9-2*j))
参考:
使用Python打印一些图形,主要是找到循环规律 - Wily的博客 - CSDN博客
python打印菱形和对顶三角形 - chen的博客 - CSDN博客
打赏