[oeasy]python0048_注释_comment_设置默认编码格式

简介: [oeasy]python0048_注释_comment_设置默认编码格式

注释Comment 回忆上次内容

  • 使用了版本控制 git
  • 制作备份
  • 进行回滚


  • 尝试了 嵌套的控制结构
  • 层层 控制


  • 不过
  • 除非 到不得以
  • 尽量不要 太多层次的嵌套


  • 这样
  • 从顶到底
  • 含义 明确
  • 而且 还扁平


  • 扁平 也能
  • 含义明确


  • 还可以 做点什么?
  • 让程序含义 更加明确呢?🤔


注释

  • 其实我们见过注释

添加图片注释,不超过 140 字(可选)


  • #号开头的 注释
  • 颜色 和其他语句 不一样
  • 不会 被python3解释执行


  • 凡是 #开头的行
  • 都是
  • 注释语句


  • 不会 被执行


  • 除了
  • 行首 注释之外
  • 行中 是否可以有注释呢?


行中注释

  • 试试

添加图片注释,不超过 140 字(可选)


  • #号 后面的变颜色的部分
  • 就是注释了


  • 如果注释在字符串里面呢?

尝试一下 print("hi # there")

  • 在字符串中的 #(Pound,井号)
  • 可以试试


  • 结论是
  • #号 是字符串中的字符
  • 不会被当做注释


  • 为什么 井号 代表注释呢?

井号

  • 历史悠久
  • 从纯数字键盘时代
  • 就开始使用井号键了



添加图片注释,不超过 140 字(可选)


  • 这个井号是从什么时候有的呢?

质量单位

  • 来自罗马的质量计量单位
  • libra pondo
  • 缩写形式 为了区别于 1p
  • 写作 ℔


  • 读作 pound weight


  • 后来演化成了 // 和 = 的组合
  • #`



添加图片注释,不超过 140 字(可选)


  • # 在文本中被标记为 数字符号
  • 比如说 1#302中
  • #是数字标记



打字机时代

  • # 被 1893年的 Blickensderfer 5 留存下来
  • 并且明确作为数字标记使用


添加图片注释,不超过 140 字(可选)


  • 后来#号 顺利进入ascii字符集

unicode

  • #的 各个含义
  • 也有了独立的字符


添加图片注释,不超过 140 字(可选)


  • 各个独立字符
  • 2114 ℔  l b bar symbol
  • 2116 №  numero sign
  • 2317 ⌗  viewdata square
  • 266F ♯  music sharp sign
  • 29E3 ⧣  equals sign and slanted parallel


  • 不过程序员对于#有独立的叫法

hash

  • 英国 管# 叫做 'hash'
  • 来自于 hatch
  • 来自于 cross-hatching
  • 交叉排线



添加图片注释,不超过 140 字(可选)


  • 程序员
  • 沿用了这个读法


  • #!
  • "hash, bang"
  • "shebang"


  • 网络时代
  • #又有了新的含义


HashTag

  • 可以挂接的主题词
  • hashtag


添加图片注释,不超过 140 字(可选)


  • 注释还有什么用处呢?

判别编码格式

  • 编写的py文件 都是二进制的文件
  • 如果 不进行编码格式说明的话
  • 怎么知道 应该用什么 编码格式打开 呢?


  • test.py 应该
  • 用gb2312打开
  • 还是utf-8的方式打开?
  • 这是一个很现实的问题!



具体描述

  • 这三种都是可以接受的解码方式定义
  • # encoding= utf-8
  • 直接给的等号赋值


  • # -*- coding: utf-8 -*-
  • emcas也能识别的


  • #vim:set fileencoding = utf-8


添加图片注释,不超过 140 字(可选)


  • 第四种是关于解码方式的正则表达式
  • ^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
  • https://regexper.com/?#%5E%5B%20%5Ct%5Cf%5D%23.coding%5B%3A%3D%5D%5B%20%5Ct%5D*%28%5B-_.a-zA-Z0-9%5D%2B%29
  • 上面三种写法都可以匹配这个正则表达式


  • 这正则表达式应该如何理解?

正则表达

添加图片注释,不超过 140 字(可选)


  • 注意下图中的第二行

