当前位置: 首页 > news >正文

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

注释Comment

回忆上次内容

  • 使用了版本控制 git
    • 制作备份
    • 进行回滚
  • 尝试了 嵌套的控制结构
    • 层层 控制
  • 不过
    • 除非 到不得以
    • 尽量不要 太多层次的嵌套
  • 这样
    • 从顶到底
    • 含义 明确
    • 而且 还扁平
  • 扁平 也能
    • 含义明确
  • 还可以 做点什么?
    • 让程序含义 更加明确呢?🤔

注释

  • 其实我们见过注释

图片描述

  • #号开头的 注释
    • 颜色 和其他语句 不一样
    • 不会 被python3解释执行
  • 凡是 #开头的行
    • 都是
      • 注释语句
    • 不会 被执行
  • 除了
    • 行首 注释之外
    • 行中 是否可以有注释呢?

行中注释

  • 试试

图片描述

  • #号 后面的变颜色的部分
    • 就是注释了
  • 如果注释在字符串里面呢?

尝试一下

print("hi # there")
  • 在字符串中的 #(Pound,井号)
    • 可以试试
  • 结论是
    • #号 是字符串中的字符
    • 不会被当做注释
  • 为什么 井号 代表注释呢?

井号

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

图片描述

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

质量单位

  • 来自罗马的质量计量单位
    • libra pondo
      • 缩写形式 为了区别于 1p
        • 写作 ℔
      • 读作 pound weight
    • 后来演化成了 // 和 = 的组合
      • `#``

图片描述

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

打字机时代

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

图片描述

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

unicode

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

图片描述

  • 各个独立字符
    • 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
      • 交叉排线

图片描述

  • 程序员
    • 沿用了这个读法
  • #!
    • “hash, bang”
    • “shebang”
  • 网络时代
    • #又有了新的含义

HashTag

  • 可以挂接的主题词
    • hashtag

图片描述

  • 注释还有什么用处呢?

判别编码格式

  • 编写的py文件 都是二进制的文件
    • 如果 不进行编码格式说明的话
    • 怎么知道 应该用什么 编码格式打开 呢?
  • test.py 应该
    • 用gb2312打开
    • 还是utf-8的方式打开?
    • 这是一个很现实的问题!
  • 这个问题在 pep263 中的有描述
    • https://www.python.org/dev/peps/pep-0263/

具体描述

  • 这三种都是可以接受的解码方式定义
    • # encoding= utf-8
      • 直接给的等号赋值
    • # -*- coding: utf-8 -*-
      • emcas也能识别的
    • #vim:set fileencoding = utf-8

图片描述

  • 第四种是关于解码方式的正则表达式
    • ^[ \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
    • 上面三种写法都可以匹配这个正则表达式
  • 这正则表达式应该如何理解?

正则表达

图片描述

  • 注意下图中的第二行

图片描述

  • ^[ \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

图片描述

图片描述

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

搜索注释

图片描述

图片描述

  • 原来 用#时
    • 都是单行注释
  • 现在 有
    • 多行注释

多行注释

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

图片描述

  • 三引号里面的东西
    • 就是注释
  • 注释中 说明了
    • 上面输入的 是苹果数量
    • 下面 是香蕉数量
  • 虽然注释 内容很长
  • 但是 不会影响程序的 运行速度
  • 只是增加 可读性而已

总结

  • 这次了解了注释

    • 写注释 是为了让程序更可读
    • 注释 会 影响程序运行速度
  • 注释分为两种

    • 单行的
      • #开头
      • 不能是 字符串当中的#
    • 多行的
      • 三个"
      • 三个'
  • 多行注释

    • 还有什么 特殊功能 么?🤔
  • 下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

相关文章:

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

注释Comment 回忆上次内容 使用了版本控制 git 制作备份进行回滚 尝试了 嵌套的控制结构 层层 控制 不过 除非 到不得以尽量不要 太多层次的嵌套 这样 从顶到底含义 明确而且 还扁平 扁平 也能 含义明确 还可以 做点什么? 让程序含义 更加明确呢?&…...

C++中的queue与priority_queue

文章目录 queuequeue的介绍queue的使用 priority_queuepriority_queue介绍priority_queue使用 queue queue的介绍 队列是一种容器适配器,专门用于上下文先进先出的操作中。队列的特性是先进先出,从容器的一端插入,另一端提取元素。   队列…...

电脑发挥极致,畅游永恒之塔sf

随着22寸显示器的普及,玩永恒之塔势必会对显示卡造成了很大负担。不要说效果全开,就连简洁的玩,都成了问题,那是不是就要重金把才买的显示卡又要拿掉呢? 最出众的解决办法,是超频。 主要就具有以下条件最佳…...

ChatGPT :十几个国内免费可用 ChatGPT 网页版

前言 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言…...

5 分钟教你如何免费用上 GPT-4

今天要分享的就是普通用户,没有 OpenAI 账号,不需要写代码,你依然可以免费体验 GPT-4,当然,会有一些缺点,本篇文章将会手把手教你怎么用上免费版的 GPT-4 以及它的一些限制。 第一步:打开 Stea…...

安卓手机搭建智能语音客服/通话播音/聊天播音乐技术实现

声明,此项技术需要root支持,如果因为刷机导致手机变砖或其他不可预料的后果请自行解决。 场景 我有一个朋友他是做业务的,主要还是做电销,其实电销相对于以前纪念没那么好做了(我自己觉得主要是互联网冲击&#xff0c…...

【学习笔记】PKUSC2023 不知道咋记

挺快乐的。到 P K U PKU PKU感受了一下北大校园,其实并没有想像中那么令人惊艳,但是看到了许多亲切的学长以及他们的热心陪伴(虽然有的我甚至不认识),感觉心里还是挺暖的。 如果不算上 D 2 T 1 D2T1 D2T1被平衡树板子…...

Packet Tracer - 配置基于区域的策略防火墙 (ZPF)

Packet Tracer - 配置基于区域的策略防火墙 (ZPF) 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/5 S0/0/0 (DCE) 10.1.1.1 255.255.255.252 不适用 不适用 R2 S0/0/0 10.1.1.2 255…...

全方位揭秘!大数据从0到1的完美落地之运行流程和分片机制

一个完整的MapReduce程序在分布式运行时有三类实例进程: MRAppMaster: 负责整个程序的过程调度及状态协调MapTask: 负责Map阶段的整个数据处理流程ReduceTask: 负责Reduce阶段的整个数据处理流程 当一个作业提交后(mr程序启动),大概流程如下&#xff1…...

后端程序员的前端必备【Vue】 - 07 ES6新语法

ES6新语法 1 let定义变量2 const定义常量3 模板字符串4 方法默认值5 箭头函数6 解构6.1 对象解构6.2 数组解构6.2 使用解构实现变量交换 7 Spread Operator8 模块化编程 1 let定义变量 使用let定义变量能更加精准的确定变量的作用域 //for(var i 0 ; i < 10 ; i){} for(let…...

AI落地:程序员如何用AI?

对于程序员来说&#xff0c;真正能提高效率、可落地的AI应用场景都有哪些&#xff1f; 目前已经能切实落地&#xff0c;融入我日常工作生活的有以下几个场景&#xff1a; 开发工作&#xff1a;自然语言生成代码&#xff0c;自动补全代码 日常工作学习&#xff1a;写作、翻译、…...

掌握优化+创新模式,轻松提升APP广告eCPM

​无论是市场占有率高的综合性应用程序(App)&#xff0c;还是透过特定目的所设计的专业化应用程序(App)&#xff0c;内部嵌入广告已成为其主要的盈利方式。 而优化和创新作为提升广告收益的两大关键词。通过不断的数据分析和优化&#xff0c;结合对用户需求的深刻理解去优化和…...

在docker上安装运行Python文件

目录 一、在docker中安装python 1.1 输入镜像拉取命令 1.2 查看镜像 1.3 运行 1.4 查看是否成功 1.5 查看python版本 二、运行py文件 2.1准备运行所需文件 2.2 准备文件夹 2.3 大概是这幅模样 2.4 打包上传到服务器上 2.5 构建镜像示例 2.6 查看镜像 2.7 优化镜像的…...

RocketMQ第三节(生产者和消费者)

目录 1&#xff1a;生产者&#xff08;同步、异步、单向&#xff09; 1.1&#xff1a;同步发送消息&#xff08;每发送一条等待mq返回值&#xff09; 1.2&#xff1a;异步发送消息 1.3&#xff1a;单向发送消息&#xff08;不管成功失败&#xff0c;只管发送消息&#xff09…...

人大金仓亮相国际金融展,打造“金融+产业+生态”创新模式

4月27日&#xff0c;以“荟萃金融科技成果&#xff0c;展现数字金融力量&#xff0c;谱写金融服务中国式现代化新篇章”为主题的2023中国国际金融展圆满落幕。作为已经举办30年的行业盛会&#xff0c;人大金仓再一次重磅亮相&#xff0c;全方位展示国产数据库前沿应用和创新服务…...

Syslog-ng RHEL 的安装和配置

syslog-ng 作为 syslog 的替代工具&#xff0c;可以完全替代 syslog 的服务&#xff0c;并且通过定义规则&#xff0c;实现更好的过滤功能。 作为运维来说一个好的日志工具比什么都重要。 通常我们会管理不同的服务器&#xff0c;因此我们需要把日志集中一下以便于快速查找。…...

得物直播低延迟探索 | 得物技术

1.背景 直播的时效性保证了良好的用户体验&#xff0c;根据经验在交易环节&#xff0c;延迟越低转化效果也会越好。传统的直播延迟问题已经成为了一个不容忽视的问题&#xff0c;高延迟不仅破坏了用户的观看体验&#xff0c;也让主播难以实时获取到用户的反馈。为了进一步优化…...

【CVPR红外小目标检测】红外小目标检测中的非对称上下文调制(ACM)

论文题目&#xff1a; Asymmetric Contextual Modulation for Infrared Small Target Detection 红外小目标检测中的非对称上下文调制 红外小目标数据集 目标个数分布&#xff1a;约90%图片中只有一个目标&#xff0c;约10%图片有多个目标&#xff08;在稀疏/显著的方法中&am…...

Axios概述

一、Json-server 获得零编码的完整伪造 REST API zero coding 在不到 30 秒的时间内 &#xff08;认真&#xff09;。 使用 <3 创建&#xff0c;适用于需要快速后端进行原型设计和模拟的前端开发人员&#xff0c;模拟后端发送过来json数据。 1.安装 npm install -g jso…...

用右雅克比对旋转矩阵进行求导

考虑一个向量 a \bold{a} a对其进行旋转, 旋转用旋转矩阵 R \bold{R} R表示, 用朴素的倒数定义进行求导而不是用扰动模型, 我得到了这个过程与结果 和高博的新书结果 − R J r a ∧ -\bold{R}\bold{J}_{r}\bold{a}^{\wedge} −RJr​a∧结果不一样, 雅克比矩阵位置不同, 是不是…...

高性能HMI 走向扁平化

个人计算机作为图形用户界面&#xff08;GUI&#xff09;在自动化中已经使用了30多年。在那段时间里&#xff0c;从技术、术语、功能到用于创建接口的标准和指南&#xff0c;发生了许多变化。 PC 技术的飞速发展&#xff0c;特别是图形显示&#xff0c;用户界面的技术发展导致了…...

虚幻引擎配置物体水面浮力的简便方法

虚幻引擎配置物体水面浮力的简便方法 目录 虚幻引擎配置物体水面浮力的简便方法前言前期工作配置水面浮力针对一个立方体的水面浮力配置针对船3D模型的水面浮力配置 小结 前言 在使用虚幻引擎配置导入的3D模型时&#xff0c;如何快速地将水面浮力配置正确&#xff0c;从而使得…...

WatchGuard 防火墙策略、配置和日志分析器

获取 Internet 活动见解并及时了解安全事件是一项具有挑战性的任务&#xff0c;因为安全设备会生成大量的安全和流量日志。Firewall Analyzer 针对 WatchGuard 防火墙设备的报告功能具有一系列功能&#xff0c;使您能够增强网络安全。WatchGuard 日志分析器软件&#xff0c;可让…...

Web自动化测试——XAPTH高级定位

XAPTH高级定位 一、xpath 基本概念二、xpath 使用场景三、xpath 相对定位的优点四、xpath 定位的调试方法五、xpath 基础语法&#xff08;包含关系&#xff09;六、xpath 顺序关系&#xff08;索引&#xff09;七、xpath 高级用法1、[last()]: 选取最后一个2、[属性名属性值 an…...

CentOS 7 安装 Nginx

前言 最近&#xff0c;在公司经常会进行项目的部署&#xff0c;但是服务器环境都是导师已经搭建好了的&#xff0c;我就是将项目文件放到特定目录。于是&#xff0c;周末在家就进行了 Nginx 的安装学习。之前&#xff0c;在 Windows 上使用过 Nginx&#xff0c;但是在 Linux 环…...

Databend 开源周报第 91 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 新数据类型&…...

【Ubuntu18.04使用yolov5教程】

欢迎大家阅读2345VOR的博客【Ubuntu18.04使用yolov5教程】&#x1f973;&#x1f973;&#x1f973;2345VOR鹏鹏主页&#xff1a; 已获得CSDN《嵌入式领域优质创作者》称号&#x1f47b;&#x1f47b;&#x1f47b;&#xff0c;座右铭&#xff1a;脚踏实地&#xff0c;仰望星空…...

CocoaPods如何发布新版本的Pod Library

当我们修改了一个Pod Library中的代码时&#xff0c;如何让依赖该库的项目能更新到最新代码&#xff0c;步骤如下&#xff1a; 假设现在修改了SamplePod&#xff08;Pod名称&#xff09;的代码&#xff0c;希望将最新版本更新到1.0.1&#xff0c;目前版本是1.0.0 修改SamplePo…...

v4l2框架

v4l2框架 文章目录 v4l2框架框架1.硬件相关层uvc_probeuvc_register_chainsuvc_register_termsuvc_register_video 2.核心层__video_register_device 3.虚拟视频驱动vivid分析入口vivid_init注册vivid平台驱动vivid_probevivid_create_instance 框架 1.硬件相关层 driver/medi…...

vue项目中生成LICENSE文件

vue项目中生成LICENSE文件 简介 LICENSE 文件是一个文本文件&#xff0c;它包含了你的项目所使用的开源软件的许可证信息。 在开发过程中&#xff0c;我们经常会使用到各种各样的第三方开源软件&#xff0c;这些软件是有版权和许可证的&#xff0c;我们在使用时需要遵循它们的…...

wordpress评轮审核/网络营销和网络推广有什么区别

点击查看全文 当今时代很多吃瓜群众对程序员的印象都是 而程序员的真实情况却是这样&#xff1a;每天大部分时间都在改代码&#xff0c;写代码&#xff0c;看代码才是我们真实的工作日常&#xff0c;到底每天要写多少行才是好程序员呢&#xff1f; 为了探讨这个问题首先要了解程…...

电子商务网站建设也管理/近几天发生的新闻大事

asp.net编写登录注册代码 win7 asp.netms sql 2005vs2010(开发平台)数据库名userinfousername varchar(50) userpassword varchar(50) 连接数据库,写在类db.cs里面,其代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; usi…...

wordpress 微信付款/百度手机助手下载安装

点击下载Qt6最新试用版 COM应用程序的例子展示了如何使用ActiveQt来开发一个可以通过COM自动化的Qt应用程序。不同的基于QObject的类被暴露为COM对象&#xff0c;与运行中的Qt应用程序的GUI进行通信。这些COM对象的API被设计成类似于标准COM应用程序的API&#xff0c;即那些来…...

dedecms三合一网站源码/网络推广自学

1、创建一个SpringBooot项目并且打成jar包 2、在Linux中创建一个文件夹&#xff0c;来做docker测试 [rootizwz90lvzs7171wgdhul8az ~]# mkdir /root/docker_test 3、将jar包上传到Linux中 创建存放jar包的文件夹 [rootizwz90lvzs7171wgdhul8az docker_test]# mkdir /root/d…...

深圳建设厅网站/百度搜索引擎优化

ASP.NET AJAX 1.0的官方文档在不久之前发布了&#xff0c;它包括了Sample&#xff0c;Tutorial&#xff0c;并且为API补充了示例&#xff08;其实没有多少更新&#xff09;。关键的是&#xff0c;现在的官方文档已经提供打包下载了&#xff0c;不少朋友&#xff08;也包括我&am…...

自学套模板做网站/百度电脑版

mysql开启远程访问&#xff1a;1、打开mysql server&#xff0c;设置mysql 访问权限 mysql>grant all privileges on *.* to root% identified by youpassword with grant option;说明&#xff1a;Root表示用户名&#xff0c;%代表所有的ip地址&#xff0c;也可以设置指…...