Python打印矩形、直角三角形、等腰三角形、菱形
思路如下:
(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打印矩形、直角三角形、等腰三角形、菱形的更多相关文章
- Python 打印矩形、直角三角形、等腰三角形、菱形
# 1)打印一个星号 print('*') #2)打印一行6个星号 * * * * * * for i in range(6): print('*',end=' ') #3)打印6列星号 * * * ...
- for循环打印等腰三角形、直角三角形、菱形
一.等腰三角形 package s1; import java.util.Scanner; public class C31 { public static void main(String[] ar ...
- python打印菱形
1.分析:首先python,我们分析了菱形的成分.双喜鸟seo输入2时,打印三行菱形:输入3时,打印五行菱形.也就是说,根据输入数字A,打印第2a-1行的菱形.菱形由一个三角形和一个倒三角形组成,两个 ...
- Python打印格式化与字符串
关于Python打印格式化与字符串,比较全面的总结,希望对大家有帮助~ # -*- coding: cp936 -*- ''' 打印格式 ''' print "a" print & ...
- python打印表格式数据,留出正确的空格和段落星号或注释
python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...
- python 打印 emoji
python 打印 emoji 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10486506.html 一.Unicode字符集: ...
- python打印列表的下标和值的例子:
python打印列表的下标和值的例子: In [1]: list01=[1,4,5] In [10]: def funct01(ll): ....: for index,value in ...
- 【Python】Python 打印和输出更多用法。
Python 打印和输出 简述 在编程实践中,print 的使用频率非常高,特别是程序运行到某个时刻,要检测产生的结果时,必须用 print 来打印输出. 关于 print 函数,前面很多地方已经提及 ...
- python 打印 九九表
用Python 打印九九表. print 每打印一行默认会带有换行, 在print语句后加上,end = 't' 会变成tab. 排版会好点. def main(): for i in range(1 ...
随机推荐
- 【转载】selenium与自动化测试成神之路
Python selenium —— selenium与自动化测试成神之路 置顶 2016年09月17日 00:33:04 阅读数:43886 Python selenium —— selenium与 ...
- 20165215 2017-2018-2 《Java程序设计》第4周学习总结
20165215 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容总结 chapter5 子类与父类 子类的定义使用关键字extends 任何类都是Object类的 ...
- Linux服务器配置---安装nfs
安装nfs NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. 由于NFS支持的功能很多,不同功能会使用不同程序 ...
- Vue2.0,Express实现的简单跨域
https://www.cnblogs.com/kevin-zjy-blog/p/7357220.html 1. 通过jsonp跨域2. document.domain + iframe跨域3. lo ...
- Pony 编程语言介绍
Pony,一种“Rust 遇上 Erlang”的语言,让开发快捷.安全.高效.高并发的程序更简单. 在 Wallaroo Labs,我是工程副总裁,我们正在构建一个用 Pony 编程语言编写的 高性能 ...
- P1216 数字金字塔
P1216 数字金字塔 我们可以用 f [ i ] [ j ] 表示从(1,1)出发,到达(i,j)的最大权值和. (i , j)可以由(i - 1 , j)或者(i - 1 , j - 1)转化来 ...
- ASCII字符代码表
- AJAX(表单验证)/JSON之一
## 什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 1. 异步通信:浏览器利用独立的线程与服务器进行通信, ...
- 在idea中不出现大波浪的设置
在idea中如果有重复代码时候,就会出现大波浪 ,然后,现在可以设置 Duplicated Code 的对号去掉就可以没有大波浪
- Failed to load ApplicationContext
java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...