首页技术文章正文

python【黑马python培训】

更新时间:2022年11月16日 15时43分10秒 来源:黑马程序员论坛

黑马中级程序员课程

在学习循环语句的过程中,做到一题用循环打印用“*”组成的菱形图案,图案为:
    *


   ***

  *****

*******

*********

*******

  *****

   ***

    *


    最开始的思路是将菱形分成上下两个三角形打印。上半部分为前五行的三角形,行数i,菱形数每行增加两个,满足第i行星星个数为2*i-1,而每行前面的空格数满足5-i;而下半部分为6至9行组成的三角形,星星数每行递减两个,此时第i行星星个数满足19-2*i,这样就能写两各独立的while来打印菱形。


    但在上课过程中海哥提到将图形看成9*9的正方形图案,从图案中去掉不需要打印出来的星星即可。将整个正方形图案看成一个二维坐标系,而这里要注意的是两个数轴分别为i轴与j轴,要与平面坐标系的数轴有所区分,坐标系的原点与象限取决于在写代码的时候对i、j的初始赋值和增减。i为行数,j为每行要打印的星星数。
下面是我最后完成的代码:
i = 1
while i <=9:
    j = 1
    while j <=9:
        j += 1
        if i-4 < j < i+6 and 6-i < j <16-i:
            print("*",end="")
            continue
        #不执行if里的代码时用英文空格代替*输出
        print(" ",end="")
    i += 1
    print("")
    先使用while嵌套while语句输出9*9的正方形,将整个正方形看成画板,要想输出一个上图中的菱形,可以对正方形进行切割,需要切4刀,切掉的地方用空格代替"*"。那在实现的过程中只要在双重循环中嵌套一个if判断语句,而判断条件则是对图形进行切割的四条线。
    在我所写的语句时,我将平面想象在第一象限,i和j在循环过程中依次+1递增,初始值都为1,所以图形之外最左上角为原点的第一象限,这里与一般的二维坐标系要有所区分。而if里面的四个不等式即为四条线所组成的区域,在满足这个区域内的输出“*”,而不满足的则输出空格,最后就得到所需要的菱形。除了用continue之外,用else也可以达到相同效果,因为当时上课正好提到continue的用法。
    除了在画菱形之外,只要是规则的几何图形,一旦清楚的知道需要那几条线进行切割,结合自己建的坐标系将临界值得出,就可以写出满足自己条件的不等式,在满足不等式的条件下输出“*”,不满足时输出空格(也可用其他符号代替)。这样都能画出一些规则的图形。
需要注意的点:
1.内部的星星数循环的时候每次要对星星数j重新赋值
2.if条件中逻辑关系满足and,而不是用or
3.注意清楚自己设置的变量之后再结合坐标系,求出线方程后变成不等式后注意比较运算符的开口(即注意最后所包围图形的范围)

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


分享到:
在线咨询 我要报名
和我们在线交谈!