添加图片注释,不超过 140 字(可选)


  • ^[ \t\f]*#.*coding[:=][ \t]*[-_.a-zA-Z0-9]\+
  • 可以匹配到第二行
  • ^ 行开头
  • [ \t\f]* 前面可以有空格、tab或者换页符若干个
  • # 有个# 在python语言中可以理解为本行为注释行
  • .*? 后面接着任意长度的任意字符
  • coding[:=] 存在code: 或者 code=
  • [ \t]* 有0到任意多个空格或tab
  • [-_.a-zA-Z0-9]\+ 由中划线、下划线、点、大写小写数字若干组成的标识符


  • ^[\t\v]_#._?coding[:=][\t]\*([-_.a-zA-Z0-9]+)
  • ([-_.a-zA-Z0-9]+)
  • 小括号中 匹配到的
  • 就是编码格式的名称
  • 比如utf-8



  • 而且这种写法同时
  • 也设置了vim的打开方式


编码方式

  • encoding 经典定义

#!/usr/bin/python3 #vim: set fileencoding=utf-8

  • 第一句
  • 是告诉 shell 的
  • 用哪个二进制文件 打开这个当前文件


  • 第二句
  • 不但 规定了 python3 解释 运行源文件的编码格式 是utf-8
  • 而且 还设置了 vim 的对于此文件
  • 打开与保存的编码格式是utf-8



  • 如果我定义一个
  • python解释器都不认识的编码格式
  • 会如何?


oeasy-8

添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)


  • 解释器感到很困惑
  • 哈哈哈


  • 虽然注释不用被执行
  • 但是作用很大啊!
  • 除此之外注释还可以怎样用么呢?


搜索注释

添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)


  • 原来 用#时
  • 都是单行注释


  • 现在 有
  • 多行注释


多行注释

  • 用三个引号
  • 就可以 做多行注释
  • 单双引号都可以


添加图片注释,不超过 140 字(可选)


  • 三引号里面的东西
  • 就是注释


  • 注释中 说明了
  • 上面输入的 是苹果数量
  • 下面 是香蕉数量


  • 虽然注释 内容很长
  • 但是 不会影响程序的 运行速度
  • 只是增加 可读性而已

总结

  • 这次了解了注释
  • 写注释 是为了让程序更可读
  • 注释 会 影响程序运行速度


  • 注释分为两种
  • 单行的
  • #开头
  • 不能是 字符串当中的#


  • 多行的
  • 三个"
  • 三个'



  • 多行注释
  • 还有什么 特殊功能 么?🤔



目录
相关文章
|
9天前
|
人工智能 Shell 开发工具
[oeasy]python062_在python中完成输入和输出_input_print
本文介绍了在Python中使用`input()`和`print()`函数完成输入和输出操作的基础知识。通过编写简单的程序,如问候用户和统计苹果数量,演示了如何添加提示信息、处理用户输入并输出结果。同时,回顾了上一次课程内容,包括`input`函数的参数和提示词的使用。文中还展示了如何在vim编辑器中编写和运行Python代码,并对vim和shell的基本操作进行了总结。最后提供了相关学习资源链接,方便读者进一步学习。
101 66
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
122 80
|
2月前
|
人工智能 C语言 Python
[oeasy]python051_什么样的变量名能用_标识符_identifier
本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
119 69
|
2月前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
122 68
|
18天前
|
人工智能 Unix Java
[oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
51 9
|
23天前
|
C语言 Python
[oeasy]python058_一句话让python崩了
本文介绍了如何通过重新赋值`__builtins__`使Python环境崩溃,并探讨了下划线的来历及其在编程中的作用。文章回顾了上次内容,展示了覆盖内建模块导致系统崩溃的过程,解释了恢复方法,以及PEP 8规范中关于空格使用的建议。最后,文章总结了下划线在变量定义和提高代码可读性方面的重要性,并简述了其从打字机时代到计算机时代的演变。
30 10
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
45 14
|
25天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
29 3
|
28天前
|
存储 Python
[oeasy]python056_python中下划线是什么意思_underscore_理解_声明与赋值_改名字
在Python中,下划线有多种用途。单下划线(_)常用于避免命名冲突,如将`max`改为`max_`以保留内置函数功能。双下划线(__var__)通常用于特殊方法和属性,如`__name__`、`__doc__`等。此外,单下划线(_)在交互式解释器中表示上一次表达式的值,但不建议作为普通变量名使用。总结:下划线用于避免命名冲突及特殊标识。
24 1
|
2月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
41 9

热门文章

最新文章