Python打印菱形 |
您所在的位置:网站首页 › 用python循环输出菱形图案 › Python打印菱形 |
使用python打印出菱形: * *** ***** ******* ***** *** * 思想:平常我写这种代码的时候,总是自然地使用二层循环,今天老师教了一个特别好的方法,化二维为一维。我觉得代码优化是很重要的,所以把它写下来,可以慢慢培养自己的算法思想。 第一行 空格3 *1 (即*个数为7-3*2) 第二行 空格2 *3 (即*个数为7-2*2) 第三行 空格1 *5 (即*个数为7-1*2) 第四行 空格0 *7 第五行 空格1 *5 第六行 空格2 *3 第七行 空格3 *1 嘻嘻嘻,找规律吧。空格个数可以用range(-n/2,n/2+1)表示,*的个数可以用(n-空格个数*2)表示,这样就可以用一维表示法来输出菱形。代码如下: n=int(input("input n")) for i in range(-int(n/2),int(n/2)+1): print(" "*abs(i),"*"*abs(n-abs(i)*2))PS:第一次写CSDN,很多不足,定会多多努力,加油加油! 补充:有人问我偶数情况怎么办,我想补充一下 每一行的空格个数不变,但*的个数是变化的: 第一行 空格3 * 1 (即* 个数为4-3) 第二行 空格2 * 2 (即* 个数为4-2) 第三行 空格1 * 3 (即* 个数为4-1) 第四行 空格0 * 4 (即* 个数为4-0) 第五行 空格1 * 3 第六行 空格2 * 2 第七行 空格3 * 1 for j in range(-int(n / 2), int(n / 2) + 1): print(" " * abs(j), "* " * abs(int(n/2)+1 - abs(j)))和上面有一点不同,打印的时候每一个*的后面直接跟一个空格 这样打印出来就是这个样子:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |