Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形

 更新时间:2025年05月06日 09:23:06   作者:香菜退退退  
这篇文章主要给大家介绍了关于Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形的相关资料,提供了每种形状的实现代码和输出结果,需要的朋友可以参考下

【问题描述】

使用循环嵌套输出三角形、菱形

1、分别使用*打印正三角、倒三角、等边三角形、菱形、空心菱形

(1)正三角

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

1)实现代码

m=0
for w in range(1,6):  #5行
    # *的个数与行相同,range(1,2),第二行,range(1,3)
    for m in range(1,w+1):
        print('*',end='')
    print()

2)输出结果

(2)倒三角

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

1)实现代码

for i in range(1,6):
    # range(1,6) range(1,5) range(1,4),找行与列之间的关系7-1=6;7-2=5,7-3=4....
    for e in range(1,7-i):
        print('*',end='')
    print()

2)输出结果

(3)等边三角形

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

  1)实现代码

for a in range(1,6): # 外循环5行
    for b in range(1,6-a): # 倒三角形
        print(' ',end='') # 需要打印空格,不换行
    for c in range(1,a*2): # 1,3,5,7..等腰三角形,range(1,2),range(1,4),range(1,6)....
        print('*',end='')
    print()

2)输出结果

(4)菱形

(以7行为例,因为菱形是轴对称图形,可将菱形分为两部分,那就是一个正三角和一个倒三级拼接在一起了,我是将前4行一组,后3行一组)

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

1)实现代码

row=eval(input('请输入菱形的行数:'))
while row%2==0:  #判断行数的奇偶性,若为偶数则重新输入
    print('请重新输入!')
    row=eval(input('请输入菱形的行数:'))
# 输出菱形
top_row=(row+1)//2 #上半部分的行数
for t in range(1,top_row+1):
    for t2 in range(1,top_row+1-t):
        print(' ',end='')
    for t3 in range(1,t*2):
        print('*',end='')
    print() #当两个并列的for循环执行结束后,在换行执行
# 7行為例子
low_row=row//2 # 3
for l in range(1,low_row+1):
    for l2 in range(1,l+1):  #直角三角形
        print(' ',end='')
    for l3 in range(1,low_row*2-2*l+2): # 第1行-->5个,range(1,6),第2行-->3个,range(1,4),...
    # for l3 in range(1,2*(low_row+1-l)):
    # 第一次(1,low_row=3*2)=(1,6),(1,6+2)
        print('*',end='')
    print() #当两个并列的for循环执行结束后,在换行执行

2)输出结果

(5)空心菱形

{以7行为例,因为菱形是轴对称图形,可将菱形分为两部分,前4行一部分(由一个倒三角+一个挖空的等腰三角形),后三行一部分(由一个正三角+一个倒立等腰三角形),挖空的三角形可以使用if-else语句判断,if(如果)是在第一位或最后一位则打印*,else(否则)打印空格}

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

这张图我把空格都打印出来了,这样更清楚。

1)实现代码

row=eval(input('请输入菱形的行数:'))
while row%2==0:  #判断行数的奇偶性,若为偶数则重新输入
    print('请重新输入!')
    row=eval(input('请输入菱形的行数:'))
# 输出菱形
top_row=(row+1)//2 #上半部分的行数
for t in range(1,top_row+1):
    for t2 in range(1,top_row+1-t):
        print(' ',end='')
    for t3 in range(1,t*2):
        if t3==1 or t3==t*2-1:
            print('*',end='')
        else:
            print(' ',end='')
    print() #当两个并列的for循环执行结束后,在换行执行
# 7行為例子
low_row=row//2 # 3
for l in range(1,low_row+1):
    for l2 in range(1,l+1):  #直角三角形
        print(' ',end='')
    for l3 in range(1,low_row*2-2*l+2): # 第1行-->5个,range(1,6),第2行-->3个,range(1,4),...
    # for l3 in range(1,2*(low_row+1-l)):
    # 第一次(1,low_row=3*2)=(1,6),(1,6+2)
        if l3==1 or l3==(low_row*2-2*l+2)-1:
            print('*',end='')
        else:
            print(' ',end='')
    print() #当两个并列的for循环执行结束后,在换行执行

2)输出结果

总结 

到此这篇关于Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形的文章就介绍到这了,更多相关Python用*打印各种形状内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyTorch模型创建与nn.Module构建

    PyTorch模型创建与nn.Module构建

    这篇文章主要为大家介绍了PyTorch模型创建与nn.Module构建示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 使用Python实现图片转ICO格式

    使用Python实现图片转ICO格式

    这篇文章主要为大家详细介绍了如何使用Python编写一个基于PyQt5的用于将图像文件转换为ICO格式GUI应用程序,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-01-01
  • Anaconda安装OpenCV的方法图文教程

    Anaconda安装OpenCV的方法图文教程

    在Anaconda里安装OpenCV的方法有很多,下面这篇文章主要给大家介绍了关于Anaconda安装OpenCV的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Python+Jmeter实现自动化性能压测的流程步骤

    Python+Jmeter实现自动化性能压测的流程步骤

    性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据,本文给大家介绍了Python+Jmeter实现自动化性能压测的流程步骤,需要的朋友可以参考下
    2024-05-05
  • Python函数的周期性执行实现方法

    Python函数的周期性执行实现方法

    这篇文章主要介绍了Python函数的周期性执行实现方法,涉及Python使用sched模块实现函数周期性调度触发的相关技巧,需要的朋友可以参考下
    2016-08-08
  • Python字典和集合讲解

    Python字典和集合讲解

    这篇文章主要给大家假关节的是Python字典和集合,字典是Python内置的数据结构之一,是一个无序的序列;而集合是python语言提供的内置数据结构,没有value的字典,集合类型与其他类型最大的区别在于,它不包含重复元素。想具体了解有关python字典与集合,请看下面文章内容
    2021-10-10
  • Python PIL图片如何按比例裁剪

    Python PIL图片如何按比例裁剪

    这篇文章主要介绍了Python PIL图片如何按比例裁剪,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 对Python中内置异常层次结构详解

    对Python中内置异常层次结构详解

    今天小编就为大家分享一篇对Python中内置异常层次结构详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 举例讲解Python中装饰器的用法

    举例讲解Python中装饰器的用法

    这篇文章主要介绍了Python中装饰器的用法,是Python学习进阶当中的重要知识,需要的朋友可以参考下
    2015-04-04
  • Python全栈之强制转换

    Python全栈之强制转换

    这篇文章主要为大家介绍了Python强制转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12

最新评论