草庐IT

初识Python(注释、代码缩进、编码规范、标识符、变量)

hacker707 2023-04-13 原文

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆
📃个人主页:hacker707的csdn博客
🔥系列专栏:零基础入门篇
💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待💖💖💖


初识Python

注释

  • 在Python程序中,注释就是对代码的解释和说明
  • 在开发一些复杂的项目时,往往都会添加注释,帮助程序员更好的去阅读代码,增加代码的可读性

单行注释

在Python中使用"#“作为单行注释的符号,从符号”#“开始直到换行为止,”#"后面所有的内容都作为注释内容,同时注释内容会被Python编译器忽略
单行注释可以放在要注释代码的前一行,也可放在要注释代码的右侧

  • 第一种方式
# 使用print语句打印hello world
print("hello world")
  • 第二种方式
print("hello world")  # 使用print语句打印hello world

上面两种形式运行结果是相同的,运行结果如下:

多行注释

在Python中,使用三对单引号或者三对双引号进行多行注释
推荐使用三对双引号进行多行注释

  • 第一种方式
'''
@文件名:初识Python.py
@创建日期:2023年3月25日
@创建者:hacker707
文件功能描述:使用print语句打印hello world
'''
print("hello world")
  • 第二种方式(推荐使用)
"""
@文件名:初识Python.py
@创建日期:2023年3月25日
@创建者:hacker707
文件功能描述:使用print语句打印hello world
"""
print("hello world")

上面两种方式运行结果如下:

文档编码声明注释

在Python3中,默认采用的文件编码为UTF-8,这种编码支持世界上大多数语言的字符
如果不想使用默认编码,则需要在文件的第一行声明文件的编码

  • 第一种方式(-*-只是为了美观)
# -*- coding:gbk -*-
  • 第二种方式
# coding:gbk 

代码缩进

Python不像其他程序设计语言(例如:Java或者C语言)采用大括号{}分隔代码块,而是采用代码缩进和:区分代码之间的层级关系
例如:下面的代码为正确的缩进

number = int(input("请输入一个整数:"))
if number < 0:
    print("输入的整数小于0")
elif 0 <= number <= 10:
    print("输入的整数在0~10范围")
else:
    print("此整数不在你设置的范围内")

代码解读

在Pytho中默认4个空格为一个缩进单位
上面的代码中的if elif else为第一层缩进、print为第二层缩进
💨在Python中对于代码的缩进要求很严格同一个级别的代码缩进量必须相同,如果不采用合理的代码缩进,会抛出异常
IndentationError: expected an indented block
详细报错解决方案见此文章:IndentationError: expected an indented block

编码规范

Python中采用PEP作为编码规范,官方详细参考文档:https://peps.python.org/pep-0008/
下面博主列出一些需要严格遵守的编码规范

  • 导入模块
    每个import语句只导入一个模块,尽量避免一次性导入多个模块

推荐用法

import random
import math

不推荐用法

import random,math
  • 不要在行尾添加分号:

不规范的写法

number = int(input("请输入整数:"));
  • 建议每行不超过80个字符
    如果超过建议使用小括号()将多行内容隐式连接起来
demo = ("不断的翻越一座又一座的高山,那样的人生才是我想要的。"
        "这一马平川,一眼见底的活,我不想要。我的人生,我自己书写"
        "余生很长,请多关照,我的人生,敬请期待")
  • 命名规范

模块名命名规范
模块名尽量短小,并且全部用小写字母,可以使用下划线分隔多个字母
例如:demo、game_main都是推荐使用的模块名称
类名命名规范
类名采用单词首字母大写形式
例如定义一个图书管理类可以命名为BookManagement
函数、类的属性和方法命名规范
全部使用小写,可以使用下划线分隔多个字母
私有类命名规范
使用双下划线开头

变量命名规范
全部使用小写,如有多个单词可以用下划线分隔
例如:count=0
常量命名规范
全部大写,如有多个单词可以使用下划线分隔
例如:MAX_SIZE=100

标识符

标识符简单来说就是一个名字,它只要用于标记变量、函数、类、模块和其他对象的名称
Python标识符命名规则如下:

  • 由字母、数字、下划线组成。第一个字符不能是数字
  • 不能使用特殊符号
  • 不能使用Python中的关键字作为标识符
    例如:以下为错误的标识符命名
4demo
try
$money

变量

变量的定义与使用

在Python中,不需要提前声明变量名及其类型,直接赋值即可创建各种类型的变量
变量的定义应遵循以下原则:

  • 变量名必须是一个有效的标识符
  • 变量名不能使用Python中的关键字
  • 慎用小写字母l和大写字母O(容易和0、1混淆)
  • 应选择有实际意义的单词作为变量名

创建变量实例:创建一个整型变量,并将其赋值为1024

number = 1024

创建其他类型的变量也是如此,例如想创建一个字符串类型的变量,直接为变量赋值一个字符串值即可

demo = "hello world"

💨扩展
使用type()查看变量的类型
使用id()查看变量所在的内存地址

number = 1024
print("number变量的类型:", type(number))
print("number变量的内存地址:", id(number))

结束语🥇

以上就是Python基础入门篇之初识Python(注释、代码缩进、编码规范、标识符、变量)

  • 欢迎大家订阅系列专栏:Python零基础入门篇🥇
  • 此专栏内容会持续更新直到完结为止(如有任何纰漏请在评论区留言或者私信)

感谢大家一直以来对hacker的支持
你们的支持就是博主无尽创作的动力💖💖💖

有关初识Python(注释、代码缩进、编码规范、标识符、变量)的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  5. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  6. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  7. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  8. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  9. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  10. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

随机推荐