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