python3练习100题——023

时间:2023-02-13 12:35:34

再做一道,把这周的任务搞定~

其实看到这道题,很熟悉,让我想起大一时被C语言支配的恐惧。那个时候不停的在push自己,给自己很大的压力。上C语言课的时候让人昏昏欲睡,但是还是逼迫自己打起精神来学习,一心想的是不落人后。。。这道题,当时用C还有点难度,记得没能很标准地解出来。现在,用python,我可以较为轻松地实现它了。

原题链接:http://www.runoob.com/python/python-exercise-example23.html

题目:打印出如下图案(菱形):

   *
  ***
 *****
*******
 *****
  ***
   *

我的代码:不仅实现了这个图案,还实现了所有行数(奇数行)的菱形。

def fun():
    number=int(input("How many lines you want?(odd number)"))
    n=int((number+1)/2)
    for i in range(1,n+1):
        print(' '*(n-i)+'*'*(i*2-1))  #print the top half part
    for i in range(1,n):
        print(' '*i+'*'*((n-1-i)*2+1))

运行结果:

fun()
How many lines you want?(odd number)9
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

思考:这道题主要的思路是1,菱形分上下两块,用两个循环打印。2,推断出每一行打印的规律,即‘ ’和‘*’的个数规律。