零基础学Python(3)— 注释、代码缩进和编码规范

前言:Hello大家好,我是小哥谈。在使用Python语言进行编程的时候,需要遵循一定的规范标准。本节课就带大家了解下Python语言在注释、缩进和编码方面的规范!~🌈  

     目录

🚀1.注释

🚀2.代码缩进

🚀3.编码规范

🚀1.注释

在Python中,通常包括3种类型的注释,分别是单行注释多行注释中文编码声明注释

🍀(1)单行注释

在Python中,使用“#”作为单行注释的符号。从符号“#”开始直到换行为止,“#”后面所有的内容都作为注释的内容,并被Python编译器忽略。

语法如下:

# 注释内容

单行注释可以放在要注释代码的前一行,也可以放在要注释代码的右侧。例如,下面的两种注释形式都是正确的。

第一种形式:

# 要求输入身高,单位为m(米),如1.75
height=float(input("请输入您的身高:"))

第二种形式:

height=float(input("请输入您的身高:"))        # 要求输入身高,单位为m(米),如1.75

说明:在添加注释时,一定要有意义,即注释能充分解释代码的功能及用途。

🍀(2) 多行注释

在Python中,并没有一个单独的多行注释标记,而是将包含在一对三引号('''……''')或者("""……""")之间,并且不属于任何语句的内容都可视为注释,这样的代码将被解释器忽略。由于这样的代码可以分为多行编写,所以也称为多行注释

语法格式如下:

'''
注释内容1
注释内容2
……
'''

或者

"""
注释内容1
注释内容2
……
"""

多行注释通常用来为Python文件模块或者函数等添加版权、功能等信息。例如,下面代码将使用多行注释为demo.py文件添加版权、功能及修改日志等信息:

'''

 @ 版权所有:*******©版权所有
 @ 文件名:demo.py
 @ 文件功能描述:******
 @ 创建日期:2023年12月31日
 @ 创建人:小哥谈

'''

注意:在Python中,三引号('''……''')或者("""……""")是字符串定界符。如果三引号作为语句的一部分出现时,就不是注释,而是字符串,这一点要注意区分。

🍀(3) 中文编码声明注释

在Python中,还提供了一种特殊的中文编码声明注释,该注释的出现主要是为了解决Python 2.x中不支持直接写中文的问题。虽然在Python 3.x中,该问题已经不存在了。但是为了规范页面的编码,同时方便其他程序员及时了解文件所用的编码,建议在文件开始加上中文编码声明注释。

语法格式如下:

# -*- coding:编码 -*-

或者

# coding=编码

在上面的语法中,编码为文件所使用的字符编码类型,如果采用UTF-8编码,则设置为utf-8。

例如,指定编码为UTF-8,可以使用下面的中文编码声明注释:

# -*- coding:utf-8 -*-

🚀2.代码缩进

Python不像其他程序设计语言(如Java或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。

缩进可以使用空格或者<Tab>键实现。其中,使用空格时,通常情况下采用4个空格作为一个缩进量,而使用Tab键时,则采用一个Tab键作为一个缩进量。通常情况下建议采用空格进行缩进。

在Python中,对于类定义函数定义流程控制语句异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。

例如,下面代码中的缩进为正确的缩进:

height=float(input("请输入您的身高:"))      # 输入身高
weight=float(input("请输入您的体重:"))      # 输入体重
bmi=weight/(height*height)              # 计算BMI指数

# 判断身材是否合理
if bmi<18.5:
    print("您的BMI指数为:"+str(bmi))      # 输出BMI指数
    print("体重过轻 ~@_@~")
if bmi>=18.5 and bmi<24.9:
    print("您的BMI指数为:"+str(bmi))      # 输出BMI指数
    print("正常范围,注意保持 (-_-)")
if bmi>=24.9 and bmi<29.9:
    print("您的BMI指数为:"+str(bmi))      # 输出BMI指数
    print("体重过重 ~@_@~")
if bmi>=29.9:
    print("您的BMI指数为:"+str(bmi))      # 输出BMI指数
    print("肥胖 ^@_@^")

Python对代码的缩进要求非常严格,同一个级别的代码块的缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常


🚀3.编码规范

在使用Python语言编程时,遵循一定的代码编写规则和命名规范可以使代码更加规范化,对代码的理解与维护都会起到至关重要的作用。

🍀(1)编写规则

Python中采用PEP 8作为编码规范,其中PEP是Python Enhancement Proposal(Python增强建议书)的缩写,而“PEP 8”中的“8”表示版本号。PEP 8是Python代码的样式指南。

下面给出PEP 8编码规范中的一些应该严格遵守的条目。

A.每个import语句只导入一个模块,尽量避免一次导入多个模块。

推荐写法:

import platform
import sys

不推荐写法:

import platform,sys

B.不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。

下面所示的代码为不规范的写法:

y = torch.cat((xy, wh, conf), 4);

C.建议每行不超过80个字符,如果超过,建议使用小括号“()”将多行内容隐式的连接起来,而不推荐使用反斜杠“\”进行连接。

例如,如果一个字符串文本不能在一行上完全显示,那么可以使用小括号“()”将其分行显示,代码如下:

s=("我一直认为我是一只蜗牛。我一直在爬,也许还没有爬到金字塔的顶端。"
      "但是只要你在爬,就足以给自己留下令生命感动的日子。")

以下通过反斜杠“\”进行连接的做法是不推荐使用的:

s="我一直认为我是一只蜗牛。我一直在爬,也许还没有爬到金字塔的顶端。\
但是只要你在爬,就足以给自己留下令生命感动的日子。"

D.使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或者类的定义)之间空两行,而方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。

