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出来吧。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值