Skip to content

Latest commit

 

History

History
313 lines (262 loc) · 10.1 KB

283-523827-玲珑塔.sy.md

File metadata and controls

313 lines (262 loc) · 10.1 KB
show version enable_checker
step
1.0
true

玲珑塔

回忆

  • 上次在for循环中使用了
    • 跳出break
    • 跳过continue
  • 还了解了数学王子高斯的一生
  • 在这个后喻时代
  • 年轻人的智力、见识势必高于老人
  • 老人也应该多向年轻人学习
  • 不是互相压制
  • 而是互相学习
  • 这比较理想化
    • 但是希望能做到
  • 我们还能用python这个新玩具
  • 玩点什么呢?🤔

玲珑塔

  • 玲珑塔,塔玲珑,玲珑宝塔第一层,
  • 一张高桌四条腿,一个和尚一本经。
  • 一个铙钹一口磬,一个木鱼一盏灯。
  • 一个金铃,整四两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第三层
  • 三张高桌十二条腿,
  • 三个和尚三本经。三个铙钹三口磬,
  • 三个木鱼三盏灯。
  • 三个金铃,十二两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第五层,
  • 五张高桌二十条腿,五个和尚五本经。
  • 五个铙钹五口磬,五个木鱼五盏灯。
  • 五个金铃,二十两,风儿一刮响哗愣。
  • 玲珑塔第七层,七张高桌二十八条腿,
  • 七个和尚七本经。七个铙钹七口磬,
  • 七个木鱼七盏灯。
  • 七个金铃,二十八两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第九层,
  • 九张高桌三十六条腿,九个和尚九本经。
  • 九个铙钹九口磬,九个木鱼九盏灯。
  • 九个金铃,三十六两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑
  • 十一张高桌四十四条腿,
  • 十一个和尚十一本经。十一个铙钹十一口磬,
  • 十一个木鱼十一盏灯。
  • 十一个金铃,四十四两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔十三层,
  • 十三张高桌五十二条腿,十三个和尚十三本经。
  • 十三个铙钹十三口磬,十三个木鱼十三盏灯。
  • 十三个金铃,五十二两,风儿一刮响哗愣。
  • 玲珑宝塔倒着数,
  • 玲珑塔,塔玲珑,玲珑宝塔十二层,
  • 十二张高桌四十八条腿,
  • 十二个和尚十二本经。十二个铙钹十二口磬,
  • 十二个木鱼十二盏灯。
  • 十二个金铃,四十八两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第十层,
  • 十张高桌四十条腿,十个和尚十本经。
  • 十个铙钹十口磬,十个木鱼十盏灯。
  • 十个金铃,四十两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第八层,
  • 八张高桌三十二条腿,
  • 八个和尚八本经。八个铙钹八口磬,
  • 八个木鱼八盏灯。
  • 八个金铃,三十二两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第六层,
  • 六张高桌二十四条腿,六个和尚六本经。
  • 六个铙钹六口磬,六个木鱼六盏灯。
  • 六个金铃,二十四两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第四层,
  • 四张高桌十六条腿,四个和尚四本经。
  • 四个铙钹四口磬,四个木鱼四盏灯。
  • 四个金铃,十六两,风儿一刮响哗愣。
  • 玲珑塔,塔玲珑,玲珑宝塔第二层,
  • 两张高桌八条腿,两个和尚两本经。
  • 两个铙钹两口磬,两个木鱼两盏灯。
  • 两个金铃,整八两,风儿一刮响哗愣。
  • 僧人数罢了玲珑塔。抬头看,满天星。地上看,有个坑。
  • 坑里看,冻著冰。冰上看,有一棵松。
  • 松上看,落著鹰。屋里看,一老僧。
  • 僧前看,一本经。经前看,点著灯。
  • 墙上看,钉著钉。钉上看,挂著弓。
  • 看著看著,眯了眼,西北乾天,刮大风。说大风,好大的风。
  • 刮散了满天星,刮平了地上坑,
  • 刮化了坑里冰,刮倒了冰上松,
  • 刮飞了松上鹰,刮走了一老僧,
  • 刮翻了僧前经,刮灭了经前灯,
  • 刮掉了墙上钉,刮崩了钉上弓。
  • 霎时间,只刮得,星散、坑平、冰化、松倒、鹰飞、
  • 僧走、经翻、灯灭、钉掉、弓崩。

分析

  • 玲珑塔总共 13 层
  • 从下往上数的是奇数
    • 1,3,5,7,9,11,13
  • 从上往下数的是偶数
    • 12,10,8,6,4,2
  • 然后就完成了
  • 希望玲珑塔是随机彩色的
  • 不要翻篇,自己动手

编程

图片描述

图片描述

  • 尝试上个颜色

上颜色

图片描述

  • 首尾都包括

图片描述