E.通常情况下,运算符两侧、函数参数之间、“,”两侧建议使用空格进行分隔。

F.应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。

G.适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当的显式判断还是必要的。

🍀(2)命名规范

命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序也可以运行,但是使用命名规范可以更加直观地了解代码所代表的含义。

本节将介绍Python中常用的一些命名规范。

A.模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。例如,game_main、game_register、bmiexponent都是推荐使用的模块名称。

B.包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如,com.mingrisoft、com.mr、com.mr.book都是推荐使用的包名称,而com_mingrisoft就是不推荐的。

C.类名采用单词首字母大写形式(即Pascal风格)。例如,定义一个借书类,可以命名为BorrowBook。

D.模块内部的类采用下划线“_”+Pascal风格的类名组成。例如,在BorrowBook类中的内部类,可以使用_BorrowBook命名。

E.函数、类的属性和方法的命名规则同模块类似,也是全部使用小写字母,多个字母间用下划线“_”分隔。

F.常量命名时全部使用大写字母,可以使用下划线

G.使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from ××× import *语句从模块中导入时这些变量或者函数不能被导入。

H.使用双下划线“__”开头的实例变量或方法是类私有的


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/334690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue.js安装

1:下载 Node.js 官网&#xff1a;https://nodejs.org/en/download 2:安装 node -v npm -v 3:配置 npm config set prefix "F:\node\node_global" npm config set cache "F:\node\node_cache" 按 win 键并输入“编辑系统环境变量”调出系统属性界面&a…

kubernetes工作负载-DamonSet

一、DemonSet的介绍 1、什么是DemonSet DaemonSet 控制器是用来保证在所有节点上运行一个 Pod 的副本当有节点加入集群时&#xff0c; 也会为他们新增一个 Pod。 当有节点从集群移除时&#xff0c;这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 简而言之…

递归、搜索与回溯算法(专题二:深搜)

往期文章&#xff08;希望小伙伴们在看这篇文章之前&#xff0c;看一下往期文章&#xff09; &#xff08;1&#xff09;递归、搜索与回溯算法&#xff08;专题零&#xff1a;解释回溯算法中涉及到的名词&#xff09;【回溯算法入门必看】-CSDN博客 &#xff08;2&#xff09…

Android Studio安卓开发--ListView学习整理

ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内&#xff0c;同时屏幕上原有的数据则会滚动出屏幕。 1.ListView的简单用法 &#xff08;1&#xff09;activity_main.xml布局中加入ListView控件&#xff1a;&#xff08;先占满整个布局的空间&#xff09;…

matplotlib从起点出发(12)_Tutorial_12_MultiAxes

在一个Figure中安排多个Axes 通常在一个图像中&#xff0c;需要同时呈现多于一个Axes&#xff0c;并且需要对齐到网格. Matplotlib有多种工具用于处理在本库历史中演变的Axes网格&#xff0c;我们将讨论我们认为用户最常使用的工具&#xff0c;支持Axes组织方式的工具&#xf…

Qt弹框展示

1.相关说明 文件选择弹框、目录选择弹框、保存文件弹框、颜色选择弹框、字体选择弹框、进度条弹框、输入对话框、标准消息框等 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QProgressD…

Java集合(3)

