[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

时间:2022-12-01 20:58:52

结尾字符串(end)

回忆上次内容

  • ​python3​​ 的程序是一个 5.3M 的可执行文件
  • ​python3​​ 里面存的是 cpu 指令
  • 可以执行的那种
  • 我们可以把指令对应的汇编找到
  • ​objdump -d ~/python3 > python3.asm​
  • 汇编语句是和当前机器架构的指令集相关的
  • ​uname -a​​可以查询指令集
  • 我们执行的过程其实是
  1. 系统先执行​​python3​​这个可执行文件
  • 在内存中构建解释器
  1. 将参数​​hello.py​​ 放入解释器
  2. ​python3​​解释器 对于​​hello.py​​ 解释执行
  • 在显示器输出了​​hello world​
  • ​python3​​ 解释器执行完毕
  1. 把控制权还给 shell
  • 这就是我们执行​​hello.py​​的过程
  • 我想输出个稍微复杂点的东西
  • 可以做下面这个框架标题吗?????

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

尝试制作

vi banner.py
  • 首先要新建一个​​banner.py​​文件
  • 并用​​vi​​ 打开并编辑
  • 效果如下图

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • ​:w|!python %​​ 执行脚本

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 新开个test.py做实验

两个空行

  • 然后尝试在两行中输出
  • 两行​​print()​

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 运行结果

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 为什么​​2​​个 print() 就会输出​​2​​个空行?
  • 这里面也没有换行啊?
  • help 一下

查询帮助

  • 去游乐场
  • help(print)

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 这里面有一个 参数end
  • 意思是结尾符
  • end默认值为 ​​\n​
  • ​\n​​ 就是我们上次接触的换行符
  • 这个默认参数
  • 让结尾默认有个换行
  • 也就是说默认结尾符(end)是换行符
  • 如果我们把 默认结尾符(end)
  • 设置为​​$​​会如何?
  • 说干就干

end 结尾字符

print("HelloWorld",end='$')
  • end 就是结尾
  • print 会给字符串最后结尾加上一个​​$​

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 他直接把后面的提示符给顶出来一块
  • 哈哈哈哈????
  • 如果是多个字符呢?

多个字符

  • 比如​​abc​

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 多个字符其实就是字符串
  • 都会加到结尾处
  • 如果是多个换行符呢?

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 任何字符都可以放到结尾字符串里面
  • 但如果结尾字符串里啥都没有呢?
  • 会如何?

不换行

print("hello",end="")
  • 试试 end=""

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 这样就把原来行尾默认的换行符去掉了
  • 也就是​​不换行输出​
  • 如果使用 end=''
  • 但是依旧想要在结束的地方换行
  • 也就是另起一行
  • 应该怎么办?

结尾还是换行

  • 手动在输出字符串结尾添加 ​​\n​
  • 这样就可以不换行持续在一行输出了!
  • 同样如果在里面加上​​\n​​也就会换行了
  • 下面两句是等价的
print("hello\n",end='')
print("hello")
  • 这不就是又绕回到默认状态了么?!

[oeasy]python0022_框架标题的制作_banner_结尾字符串_end

  • 通过绕了这一大圈
  • 其实我们深入地了解了换行符和end参数
  • ???? 很多事情比之前更清晰了

总结

  • ​print​​函数
  • 有个默认的 ​​end参数​
  • ​end参数​​ 的值可以是任意字符串
  • ​end参数​​ 的值会输出到结尾位置
  • ​end参数​​ 的默认值是 ​​\n​
  • 如果​​end​​是空串(​​end=""​​)
  • 意味着输出后不自动换行
  • 我可以手动在输出字符串的末尾加上换行符(​​\n​​)
  • 这样的话
  • 我不但可以控制输出时结尾换不换行
  • 还能控制具体在哪里换行