Python语言基础(二):注释、保留字与标识符、变量

前言:精通一门编程语言的不二法门,在于深刻理解并掌握其基础,并通过实践来不断磨砺技能,正如那句老话所说:“熟能生巧”。从本章起,我们将正式启程,踏上Python开发的奇妙之旅,一同感受Python带来的简洁与乐趣。
在本章中,我们将逐步揭开Python的神秘面纱,内容包括但不限于:

  1. 注释:了解如何在代码中添加注释,以提高代码的可读性和维护性。
  2. 保留字与标识符:识别Python中的保留字,学习如何为变量和函数命名。
  3. 变量:掌握变量的声明和使用,了解Python中的数据存储机制。

一、注释

在python种,有3种类型的注释:单行注释、多行注释、文件编码声明注释。

1、单行注释

单行注释使用井号(#)标记,仅对该行有效,井号后面的内容都会被Python解释器忽略。

# 这是一个单行注释
print("Hello, World!")  # 这行代码打印 "Hello, World!"

2、多行注释

多行注释可以使用三个单引号(''')或三个双引号(""")来包围注释内容,可以跨越多行。
使用三个单引号的多行注释:

'''
这是一个多行注释的例子。
你可以在这里写很多行注释,
这些注释都不会被Python解释器执行。
'''

使用三个双引号的多行注释:

"""
这也是一个多行注释的例子。
同样可以跨越多行。
"""

3、文件编码声明注释

文件编码声明注释用于指定Python源代码文件的编码格式,通常位于文件的第一行或第二行。这种注释有助于确保文件在不同环境下的兼容性。

# -*- coding: utf-8 -*-
# 这是文件编码声明注释,指定了文件使用UTF-8编码
print("你好,世界!")

编码声明注释遵循特定的格式,coding:后面跟着编码名称,常见的编码有utf-8ascii等。这个声明对于非ASCII字符的文件尤为重要,因为它告诉Python解释器如何正确地读取和解释文件中的字符。
请注意,从Python 3开始,源代码文件默认使用UTF-8编码,因此在大多数情况下,如果文件中只包含ASCII字符,这个声明是可选的。但如果文件包含非ASCII字符,添加编码声明是一个好习惯。

4、代码缩进

在Python中,代码缩进非常重要,因为它决定了代码块的结构。Python使用缩进来表示代码的层级关系,这与其他编程语言使用大括号(如C、C++、Java)或关键字(如JavaScript)来表示代码块的方式不同。
以下是关于Python代码缩进的一些要点:
缩进的必要性
Python强制要求代码块必须有缩进,这是语法的一部分。如果代码块的缩进不一致或不正确,Python解释器会抛出IndentationError错误。
缩进的一致性
在同一个代码块中,所有的行必须有相同的缩进级别。通常,Python社区推荐使用4个空格作为标准缩进,但你也可以使用一个制表符(tab)。重要的是,一旦选择了缩进方式(空格或制表符),就应该在整个项目中保持一致。
缩进级别
每个级别的缩进表示一个新的代码块。例如,在if语句、for循环、while循环、函数定义def和类定义class中,都需要增加缩进级别。

if True:
    # 第一个缩进级别
    print("Hello, World!")
    if True:
        # 第二个缩进级别
        print("This is a nested block.")

缩进与代码块
缩进用于定义代码块的开始和结束。当你减少缩进级别时,意味着你退出了当前的代码块。

for i in range(3):
    # 循环体的开始
    print(i)
    # 循环体的结束,不需要显式的结束语句

悬挂缩进
悬挂缩进指的是在没有缩进的行后面紧跟着一个缩进的行。这在Python中是不允许的,会导致SyntaxError

错误的悬挂缩进示例:

print("Hello")
    print("World")  # 这行会产生SyntaxError

空白行
虽然空白行不影响Python程序的执行,但它们可以提高代码的可读性。通常,函数和类定义之间会有一个空白行,而函数或方法内的逻辑块之间也可以使用空白行来分隔。
编辑器和IDE的支持
大多数现代代码编辑器和集成开发环境(IDE)都支持自动缩进,并且可以配置为使用空格或制表符。它们还可以高亮显示不一致的缩进,帮助开发者维护代码的整洁和一致性。
正确使用缩进是编写清晰、可维护Python代码的关键。Python的这种设计选择使得代码更加清晰,但也要求开发者严格遵守缩进规则。

二、保留字与标识符

1、保留字

在Python中,保留字(也称为关键字)是那些被Python语言自身使用的词汇,它们具有特殊的意义,不能用作变量名、函数名、类、模块和其他对象的名称来使用。Python的保留字是由Python语言规范定义的,它们用于表示特定的语法结构和功能。

以下是Python 3.9版本中的所有保留字列表:

False               class             finally         is               return
None                continue          for             lambda           try
True                def               from            nonlocal         while
and                 del               global          not              with
as                  elif              if              or               yield
assert              else              import          pass
break               except            in              raise

这些保留字涵盖了Python编程中的基本元素,包括但不限于:

  • 控制流if, else, elif, while, for, break, continue, return, try, except, finally, with, raise
  • 逻辑运算符and, or, not
  • 数据类型True, False, None
  • 函数定义def, lambda
  • 类定义class
  • 模块和包import, from, as
  • 变量作用域global, nonlocal
  • 循环控制in, yield
  • 其他assert, del, pass, with

了解这些保留字是非常重要的,因为如果你尝试将它们用作变量名或其他标识符,Python解释器会抛出SyntaxError错误。例如:

if = True  # 错误:'if' 是保留字,不能用作变量名

为了避免这种错误,你应该确保你的变量名、函数名和类名不与这些保留字冲突。在实际编程中,遵循良好的命名习惯和代码风格指南可以帮助你避免这类问题。

2、标识符

在Python中,标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。标识符遵循以下规则:

首字符:标识符的第一个字符必须是字母(A-Z或a-z)或下划线(_)。它不能以数字开头。

后续字符:标识符的后续字符可以是字母、数字(0-9)或下划线。

长度:标识符没有长度限制,但必须在一行内。

大小写敏感:Python是大小写敏感的语言,这意味着Variablevariable被视为两个不同的标识符。

保留字:标识符不能是Python的保留字,例如ifforwhile等。

数字开头:标识符不能以数字开头,例如2variable是非法的。

特殊字符:标识符不能包含空格、标点符号或其他特殊字符,例如my-variablemy!variable是非法的。

Unicode字符:Python 3支持Unicode字符在标识符中,这意味着你可以使用非ASCII字符,如中文、日文、希腊字母等。

约定:尽管技术上可能允许,但通常建议避免使用以下划线开头的标识符,除非它们是用于私有变量的约定(例如_私有变量)。单个下划线(_)和双下划线(__)有特殊的含义,特别是在类定义中。

命名约定:Python社区有一些约定,比如PEP 8风格指南,推荐使用小写字母和下划线来分隔单词(snake_case),例如my_variable。对于类名,通常使用首字母大写的驼峰式命名(CamelCase),例如MyClass

以下是一些合法和非法的标识符示例:

  • 合法的标识符:

    • myVariable
    • _my_variable
    • variable1
    • class
    • temp2value
    • tempValue2
    • _my_class
  • 非法的标识符:

    • 2variable(以数字开头)
    • my-variable(包含减号)
    • my variable(包含空格)
    • class(Python保留字)
    • my!variable(包含感叹号)

三、变量

在Python中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。变量是一种存储数据值的容器。变量使得程序员能够在程序中引用和操作数据。以下是关于Python变量的一些关键点:

1、变量的定义和赋值

在Python中,变量不需要显式声明数据类型,它们是动态类型的。你可以通过赋值来创建一个变量:

x = 10          # x 是一个整数
name = "Alice"  # name 是一个字符串
is_valid = True # is_valid 是一个布尔值

2、变量命令规则

①变量名必须是一个有效的标识符
②变量名不能使用Python中的保留字
③谨慎使用小写字母l和大写字母O

3、动态类型

Python是动态类型语言,这意味着同一个变量可以在程序的不同部分被赋予不同类型的值:

age = 25        # age 被赋值为整数
age = "thirty"  # 同一个变量 age 现在被赋值为字符串

4、变量的作用域

变量可以有局部作用域(在函数或代码块内部定义)和全局作用域(在所有函数之外定义)。

x = 5  # 全局变量

def my_function():
    y = 10  # 局部变量
    print(y)

my_function()  # 输出 10
print(x)       # 输出 5

5、变量的类型

Python中的变量可以存储任何类型的数据,包括但不限于:

  • 整数(int
  • 浮点数(float
  • 字符串(str
  • 布尔值(bool
  • 列表(list
  • 元组(tuple
  • 字典(dict
  • 集合(set

6、变量的可变性

Python中的一些数据类型是可变的(如列表和字典),而另一些是不可变的(如整数、浮点数和字符串)。这意味着你可以修改可变类型的值,但不能修改不可变类型的值。

a = [1, 2, 3]  # 列表是可变的
a.append(4)   # 修改列表
print(a)      # 输出 [1, 2, 3, 4]

b = 123       # 整数是不可变的
# b[0] = 1    # 这会引发错误,因为整数是不可变的

7、未定义的变量

尝试访问未定义的变量会导致NameError

print(c)  # 如果 c 未被定义,会引发 NameError

8、变量的删除

你可以使用del语句删除变量:

x = 5
del x  # 删除变量 x
# print(x)  # 尝试访问已删除的变量会引发 NameError

变量是Python编程中非常基础和重要的概念,理解它们的工作原理对于编写有效的Python代码至关重要。

posted @ 2024-12-07 14:46  Linux运维技术栈  阅读(108)  评论(0编辑  收藏  举报