图片描述

  • 颜色单调
  • 容易重复

更多颜色

图片描述

图片描述

图片描述

  • 亮的底用黑
  • 暗的底用白

颜色搭配

图片描述

  • 可以前面搁一个数字进行调试

图片描述

图片描述

偶数层

  • 先进行列表的合并

图片描述

图片描述

再看文档

图片描述

  • for 表达式列表只被衡量一次

  • 他应该返回一个可迭代的对象

  • 迭代器产生的每一个项

  • 都会被按顺序循环到

  • 可以遍历的东西很多

  • 只要是有明确的开始结束的就可以

  • 回忆一下以前while做的循环变色

图片描述

while代码

import time
color = 0
green = 0
while color<=512:
    if color<=255:
        green = color
    elif 255<color<512:
        green = 511 - color
    else:
        green = 0
        color = 0
    print("\33[2J\33[38;2;0;"+str(green)+";0m")
    print("""
                                aj##########a,
                               _Wf  ##########
                               jW#Ld##########
                           .aaaaaaaaaaaW###0#0  __
                         aW#WWWWWWWWWWW###0##0 =%%%%=
                        jWW#W##W#########0##0# x%3%3%;
                        WW#############0###0P'_3%%3%3%
                        ########!\___________33%33%33%
                        4######'=%%3%33333333333%3%33]
                        -###### 3%%%%%%%3%333%3%3333%`
                         -!4##W.%%%3%3%%%%%%x%%%3%%"`
                               :%3%%3%3s_a=uxx
                               :%%33%33%37` !3
                                "%3%33333%__3^
                                  -""""""""'
                                         aa
           j#P!!!0#a,            ##      ##
           jW1    -0# _a,    aa  ##aaa,  ##aaaa,     _aaaa,    _aaaaaa
           jW1    _0# "#L   _#P  ##!!!'  0#'  !#L   d#!' !NW,  j#'  !#L
           jWLaj00P!   ?#1  d0'  #0      ##    4#  j#l     #L  jW    j#
           jW1          4#,_0'   #0      0#    j#  jW1    _0P  jW    jW
           jW1           4#WP    j#Laaa  ##    jW   4#a  aJ#'  jW    jW
           -!'            #P      -!!!!  !!    -!    -!!!!'    -!    -!
                      aaaWP
                      \33[0m""")
    color = color + 1
    time.sleep(0.02)

修改为for

图片描述

import time
color = 0
green = 0
for color in range(512):
    if color<=255:
        green = color
    elif 255<color<512:
        green = 511 - color
    else:
        green = 0
        color = 0
    print("\33[2J\33[38;2;0;"+str(green)+";0m")
    print("""
                                aj##########a,
                               _Wf  ##########
                               jW#Ld##########
                           .aaaaaaaaaaaW###0#0  __
                         aW#WWWWWWWWWWW###0##0 =%%%%=
                        jWW#W##W#########0##0# x%3%3%;
                        WW#############0###0P'_3%%3%3%
                        ########!\___________33%33%33%
                        4######'=%%3%33333333333%3%33]
                        -###### 3%%%%%%%3%333%3%3333%`
                         -!4##W.%%%3%3%%%%%%x%%%3%%"`
                               :%3%%3%3s_a=uxx
                               :%%33%33%37` !3
                                "%3%33333%__3^
                                  -""""""""'
                                         aa
           j#P!!!0#a,            ##      ##
           jW1    -0# _a,    aa  ##aaa,  ##aaaa,     _aaaa,    _aaaaaa
           jW1    _0# "#L   _#P  ##!!!'  0#'  !#L   d#!' !NW,  j#'  !#L
           jWLaj00P!   ?#1  d0'  #0      ##    4#  j#l     #L  jW    j#
           jW1          4#,_0'   #0      0#    j#  jW1    _0P  jW    jW
           jW1           4#WP    j#Laaa  ##    jW   4#a  aJ#'  jW    jW
           -!'            #P      -!!!!  !!    -!    -!!!!'    -!    -!
                      aaaWP
                      \33[0m""")
    color = color + 1
    time.sleep(0.02)
  • 这样可以明确地遍历[0,512)
  • 也就是闪动一轮
  • 然后给他外圈加一个while True死循环就可以了

代码

图片描述

  • 注意
    • 外圈用while True无限循环
    • 内圈用for可以遍历数字
  • 还能玩点什么呢?

练习

  • 比如八八六十四卦
  • 比如所有索引颜色的遍历
  • 比如256个灰阶颜色的遍历
  • 你还能想到什么么?
  • 可以留言告诉我么?

总结

  • for 循环可以遍历宝塔的层数
    • range 对象
    • list 对象
  • 还记得我们以前输出的小动物吗?
  • 用\e来控制输出的位置
  • 我们可以让输出的小动物移动起来吗?🤔
  • 下次再说 👋