思路如下:

(1)先打印一个星号并换行

  

print("*")

(2)打印一行6个星号

  

for i in range(6):
print("*", end=" ")

(3)打印6列星号

  

for i in range(6):
print("*")

(4)打印6行6列

  

for i in range(6):
for j in range(6):
print("*",end=" ")
  # 每打印一行就换行
print()

(5)金字塔型是由下面图形转成的,先打印此图形

  

  控制内层循环的打印。观察上图,发现如下规律:

    

  则让内层循环 j<=i,就可以实现。i 控制行数,j 控制列数。比如:当 i=0 时,内层循环1次,j=0,j<=i,当 j++ 时,就跳出内层循环;当 i=1 时,内存循环2次,j=0 和 j=1 的情况,当 j=1,j++,则 j=2,j<=i 则不成立,跳出内存循环。以此类推。

for i in range(6):
for j in range(i+1):
print("*",end=" ")
print()

(6)当 j<i,那么每行少一个星号,则第一行会被抹掉,如下图所示:

  

for i in range(6):
for j in range(i):
print("*",end=" ")
print()

(7)空格和星号相结合的情况,完整金字塔就是被空格顶过去的。

  打印6个空格,后跟星号

    

for i in range(6):
print(" ", end=" ")
print("*")

  每行5个空格,后跟一个星号

    

for i in range(6):
for k in range(5):
print(" ", end=" ")
print("*")

有了以上的基础,下面分析打印完整金字塔型:

(8)根据下图所示,我们已经可以打印出左边的图形,然后通过控制空格,把它转成右边的图形。

        

  观察后发现如下规律,右边图形相对于左边的图形。行数仍然是6行,即 i=6,先不考虑空格的问题,每一行星星的个数,如下所示:

    

  可以得出:j<=(2*i)。当i=0时,j=0,打印一个星号,必须j<=,参考上面的讲解;当i=1时,j=2,因为是j<=i,j取值0,1,2,循环三次,打印3个星号。以此类推。

    

for i in range(6):
for j in range(2*i+1):
print("*",end=" ")
print()

(9)在(8)的基础上,插入空格。对比发现,如下规律:

  

  再加一层内循环,在星号内循环的前面,先打印空格,然后再打印相应的星号。

  可以得出:k<6-i-1;当 i=0 时,k<5,k取值0,1,2,3,4,循环5次,打印5个空格。依次类推。

  

for i in range(6):
for k in range(5-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*", end=" ")
print()

(10)菱形的上半部分已经打印出,下面考虑如何打印下半部分,最上面的11个星号,已经在上半部分给出,只考虑打印11个星号以下的图形。如图:

  

  观察发现,下半部分共5行,即 i=5 。有如下的规律,如下图所示:

    

  空格内存循环,k<i+1,星号内层循环,m<(9-3*i)+i。

  (9-3*i)+i,是如何得出?通过数学归纳法,发现:

   

for i in range(5):
for k in range(i+1):
print(" ", end=" ")
for m in range((9-3*i)+i):
print("*",end=" ")
print()

(11)完整的菱形,通过(10)和(11),我们已经可以打印出完整的菱形。

  

for i in range(6):
for k in range(5-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*", end=" ")
print()
for i in range(5):
for k in range(i+1):
print(" ", end=" ")
for m in range((9-3*i)+i):
print("*",end=" ")
print()

  

Python打印矩形、直角三角形、等腰三角形、菱形的更多相关文章

  1. Python 打印矩形、直角三角形、等腰三角形、菱形

    # 1)打印一个星号 print('*') #2)打印一行6个星号 * * * * * * for i in range(6): print('*',end=' ') #3)打印6列星号 * * * ...

  2. for循环打印等腰三角形、直角三角形、菱形

    一.等腰三角形 package s1; import java.util.Scanner; public class C31 { public static void main(String[] ar ...

  3. python打印菱形

    1.分析:首先python,我们分析了菱形的成分.双喜鸟seo输入2时,打印三行菱形:输入3时,打印五行菱形.也就是说,根据输入数字A,打印第2a-1行的菱形.菱形由一个三角形和一个倒三角形组成,两个 ...

  4. Python打印格式化与字符串

    关于Python打印格式化与字符串,比较全面的总结,希望对大家有帮助~ # -*- coding: cp936 -*- ''' 打印格式 ''' print "a" print & ...

  5. python打印表格式数据,留出正确的空格和段落星号或注释

    python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...

  6. python 打印 emoji

    python 打印 emoji 如需转发,请注明出处:小婷儿的python  https://www.cnblogs.com/xxtalhr/p/10486506.html 一.Unicode字符集: ...

  7. python打印列表的下标和值的例子:

    python打印列表的下标和值的例子: In [1]: list01=[1,4,5] In [10]: def funct01(ll):   ....:     for index,value in ...

  8. 【Python】Python 打印和输出更多用法。

    Python 打印和输出 简述 在编程实践中,print 的使用频率非常高,特别是程序运行到某个时刻,要检测产生的结果时,必须用 print 来打印输出. 关于 print 函数,前面很多地方已经提及 ...

  9. python 打印 九九表

    用Python 打印九九表. print 每打印一行默认会带有换行, 在print语句后加上,end = 't' 会变成tab. 排版会好点. def main(): for i in range(1 ...

随机推荐

  1. django2.0 路由规则

    Django2.0中URL的路由机制 路由是关联url及其处理函数关系的过程.Django的url路由配置在settings.py文件中ROOT_URLCONF变量指定全局路由文件名称. Django ...

  2. usdt转入转出出入金开发

    usdt转入转出出入金开发 比特币协议 -> Omni 层协议 -> USDTUSDT是基于比特币omni协议的一种代币: https://omniexplorer.info/asset/ ...

  3. eclipse 依赖别的 工程 断点进不去

    maven Debug 发现进不了断点. 点击右键-->Properties-->Java Compiler-->Classfile Generation, 勾选上Add line  ...

  4. 4、CentOS6.5下安装php5.3

    操作系统:CentOS6.5 环境:Apache2.2安装成功.可查看:http://www.centoscn.com/image-text/install/2014/0505/2910.html M ...

  5. 每天学点Linux命令之grep 和 wc命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表 ...

  6. vue 加载更多

        <template>   <div>     <ul>       <li v-for="item in articles"> ...

  7. LoggerFactory.getLogger用法

    使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类 如:Logger logger = LoggerFactory.getLogger(com.lz.Test.class);     ...

  8. php 获取淘宝搜索词 内容

    $s = file_get_contents('http://suggest.taobao.com/sug?extras=1&code=utf-8&callback=g_ks_sugg ...

  9. 判断PC或mobile设备

    js 限制: <script type="text/javascript"> function uaredirect(f){try{if(document.getEle ...

  10. How to Conduct High-Impact Research and Produce High-Quality Papers

    How to Conduct High-Impact Research and Produce High-Quality Papers Contents From Slide Russell Grou ...