[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 字(可选)


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


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


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

总结

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


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


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



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



目录
相关文章
|
10月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
277 4
|
9月前
|
人工智能 Python
[oeasy]python082_变量部分总结_variable_summary
本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
302 97
|
9月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
300 62
|
8月前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
469 8
|
9月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
257 20
|
10月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
322 29
|
9月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
244 17
|
9月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
303 12
|
9月前
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
218 2
|
9月前
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
239 5

推荐镜像

更多