学习python也有一段时间了,学习的东西也不少了,就这段时间学习的循环语句,发点学习的记录,并举一个打印小星星的列子,用来总结一下。
Python中循环主要有while循环,for 循环,通过循环间的嵌套,使得循环语句变得丰富多彩。
while  循环的基本格式
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,处理的循环体
处理条件(计数器 + 1)
for 循环的基本格式
for 变量 in 集合:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
在循环体中,最常用的两个关键词,break和continue ,这针对当前循环体有效,也就是说,一个break只能打破一个循环。某一条件满足时,退出循环,不再执行后续重复的代码,用break。某一条件满足时,不执行后续重复的代码时,用关键词continue。使用循环时,通过改变处理条件,避免死循环。
下面就以打印星星为例,使用循环语句进行实现。
例:打印菱形的星星
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
方法 1.while 循环的嵌套实现菱形打印
分析:星星有9行,需要定义行计数器,作为外部循环
row = 1
# 行初始值设为1,方便计数
while row <= 5:
# 分析可以得到,前五行星星个数与行的关系为 2*row -1,在内部有小循环,打印(2*row-1)个小星星
# 每行星星第一个前,空了5-row个空格
col =1
# 定义列的计数器,初始值也为1
whilecol <= (2*row - 1):
if col == 1:
# 这里是判断是不是每行的第一个小星星,要在第一个之前打印空格
print(" " * (5-row), end="")    # end=“ ”,是保证每个小星星不换行,print函数默认换行
print("*", end="")
col += 1
row+= 1
# 这里print是外圈循环的换行
print("")
# 打印完上半部分的的星星
row = 6
while 5 < row <= 9:
# 此时,星星数目与行的关系,9-(row-5)*2
col =1
whilecol <= (9-(row-5)*2):
if col == 1:
print(" " * (row - 5), end="")
print("*", end="")
col += 1
row+= 1
# 外部换行
print("")
# 下半部分打印完成这里用了2次while循环,每个while循环中嵌套了while循环,这种嵌套能让循环体变得很美。
方法 2 for 循环,配合字符串的 center 方法
for rowin range(1, 10):
# 先对行进行遍历,也就是9行,range()左闭右开,不能取到10.
# 判断,前五行,行数与每行星星个数为2*row -1
if row <= 5:
# 星星个数输出的是字符串,可以用center方法将字符串居中,用英文空格填充,center方法的两个参数分别为指定的宽度,以及填充的内容,为了方便,选取宽度为9,空白字符填充。
print(("*" * (2 * row -1)).center(9, " "))
if row > 5:
# 后五行星星与行的关系为9-(row-5)*2
print(("*" * (9 - (row - 5) *2)).center(9, " "))
# 即可完成菱形打印
方法 3. 几何方法切割出菱形
如图,可以把菱形放到直角坐标系中,中心即为原点。可以轻易看出x为从(-4,4)
y为(-4,4)范围,然后用y=x+4,y=x-4,y=-x+4,以及y=-x-4四条之间包围起来的部分,就是目标区域。经过简单的数学分析,只要在由|x|=4与|y|=4围起的这块区域取出目标区域即可。
每一个点,都是由点x,y组成,只要满足点在直线内部这样的关系,就可以顺利切割。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
代码入下:
for x in range(-4, 5):
for yin range(-4, 5):
# 这样就可以组成一个点的集合,区域为|x|<= 4 , | y | <=4。
# 判断满足的范围
if (y <= x + 4
and y >= x - 4
and y >= -x - 4
and y <= -x + 4):
# 满足条件,就打印星星,并且内部星星不换行
print("*", end="")
# 不满足的全部打印空白字符
else:
print("", end=" ")
# 控制换行
print("")
代码的简化,根据数学关系,目标区域其实就是x的绝对值加y的绝对值小于等于4,即满足上述的目标条件。
因此,可以把if后面的条件语句改为
abs(x)+abs(y) <= 4:
其他不变,在代码编写前,只需导入math包即可
import math
具体代码为:
import math
for x in range(-4, 5):
for y in range(-4, 5):
if abs(x) + abs(y) <= 4:
print("*",end="")
else:
print("", end="")
print("")
代码已经实现了菱形的打印,也是大概的总结了一下打印小星星的方法,很简单,但是用来循环嵌套的方法,以及几何数学的灵活运用,在解决问题方面可以多方面,多角度考虑。
耽误各位宝贵的时间,写的很简陋,希望各位学友能提出宝贵的意见,上述仅仅代表个人看法,不喜勿喷,谢谢。

