首页 > 编程语言 >如何用python语言打印菱形?

如何用python语言打印菱形?

时间:2024-10-09 14:50:03浏览次数:8  
标签:end python 打印 range 菱形 print row

上一篇内容,我们打印了各种三角形,今天我们一起看看如何打印出菱形?其实我们可以对菱形进行一个拆分,如下图所示:

上半部分是一个等腰三角形,下半部分是一个倒着的等腰三角形的前面再有一个空白三角形。这样分解开来,我们不难发现,有两部分都是我们写过的,只有倒三角没有写过,但是也不难,接下来请看代码。

# 打印上半部分等腰三角形
for i in range(1,6):
    for j in range(1,6-i):
        print(" ",end=" ")
    for k in range(1,2*i):
        print("*",end=" ")
    print()
#打印下半部分
for i in range(1,5):
    for j in range(i):
        print(" ",end=" ")#打印空格直三角
    for k in range(1,2*(5-i)):
        print("*",end=" ")#打印倒三角
    print()

这里打印倒三角时为什么范围是2*(5-i)呢?

蓝色三角形部分“*”的数量是从7、5、3、1依次递减的,当我们外层循环的i=1时,2*(5-i)为8,range()函数不取后边界,刚好为7,这就是2*(5-i)的由来。

当然这是我们固定了菱形的行数的情况,如果需要根据自己的需求改变菱形的大小,则需要从键盘输入菱形的行数。但是在输入的时候,我们必须注意一个问题,因为菱形都是单数行,所以输入的数字必须是单数才可以。这里便需要用到判断,那如果输入的是双数就结束程序吗?显然这不是我们想要得到的结果,所以还会加入循环的内容。将判断作为循环的条件即可实现这一内容。 

row=eval(input("请输入菱形的行数:(必须为奇数)"))
while(row%2==0):
    print("请重新输入菱形的行数")
    row = eval(input("请输入菱形的行数:(必须为奇数)"))

 接下来根据我们刚才对菱形的拆分可以发现,菱形的上半部分的计算方式为(row//2+1),所以上半部分代码调整后为:

top_row=row//2+1   
for i in range(1,top_row+1):
    for j in range(1,top_row+1-i):
        print(" ",end=" ")
    for k in range(1,2*i):
        print("*",end=" ")
    print()

 下半部分的行数的计算方式为(row//2),下半部分代码调整为:

bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(i):
        print(" ",end=" ")#打印空格直三角
    for k in range(1,2*(bottom_row+1-i)):
        print("*",end=" ")#打印倒三角
    print()
这样我们不需要去修改代码内容,从键盘输入菱形的行数便可以打印出相对应大小的菱形。运行效果如图所示:

 

标签:end,python,打印,range,菱形,print,row
From: https://blog.csdn.net/weixin_46248413/article/details/142745951

相关文章

  • (2024最新毕设合集)基于SpringBoot的乡村书屋小程序-31881|可做计算机毕业设计JAVA、PHP
    摘要随着信息技术的快速发展和互联网的广泛普及,数字化服务的需求不断增长,乡村书屋作为传统的文化服务机构也需要适应这一变革。本研究将使用Java开发技术,通过springboot作为框架,结合微信小程序,和MySQL作为数据存储的技术,开发一套功能齐备可移动的乡村书屋小程序,旨在提升乡......
  • python静默活体检测接口集成-人脸识别API-人脸认证
    静默活体检测是一种不需要用户主动配合(如眨眼、点头等)的活体检测技术,通常通过摄像头采集用户的人脸图像,结合计算机视觉与AI算法来判断用户是否为真人。这项技术被广泛应用于身份验证、金融交易安全、智能门禁等领域。确定接口供应商和接口规范在集成静默活体检测功......
  • python/NumPy库的使用
    1.NumPy的主要特点:高性能的多维数组对象:NumPy的核心是ndarray,它是一个高性能的多维数组对象。广播功能:NumPy提供了广播(broadcasting)功能,允许不同形状的数组进行数学运算。集成C/C++代码:NumPy可以无缝集成C/C++代码,提高性能。广泛的数学函数库:提供了大量的数学函数,包括线性代数......
  • 基于python+flask框架的研招信息管理和预测系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育普及率的提升和就业竞争的加剧,越来越多的学生选择继续深造,报考研究生的人数逐年攀升。然而,研究生招生信息的管理和获取却面临......
  • 基于python+flask框架的中医古方名方信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景中医作为中华民族的传统医学,承载着千年的智慧与经验。在浩瀚的中医典籍中,古方名方犹如璀璨的星辰,闪烁着独特的光芒。这些古方名方不仅蕴含......
  • 基于python+flask框架的医院门诊预约挂号系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗技术的不断进步和人们健康意识的日益增强,医院门诊的就诊需求呈现出快速增长的趋势。传统的挂号方式往往存在排队时间长、挂号效率......
  • 深入理解Python的生成器与迭代器:编写高效的代码
    深入理解Python的生成器与迭代器:编写高效的代码在Python编程中,生成器(Generators)和迭代器(Iterators)是编写高效代码的重要工具。它们帮助我们节省内存、优化性能,尤其在处理大数据时表现尤为出色。这篇博客将深入探讨生成器与迭代器的工作原理、如何使用它们编写高效代码,并通......
  • Python爬虫爬取快手视频代码
    importpprintimportrequestsimportosimportreimportjsondefget_response(url,keywords,pcursor):hearders={‘Accept’:‘/’,‘Accept-Encoding’:‘gzip,deflate,br’,‘Accept-Language’:‘zh-CN,zh;q=0.9’,‘Connection’:‘keep-alive’,......
  • Python绘制--绘制心形曲线
    今天,我们将通过Python代码来绘制一个心形曲线,这是一个经典的数学表达。一、心形曲线的数学原理心形曲线,也被称为心脏曲线,是一个代数曲线,可以通过参数方程定义。其数学表达式如下:x=16sin⁡3(t)x=16sin3(t)y=13cos⁡(t)−5cos⁡(2t)−2cos⁡(3t)−cos⁡(4t)y=13cos(t)−5c......
  • 基于Python旅游指南系统的设计与实现-计算机毕设 附源码 24393
    基于Python旅游指南系统的设计与实现目 录1绪论1.1选题背景和意义1.2国内外研究现状1.3论文结构与章节安排2 系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 操作可行性分析2.1.3经济可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非......