show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- for 循环可以遍历宝塔的层数
- range 对象
- list 对象
- 还记得我们以前输出的小动物吗?
- 用\e来控制输出的位置
- 我们可以让输出的小动物移动起来吗?🤔
- 先回顾操作大全
- CSI 是
- Control Sequence Introducer
- 就是esc加[
- esc就是
- "\033"
- \033[nA 光标上移 n 行
- \033[nB 光标下移 n 行
- \033[nC 光标右移 n 行
- \033[nD 光标左移 n 行
- \033[y;xH 设置光标位置
- \033[2J 清屏
- \033[K 清除从光标到行尾的内容
- \033[s 保存光标位置
- \033[u 恢复光标位置
- \033[?25l 隐藏光标
- \033[?25h 显示光标
- 我们先试试\033[2J
print("\033[2J")
\033
是转义序列\33
是\033
的省略写法33
是 esc序号的 8 进制数形态- 也可以写成 16 进制形态
\x1b
- J 是模式选择
- 清屏模式
- 分为四种清屏
- 0J - 从光标清到屏幕结束
- 1J - 从光标清到屏幕开头
- 2J - 整屏幕清
- 3J - 整屏幕清并选择清空滚动缓存
print("\33[1;1Hoeasy")
- 终端屏幕默认 80*24
- 经过验证确实是80*24
- 尝试控制光标输出位置
- H 是选择模式
- 1;1 指的是屏幕左上角
- 这里指的是终端
- 横向80字符
- 纵向24字符
- 1;1 指的是左上角
- 中间分割用的是;
- 设置好了之后输出后面的字符 oeasy
- 这里指的是终端
- 可以先清屏再输出么?
print("\33[2J")
print("\33[1;1Hoeasy")
print("\33[2J\33[1;1Hoeasy")
print("\33[2J\33[10;10Hoeasy")
- 终端接受到了这样一串字符串
- "\33[2J\33[1;1Hoeasy"
- \33[2J 终端接收到后清屏
- \33[1;1H 终端接收到后设置光标
- 终端输出 oeasy
- "\33[2J\33[10;10Hoeasy"
- 先清屏
- 再在(10,10)坐标输出
oeasy
- 退出游乐场
sudo apt install cowsay
cowsay -f hellokitty "oeasy"
- 然后用三引号的方式去原样输出这个图像
%s/\\$/\\\\/
- 替换所有结尾处的反斜杠
- for 是一个循环
- 让 i 从 1 到 10
- 每个位置愣一秒
- str 把数字 i 变成字符串好相加
- 纵向可以了
- 横向可以么?
- 尝试批量
- 替换开头部分
- 5,13s/^/ print(" " * i + "/
- 5,13 范围
- s 替换
- /分隔开匹配部分和待替换部分
- 匹配部分为
^
行头位置 - 待替换部分为
print(" " * i + "
- 匹配部分为
- 5,13s/$/")/
- 5,13 范围
- s 替换
- /分隔开匹配部分和待替换部分
- 匹配部分为 $ 行尾位置
- 待替换部分为")
- 这代码应该如何理解呢?
- " "*i 就是输出 i 个空格
- 如果我想
- 既要横向运动
- 又要纵向运动
- 斜着走
- 可以么?
- 这个第四句好长
- 应该如何理解呢?
- 其实还是字符串的拼合运算
- 可以控制倾斜角度吗?
- 给i翻4倍
- 就可以控制倾斜角度
- 如果我还想让猫说出时间
- 还能刷新怎么办呢?
- 找到前面的输出时间的 py 函数
#!/usr/bin/python3
import time
localtime = time.strftime('%H:%M:%S')
print(localtime,end="")
- 先验证一下
- 然后尝试整合
-
这样就可以
- 既移动
- 又刷新时间了
-
如果我想让hellokitty每秒出现在一个随机位置
-
怎么办呢?
- x大致在1到14
- y大致在1到55
- 用 cowsay 和 hellokitty 玩了这么久
- cowsay有没有给hellokitty付版权费呢?
- hellokitty是版权宣传大使
- 不过hello kitty是谁做的呢?
- 1969年
- 比利时画家雷·古森
- 创作了一个名叫米思蒂的可爱小猫形象
- 一开始米思蒂是出现在连环画中
- 不过由于米思蒂的形象非常讨喜
- 深入人心
- 因此在70年代
- 它也被改编成了动画
- 风靡了欧美
- 米思蒂就是最初原创者么?
- 也许要追溯到第一个画岩画的人
- 画岩画的时候还没有会对岩画声明版权
- 那个时候什么分不清什么是猫什么是老虎
- 因为猫那个时候可能还没有被驯化
- 不过直至今日猫也没有被完全驯化
- 不过我们汉字已经把这个画法确立了
- 并且规定出每一笔的次序
- 叫做笔顺
- 错了还要重写
- 谁又曾经给造出汉字的仓颉以版权呢?
- 这其实还是在规范着脑中的概念
- 这是虚拟对于真实的模拟对象
- 没有一只长得和汉字或者卡通一模一样
- ฅ( ̳• ·̫ • ̳)
- 没有一只会发出喵喵的标准叫声
- 喵语也没有标准的拼音
- 当然更不知道
- hellokitty是一个有版权的形象
- 甚至成为了宣传版权的的大使
- [逃···ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘
- 我们进化了 \33 控制字符串
- 可以清屏
- 也可以指定光标位置进行输出
- 在此基础上
- 可以让hello kitty
- 横向移动
- 纵向移动
- 斜着移动
- 报时移动
- 随机乱动
- for循环还能干什么?
- 只要是 iterable 的对象就可以
- iterable 的对象都有什么?🤔
- 我们下次再说!👋