本次教程使用的编码工具是Pycharm,对于Pycharm的安装和使用详见后面的Pycharm教程
一、处处皆对象
哈哈这里所说的对象可不是象棋里面的一对”象“和我们生活中的伴侣。
我们知道Python是一门面向对象语言,并且它是全面向对象,也就是说Python里面的函数、方法、数据类型、自定义对象都是对象,换句话说Python中处处皆对象。
当然这里我们先不去过多叙述对象的概念,后面教程会进行详细的介绍,在这里我们只需要了解一下对象的基本概念和组成。
在计算机科学中,特别是在面向对象编程的上下文中,对象通常指的是程序中的实体,它具有状态、行为和唯一的标识符。这些对象可以通过属性和方法进行操作和交互。
在面向对象编程中,我们将程序中的各种实体抽象为对象,并根据它们的共同特征和行为来定义类。然而,在自然界中,并非所有事物都可以被简单地归纳为面向对象编程中的对象。
自然界中的实例包括了各种物质和现象,例如人、动物、植物、岩石、天体、风、水等等。尽管一些自然界中的实例可能具有一些与编程对象相似的特征,比如拥有状态和行为,但它们并不一定适用于编程中对象的严格定义。
在现实世界中,一些实例可能更适合称为“对象”,比如一辆汽车、一本书、一台电脑等等。这些实例具有清晰的属性和行为,可以被用于面向对象编程中的类和对象模型。
注意:一些自然现象或抽象概念,可能并不适合简单地称之为对象,因为它们可能不具备对象的特征,比如状态、行为等。
好了到了这里我们大概知道了什么是对象,并且知道了对象的基本组成即对象由属性(变量)和行为(方法)组成,那么对象就可以去调用这些属性和行为,例如我们要定义一个学生对象,那么学生的姓名、学号等被称之为属性(其实我们也可以把属性理解为一个标签)而学生的学习、吃饭、休息等属于行为即方法。
二、标识符
所谓的标识符就是用来标识程序中变量、函数、类、模块或其他用户定义的对象的名称,换句话说我们可以通过键盘敲出来的符号都可以被称之为标识符。
标识符在Python中具有一些规则和规范,以确保它们的正确性和可读性。
2.1 标识符规则
- 标识符可以由数字、字母、下划线、美元符号$组成
- 标识符在命名的时候不能和关键字发生冲突
- 标识符在命名的时候不能以数字作为开头
补充:Python关键字
Python关键字是一些具有特殊用途的保留单词,它们在编程语言中有特定的含义,不能用作标识符(变量名、函数名等)。这些关键字用于定义语法结构、控制流程、声明变量类型等关键任务。
在Python中,可以使用内置的keyword
模块来查看Python的保留字(关键字)。
import keyword
print(keyword.kwlist)
注意:对于关键字我们不要去记忆,我们在学习和使用的过程中会去接触。
2.2 标识符规范
- 命名标识符的时候最好要见名知意
- 命名标识符的时候最好使用英文单词,不建议使用拼音
- 标识符的命名应具有一定的规范和风格,以增加代码的可读性。Python通常采用蛇形命名法(snake_case)作为命名规范,即用小写字母和下划线连接单词,例如
my_variable
- 类名通常采用大写字母开头的驼峰命名法(CamelCase),例如
MyClass
- 特殊情况下,全大写的标识符常用于常量,例如
MAX_SIZE
。 - Python是大小写敏感的,因此
my_var
和My_Var
被认为是不同的标识符。
my_variable = 42 # 合法的标识符,蛇形命名法
MyClass = MyClass() # 合法的标识符,驼峰命名法
MAX_SIZE = 1000 # 合法的常量标识符,全大写
3total = 100 # 非法,不能以数字开头
if = 5 # 非法,使用了保留字
三、注释
注释是用来解释代码、提供文档以及增强代码可读性的文本。Python中有两种类型的注释:单行注释和多行注释。
3.1 单行注释
单行注释以井号 #
开始,注释会从 #
开始一直到该行的末尾。单行注释通常用于在代码中添加短注释或说明。
# 我是一个单行注释
对于单行注释我们可以使用Pycharm的快捷键:ctrl+/
3.2 多行注释
Python中没有内置的多行注释语法,但可以使用多行字符串来实现类似的效果。通常,多行字符串(包括三重引号 """
或单引号 '''
)用作文档字符串(docstrings),它们可以位于函数、类或模块的开头,用于提供相关的文档和说明。虽然它们不会被直接解释器使用,但可以被工具和IDE用来生成文档。
"""
这是一个多行注释的示例。
它可以用来提供更详细的文档说明。
"""
def my_function():
"""
这是函数的文档字符串,也可以理解为多行注释。
"""
pass
注意1:多行字符串虽然可以用于提供注释和文档,但并不会被解释器当做注释来处理。
注意2:多行字符串会创建一个字符串对象,如果不将其赋值给变量,则会被丢弃。因此,虽然多行字符串可以用来写注释,但不会像单行注释那样被忽略掉。
四、变量
由于Python是一门动态类型语言,因此Python在定义变量的时候不需要显式地声明变量的类型即不需要去指明数据类型,这就使得变量的定义非常简单。
对于变量其实我们就可以将它理解为一个容器,只是说这个容器只能存储一个值。
在Python中,变量的定义是通过将变量名与一个值进行关联来完成的。以下是Python中定义变量的基本语法:
变量名 = 值
注意:Python的每个语句都不需要使用”;“作为结束,上述语法中的”=“被称为赋值运算符即赋值运算符右边的值可以赋值给运算符左边的变量
下面我们将简单定义一些变量作为练习
a = 10
name = "Tom"
student_age = 30
4.1 变量本质
在Python中,变量本质上是一个指向对象的标签或名称。当我们为变量赋值时,实际上是将这个名称绑定到对象上。Python中的“变量”更像是一个对象的标识符,而不是传统意义上的存储空间。前面我们提到过在Python中,一切都是对象,包括整数、字符串、函数、类等等。每个对象都有两个基本特征:身份(identity)、类型(type)和值(value)。
- 身份(identity):对象在内存中的地址,可以使用
id()
函数获取。 - 类型(type):定义了对象的行为和可用操作的类别,可以使用
type()
函数获取。 - 值(value):对象所包含的具体数据。
当你为变量赋值时,实际上是将这个变量名称指向某个对象。当你引用这个变量时,Python会查找该变量名称所指向的对象,并根据对象的类型和值来执行相应的操作。
a = 10
a = 30
在上述代码中整数10这个对象赋值给了a变量即变量a指向了整数10这个对象的内存地址,紧接着又将30这个整数对象的地址赋值给了变量a,那么我们后面就可以通过变量a去访问30这个整数对象。
五、数据类型
上述我们说过一个变量可以指向一个对象,那么这个对象就肯定有类型,对此Python内置了一些基本数据类型。
注意:自定义对象不是 Python 内建的数据类型,但它们可以被认为是 Python 中的数据类型的一种,因为它们具有数据类型的行为和特性。
下面我们就简单了解一下这些数据类型,当然对于这些数据类型会在下个教程着重讲解,这里只是简单使用一下。
# int
a = 1
print(id(a))
print(a)
print(type(a))
print('--------------------')
# float
b = 3.14
print(id(b))
print(b)
print(type(b))
print('--------------------')
# complex
c = 2 + 4j
print(id(c))
print(c)
print(type(c))
print('--------------------')
# boolean
d = True
print(id(d))
print(d)
print(type(d))
print('--------------------')
# str
e = '我是一个字符串'
print(id(e))
print(e)
print(type(e))
print('--------------------')
注意:上述代码中id()可以用于获取内存地址,而type()则可以用于获取对象的类型
关于Python的基本数据类型的详细讲解放在下一个教程 。
关于Python更多的内容可以关注《Python从入门到精通》,该专栏主要用于分享Python学习教程,该系列教程只有干货没有花里胡哨,欢迎大家一起来学习探讨一起进步。