[oeasy]python0033_回车_carriage_return_figlet_字体变大

简介: [oeasy]python0033_回车_carriage_return_figlet_字体变大

 

回到开头

回忆上次内容

    • 进程前后台切换
      • ctrl + z 把当前进程切换到后台并暂停
      • jobs 查看所有作业
      • fg 可以把后台进程再切回前台
        • fg %1 可以把指定的任务切回前台
          • bg 可以让进程在后台运行
            • 进程查询
              • ps -elf 查看所有进程信息
              • ps -lf 查看本终端相关进程信息
              • kill -9 PID 给进程发送死亡信号
              • pstree -h 可以查看进程树
                • 运行多个 python3 show_time.py 的话
                  • 各个进程独立
                  • python3 show_time.py 大概 7M
                  • 各占内存
                    • 这个切进程很好用
                      • 不过运行进程的时候总是满屏刷时间
                        • 可以固定在屏幕的某个位置刷新时间吗?🤔

                        回到从头

                          • 我们重新去游乐场
                            • \n是我们熟悉的转义字符
                            • 我们先复习一下\n

                              image.gif编辑

                                • 这次把 \n 换成 \r
                                  • \r的作用是回到行头
                                  • 如果原来输出的字符串比新的长
                                    • 怎么办呢?

                                        return

                                          • \r
                                            • 回车return
                                            • 只负责回到行头
                                            • 不换行

                                              image.gif编辑

                                                • 过程
                                                  • 先输出abcdef
                                                  • 然后回到行头
                                                  • 再输出123
                                                  • 结果就是123def
                                                    • 不要翻篇
                                                      • 自己尝试修改show_time.py
                                                      • 让输出时间固定在一行

                                                        结合程序

                                                          • 这个程序和 sleep 的结合很简单
                                                            • 只需要把输出的字符串前面加上\r
                                                            • 并且把结尾默认的 end="\n"
                                                              • 换成 end=""

                                                                  image.gif编辑

                                                                    • 试验成功
                                                                      • 真的定在那儿刷新了

                                                                        突发奇想

                                                                        image.gif编辑

                                                                          • 如果我把结束符设置为"\r"会如何呢?

                                                                          尝试

                                                                          #!usr/bin/python3

                                                                          import time

                                                                          while True:

                                                                             print(time.asctime(),end='\r')

                                                                             time.sleep(1)

                                                                            • 想到就去试试

                                                                            image.gif编辑

                                                                              • 果然
                                                                                • 不出所料
                                                                                • 都给删除了
                                                                                  • 没事
                                                                                    • 试了
                                                                                    • 也就快乐了

                                                                                      新问题

                                                                                        • 还有就是字有点小
                                                                                          • 可以变大么?

                                                                                            image.gif编辑

                                                                                              • 要清清楚楚看报时

                                                                                              字体变大

                                                                                              #安装figlet

                                                                                              sudo apt install figlet

                                                                                              #运行figlet

                                                                                              figlet "oeasy"

                                                                                              #利用管道使用figlet

                                                                                              echo "oeasy" | figlet

                                                                                                • 尝试使用

                                                                                                image.gif编辑

                                                                                                  • 为什么可以变大呢?

                                                                                                  寻找原理

                                                                                                  image.gif编辑

                                                                                                    • figlet有专门的大字体字库
                                                                                                      • 通过映射可以将字体变大

                                                                                                        打开字形库

                                                                                                          • 把具体的ascii字符
                                                                                                            • 映射到更大的字符组合上

                                                                                                              image.gif编辑

                                                                                                                • 这些字形库的次序是如何的呢?

                                                                                                                字形次序

                                                                                                                  • 对比左右组

                                                                                                                  image.gif编辑

                                                                                                                    • 次序是按照ascii码表的次序

                                                                                                                    管道原理

                                                                                                                      • 管道运算符 |
                                                                                                                        • 就是水管子

                                                                                                                          image.gif编辑

                                                                                                                            • 管子接好了
                                                                                                                              • 水怎么流呢?

                                                                                                                                流动

                                                                                                                                  • 把 echo "oeasy"的输出结果
                                                                                                                                    • 当做 figlet 的输入参数
                                                                                                                                    • 再进行输出

                                                                                                                                      image.gif编辑

                                                                                                                                        • 这有点亚文化啊 😄

                                                                                                                                        文艺起来

                                                                                                                                          • 可以写一些关于青春、励志、爱情的句子
                                                                                                                                            • 就更亚文化了😄

                                                                                                                                              image.gif编辑

                                                                                                                                                • figlet 有别的字体么?

                                                                                                                                                figlet 字体

                                                                                                                                                  • 控制字体
                                                                                                                                                    • -f

                                                                                                                                                      image.gif编辑

                                                                                                                                                        • 实际效果

                                                                                                                                                        image.gif编辑

                                                                                                                                                          • 还有什么可以控制吗?

                                                                                                                                                          位置控制

                                                                                                                                                            • 控制左中右
                                                                                                                                                              • -r、-c、-l

                                                                                                                                                                image.gif编辑

                                                                                                                                                                  • 现在尝试把show_time.py整合进来
                                                                                                                                                                    • show_time.py 的结果
                                                                                                                                                                    • 通过管道流到 figlet

                                                                                                                                                                      尝试整合

                                                                                                                                                                        • 运行失败了

                                                                                                                                                                        image.gif编辑

                                                                                                                                                                          • 我想先把那个\r去掉
                                                                                                                                                                            • 但是还是不行
                                                                                                                                                                            • 循环和延迟都阻碍往管道里送东西
                                                                                                                                                                            • 只能只保留输出再试试

                                                                                                                                                                              #!/usr/bin/python3

                                                                                                                                                                              import time

                                                                                                                                                                              print(time.asctime())

                                                                                                                                                                                • 把原来show_time.py文件修改了
                                                                                                                                                                                  • 循环延迟都删除了
                                                                                                                                                                                  • 只纯纯输出时间

                                                                                                                                                                                    最终

                                                                                                                                                                                    image.gif编辑

                                                                                                                                                                                      • 保存并退出
                                                                                                                                                                                      • 在shell里运行
                                                                                                                                                                                        • python3 show_time.py
                                                                                                                                                                                          • 在shell里面输出重定向
                                                                                                                                                                                            • python3 show_time.py | figlet

                                                                                                                                                                                              输出

                                                                                                                                                                                                • 输出是可以的
                                                                                                                                                                                                  • 但是不会刷新
                                                                                                                                                                                                  • 而且太大了
                                                                                                                                                                                                  • 超过一行了

                                                                                                                                                                                                    image.gif编辑

                                                                                                                                                                                                      • 不过至少可以出现一次时间了

                                                                                                                                                                                                      总结

                                                                                                                                                                                                        • \r
                                                                                                                                                                                                          • 可以让输出位置回到行首
                                                                                                                                                                                                          • 原位刷新时间
                                                                                                                                                                                                            • 如果想要的是大字符效果
                                                                                                                                                                                                              • 需要使用 figlet
                                                                                                                                                                                                              • 但同时还希望能刷新

                                                                                                                                                                                                                image.gif编辑

                                                                                                                                                                                                                  目录
                                                                                                                                                                                                                  相关文章
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  1月前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  Unix Linux 程序员
                                                                                                                                                                                                                  [oeasy]python053_学编程为什么从hello_world_开始
                                                                                                                                                                                                                  视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
                                                                                                                                                                                                                  114 80
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  1月前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  人工智能 C语言 Python
                                                                                                                                                                                                                  [oeasy]python051_什么样的变量名能用_标识符_identifier
                                                                                                                                                                                                                  本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
                                                                                                                                                                                                                  116 69
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  7天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  人工智能 Unix Java
                                                                                                                                                                                                                  [oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
                                                                                                                                                                                                                  本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
                                                                                                                                                                                                                  35 9
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  12天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  C语言 Python
                                                                                                                                                                                                                  [oeasy]python058_一句话让python崩了
                                                                                                                                                                                                                  本文介绍了如何通过重新赋值`__builtins__`使Python环境崩溃,并探讨了下划线的来历及其在编程中的作用。文章回顾了上次内容,展示了覆盖内建模块导致系统崩溃的过程,解释了恢复方法,以及PEP 8规范中关于空格使用的建议。最后,文章总结了下划线在变量定义和提高代码可读性方面的重要性,并简述了其从打字机时代到计算机时代的演变。
                                                                                                                                                                                                                  23 10
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  22天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  Python
                                                                                                                                                                                                                  [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
                                                                                                                                                                                                                  本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
                                                                                                                                                                                                                  38 14
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  14天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  Python
                                                                                                                                                                                                                  [oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
                                                                                                                                                                                                                  本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
                                                                                                                                                                                                                  25 3
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  16天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  存储 Python
                                                                                                                                                                                                                  [oeasy]python056_python中下划线是什么意思_underscore_理解_声明与赋值_改名字
                                                                                                                                                                                                                  在Python中,下划线有多种用途。单下划线(_)常用于避免命名冲突,如将`max`改为`max_`以保留内置函数功能。双下划线(__var__)通常用于特殊方法和属性,如`__name__`、`__doc__`等。此外,单下划线(_)在交互式解释器中表示上一次表达式的值,但不建议作为普通变量名使用。总结:下划线用于避免命名冲突及特殊标识。
                                                                                                                                                                                                                  21 1
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  1月前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  C语言 Python
                                                                                                                                                                                                                  [oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
                                                                                                                                                                                                                  本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
                                                                                                                                                                                                                  35 9
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  2天前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  存储 人工智能 Python
                                                                                                                                                                                                                  [oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
                                                                                                                                                                                                                  本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
                                                                                                                                                                                                                  7 0
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  1月前
                                                                                                                                                                                                                  |
                                                                                                                                                                                                                  Unix 编译器 C语言
                                                                                                                                                                                                                  [oeasy]python052_[系统开发语言为什么默认是c语言
                                                                                                                                                                                                                  本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
                                                                                                                                                                                                                  28 5