1.泛型 1.1泛型概述 泛型的介绍 泛型是JDK5中引入的特性&#xff0c;它提供了编译时类型安全检测机制 泛型的好处 把运行时期的问题提前到了编译期间 避免了强制类型转换 泛型的定义格式 <类型>: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如: …

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析&#xff1a;在软件开发架构设计之前&#xff0c;需要对应用系统进行需求分析&#xff0c;明确用户需求、功能模块、业务流程等内容。…

canvas绘制N角形,锯齿状

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

beego API 自动化文档

API 全局设置 必须设置在 routers/router.go 中&#xff0c;文件的注释&#xff0c;最顶部&#xff1a; // APIVersion 1.0.0 // Title mobile API // Description mobile has every tool to get any job done, so codename for the new mobile APIs. // Contact astaxiegmai…

第一篇【传奇开心果系列】beeware开发移动应用:轮盘抽奖移动应用

系列博文目录 beeware开发移动应用示例系列博文目录一、项目目标二、开发传奇开心果轮盘抽奖安卓应用编程思路三、传奇开心果轮盘抽奖安卓应用示例代码四、补充抽奖逻辑实现五、开发传奇开心果轮盘抽奖苹果手机应用编程思路六、开发传奇开心果轮盘抽奖苹果手机应用示例代码七、…

近期学习文章

DNSlog在渗透测试中的实战技巧 - 网安隐藏源IP&#xff0c;提高溯源难度的几种方案 - 网安FreeBuf网络安全行业门户 【漏洞公告】某平台一个有意思的CSRF // SecTrain安全博客 浅谈Web源码泄漏-安全客 - 安全资讯平台 红队-C2 Server基础构建 - 先知社区FreeBuf网络安全行业…

Pytest系列(2) - assert断言详细使用

前言 与unittest不同&#xff0c;pytest使用的是python自带的assert关键字来进行断言assert关键字后面可以接一个表达式&#xff0c;只要表达式的最终结果为True&#xff0c;那么断言通过&#xff0c;用例执行成功&#xff0c;否则用例执行失败 assert小栗子 想在抛出异常之…

大模型增强大模型:通过融合扩展能力(Google DeepMind2024)

1、写作动机&#xff1a; 存在如此多领域特定的模型自然引发一个问题&#xff1a;我们是否能够将一个固定模型与一个特定领域的增强模型组合&#xff0c;以实现新的能力&#xff1f;例如&#xff0c;我们是否可以将增强模型的代码理解能力与固定LLM的语言生成能力组合&#xf…

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学&#xff08;GIS&#xff09;专业的2024届应届生&#xff0c;在研三上学期期间&#xff0c;寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先&#xff0c;这篇文章一开始写于2023年年底&#xff0c;当时为了参加一个征文活动&#xff0c;所…

Spring Boot程序的打包与运行:构建高效部署流程

引言 在现代应用开发中&#xff0c;高效的打包和部署流程对于项目的开发、测试和上线至关重要。Spring Boot作为一种快速开发框架&#xff0c;提供了方便的打包工具和内嵌式的Web服务器&#xff0c;使得打包和运行变得更加简单。本文将研究在Spring Boot应用中如何进行打包&am…

ctfshow php特性(web89-web101)

目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 php特性(php基础知识) web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/&…

WINCC读写EXCEL-VBS

原创 RENHQ WINCC 关于VBS操作EXCEL的文档不管在论坛上还是在网上&#xff0c;相关的脚本已经很多&#xff0c;但是依然有很多人在问这个问题&#xff0c;于是把我以前在论坛上发的一个集合帖子的脚本拿来&#xff0c;重新开个帖子&#xff0c;如果再有人问的话&#xff0c;可…

MySQL进阶篇:索引(概述,结构,分类,语法,SQL性能分析,索引使用,设计原则)

目录 1.索引概述2.索引结构1.B树&#xff08;多路平衡查找树&#xff09;2.B树3.Hash1.特点2.存储引擎支持 4.选择B树作为InnoDB存储引擎索引结构的原因 3.索引分类1.聚集索引选取规则2.回表查询 4.索引语法1.创建索引2.查看索引3.删除索引 5.SQL性能分析1.SQL执行频率2.慢查询…

Spark流式读取文件数据

流式读取文件数据 from pyspark.sql import SparkSession ss SparkSession.builder.getOrCreate() # todo 注意1&#xff1a;流式读取目录下的文件 --》一定一定要是目录&#xff0c;不是具体的文件&#xff0c;# 目录下产生新文件会进行读取# todo 注意点2&#xff1…