Python一次菱形练习经历

Python菱形打印

今天做一个打印菱形的练习,利用边长和对角线的关系来实现。

#输入菱形边长(可以输入任意边长)
n=int(input('Please input diamond\'s Side length: '))

# 打印对角线长度(对角线长度和边长的关系应该是2n-1)
diagonal = 2 * n - 1

# 打印空格长度(菱形具有对称性,所以第一个“*”就是对角线的正中间,所以对角线的一半也就是第一行的空格数)
space_num = diagonal // 2

# 第二次循环计数(初学者对Python代码还不熟悉,对于这个循环次数怎样融入到代码中还在思考)
space_num1=1

#  循环次数是以对角线为参考(diagonal+1:为什么这样做,只是单纯的为了计算空格数)
for i in range(1,diagonal+1):
    if i <= n:
        print(" " * space_num + (2 * i -1) * "*")                # 打印上半个三角形
        space_num -= 1
    else:
        print(" " * space_num1  + (diagonal-2) * "*")			#  打印下半个三角形
        diagonal -=2												# 下半个三角形"*"数量正好是依次比对角线少两个
        space_num1 += 1

Please input diamond's Side length: 4
   *
  ***
 *****
*******
 *****
  ***
   *
  由于初学Python,所以代码中没有使用Python内置函数,只用了基础语法来实现,而且还存在许多需要优化的部分希望大家帮助指正并改进。
写完后发现有好多简单高效的代码,但是毕竟是辛苦实现的,所以还是share出来吧。

你可能感兴趣的:(Python练习笔记)