QQ截图20190329005603.png (12.73 KB, 下载次数: 0)

简单使用循环打印菱形小星星相关推荐

  1. Java for循环打印菱形

    Java for循环打印菱形 Java代码输出菱形的方法和思路有很多,在此分享一个稍带模块化拆分思想的解决方案,将需要输出的菱形拆分成8个模块(如下图),每个模块独立实现输出. 优点:8个模块之间耦合 ...

  2. 应用for循环打印菱形

    应用for循环打印菱形 大家的应用for循环打印菱形打的多了,我就不发了,所以我就弄了一个前头的符号: 类型如下:整数类型 方法如下:循环方法 这是箭头上的符号: 顺便提醒一句:这里有一行代码是有问题 ...

  3. python中for循环打印菱形_Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...

  4. java用循环打印菱形(可以自己输出打多少行)简单好懂

    package aa; import java.util.Scanner; public class Tg02 {public static void main(String args[]){Scan ...

  5. c语言for循环打印菱形五行,用C语言编程 输出五行菱形*。。急需啦。。大神帮忙撒。。。...

    #includevoid main() { int i,j,n;//声明i为要打印的行数,j是控制输出打印空格和星星,n是菱形为菱形的高 printf("请输入菱形的高(奇数)\t" ...

  6. while循环打印*菱形

    效果图如下图所示: 1 package myeclipseFiles2; 2 3 public class Rhombus { 4 5 public static void main(String[] ...

  7. [转载] python while循环 打印菱形

    参考链接: Python while循环 .  代码如下:    .

  8. 用java程序for循环打印菱形_编写Java程序,应用for循环打印菱形、三角形

    //输出三角形//右上 for(int m = 1; m <= 10; m++) {for (int n = 1; n <= m; n++) { System.out.print(&quo ...

  9. java用for语句实现菱形_编写Java程序,应用for循环打印菱形、三角形

    //输出三角形//左下 for(int m = 1; m <= 10; m++) {for (int n = 1; n <= m; n++) { System.out.print(&quo ...

最新文章

  1. 注意 ExecuteNonQuery() 返回值
  2. php imagick icon,php Imagick 生成图片
  3. 零基础自学python教程-零基础入门学习Python_Python教程
  4. ffmpeg 和 SDL 教程2:输出到屏幕
  5. Sparkmllib scala svm demo
  6. 浅谈数据中的偏差问题和推荐系统去偏最新研究进展
  7. Python实现二叉树的非递归先序遍历
  8. BugkuCTF-WEB题秋名山车
  9. 图解Kafka,一看就明白!
  10. linux系统安装与初用
  11. 山东大学计算机学院交叉,Xueying Qin
  12. Nacos系列:欢迎来到Nacos的世界!
  13. python爬虫怎么赚钱-《python爬虫怎么挣钱》 - 微赚接单平台
  14. python画简便的图-如何用python画M集(1)——M集原始图的画法
  15. mvvm 模板中事件没有执行的解决方案
  16. 【LeetCode】【数组】题号:*697,相同度的最短连续子数组
  17. DoraemonKit一款功能齐全的Android研发助手
  18. 怎样训练左右手协调_吉他,左右手的协调,练习的方法原来这么简单!
  19. VMware 虚拟机的使用
  20. itext文本域自动换行_itextpdf生成pdf问题汇总

热门文章

  1. mac制作icns图标
  2. HTML代码格式化工具
  3. android 一键接入新浪微博,腾讯微博,人人网,QQ空间,微信好友圈 (只需5分钟)
  4. ISCC2021—检查一下
  5. 怀化市2021年高考查询成绩,2021年怀化高考状元是谁分数多少分,历年怀化高考状元名单...
  6. 副业项目:抖音车载U盘赚钱项目
  7. matlab cdfx,在 Simulink 数据字典中使用 ASAM CDFX 数据
  8. python乘法函数_乘积(python乘法函数)
  9. Oracle存储过程打印输出错误信息、行号,快速排查
  10. 【工具】一键制作纯净ROM去除推广APP,支持线刷包卡刷包