【Python】Python中的常量与变量

2024-09-07 17:24:53 浏览数 (1)

常量与变量

导读

大家好,很高兴又和大家见面啦!!!

在上一篇内容中我们详细介绍了Python环境的搭建过程,在今天的内容中我们将会开始学习Python的第一个基础知识点——变量与数据类型。

在C/C 中我们学习到的变量在定义时是需要表明此时定义变量的数据类型的,那么对于Python而言,它的变量和数据类型与C/C 相比会不会有所不同呢?下面我们就一起来看一下在Python中的变量与数据类型是如何使用的吧!!!

一、新建项目

在开始正式内容之前,我们要先新建一个项目,PyCharm与VS不同,VS每次在打开时需要自主选择是打开历史文件还是新建一个项目,而PyCharm中会直接打开历史文件,如下所示:

【Python】Python中的常量与变量_Python_02【Python】Python中的常量与变量_Python_02

当我们需要新建一个项目时我们则需要通过左上角的文件来完成新项目的创建:

【Python】Python中的常量与变量_关键字_03【Python】Python中的常量与变量_关键字_03

有朋友没有看上一篇的内容,这时可能会好奇我这左上角也没有文件这个选项呀,这里我只需要找到左上角的主菜单按钮,单击就可以看到文件这个选项了:

【Python】Python中的常量与变量_Python_04【Python】Python中的常量与变量_Python_04

有朋友的PyCharm可能是英文版的,如果需要汉化的话可以在文件—>设置中下载汉化插件,具体步骤大家可以回顾上一篇内容【Python】Python环境搭建教学#保姆级教学#手把手带你安装在2.5.3 插件安装中有详细介绍,这里我就不再过多介绍。

在找到对应的按钮后我们就可以新建一个项目了:

【Python】Python中的常量与变量_Python_05【Python】Python中的常量与变量_Python_05

这里我们还是先修改项目名称,然后查看项目的存储位置,最后点击创建即可。

【Python】Python中的常量与变量_关键字_06【Python】Python中的常量与变量_关键字_06

从项目的存储路径中我们可以看到此时已经完成了新项目的创建,但是PyCharm在打开这个新项目是会弹出下面的窗口:

【Python】Python中的常量与变量_Python_07【Python】Python中的常量与变量_Python_07

这里我们只需要选择一种打开方式即可,这里我就选择新窗口好了,如下所示:

【Python】Python中的常量与变量_字面常量_08【Python】Python中的常量与变量_字面常量_08

可以看到此时在打开时PyCharm又开启了一个新的窗口来打开我们创建好的新文件,这里我们直接在新窗口中新建我们需要的文件即可,步骤还是:选择文件夹—>单击右键—>选择新建—>选择Python文件

【Python】Python中的常量与变量_关键字_09【Python】Python中的常量与变量_关键字_09

之后我们正常设置文件名即可,这里就不再继续展开。

二、常量

2.1 字面常量

常量,简单的理解就是不会改变的量

我们学过的数字1、 2、 3、 4……字母a、b、c、d……这些一眼就能知道其值的量被称为字面常量,它们都有一个特点——不能够被改变。

在C/C 中我们有学过的赋值操作符——'='就可以将其右操作对象的值赋值给左操作对象,但是如果左操作对象为常量时,此时赋值就不能正常完成,比如我想将2的值赋值给1,于是我写了这句代码:

代码语言:javascript复制
1 = 2;

此时程序就会出现报错,报错内容为不可修改的左值。

【Python】Python中的常量与变量_字面常量_10【Python】Python中的常量与变量_字面常量_10

在Python中这种语法规则也同样是被遵守的,当我们在Python中尝试修改常量的值的话,程序则会显示无法赋值给文字:

【Python】Python中的常量与变量_Python_11【Python】Python中的常量与变量_Python_11

在Python中的字面常量可以分为3类:

  • 数字字面常量——1、 2、 3……等整数和1.2、 2.3、 3.14……等小数
  • 字符串字面常量——'a'、'ab'、'abc'、'abcd'……等字符串
  • 布尔字面常量——True、False
代码语言:javascript复制
1, 2, 3, 4     # 数字字面常量
1.1, 3.1415    # 数字字面常量
'a', 'asdf'    # 字符串字面常量
True, False    # 布尔字面常量

2.2 特殊常量

Python与C/C 不同的是,在C/C 中除了字面常量外还存在三种常量:

  1. 通过const修饰的常变量
  2. 通过#define定义的常量
  3. 通过enum定义的枚举常量
【Python】Python中的常量与变量_字面常量_12【Python】Python中的常量与变量_字面常量_12

但是在Python中除了字面常量外,只有一种特殊常量——None

【Python】Python中的常量与变量_关键字_13【Python】Python中的常量与变量_关键字_13

当我们尝试着给这个常量进行赋值操作时就会出现上述报错——关键字赋值。Python中的None与C/C 中的NULL是等价的,它们都是代表的无,但是它们之间还是有些许区别:

  • 在C/C 中NULL指的是空指针,其类型为指针类型,因此我们可以通过'%p'将其值打印出来:
【Python】Python中的常量与变量_关键字_14【Python】Python中的常量与变量_关键字_14

可以看到当我们通过'%d'来打印NULL时,VS虽然能够正常打印,但是会报错——参数实际类型为void*类型,需要通过'%p'来打印,通过'%p''%d'打印出来的结果都是0;

  • 在Python中,None的值就为None,我们可以通过内建函数type()将其类型打印出来
【Python】Python中的常量与变量_字面常量_15【Python】Python中的常量与变量_字面常量_15

可以看到,在Python中对于这个特殊常量None而言,其值就是None,其类型为NoneType类型;

三、变量

与常量相对应的就是变量,简单的理解就是可以改变的量

3.1 变量的定义

在C/C 中我们要定义一个变量时我们需要指明变量的数据类型、变量名以及变量的初始值。如下所示:

代码语言:javascript复制
// 变量——变量的定义
void test4() {
	//变量的定义格式
	// 数据类型 变量名 = 初始值;
	// 初始值可有可无
	int a;	// 定义整型变量a
	char ch = 'a';	// 定义字符变量ch,并将字符a作为初始值赋值给ch
	float f = 3.14f;		// 定义单精度小数变量f,并将3.14作为初始值赋值给f
}

但是在Python中的变量与C/C 中有些许区别,在Python中我们不需要表明变量的数据类型,而是通过初始化的值来指明变量的数据类型:

代码语言:javascript复制
# 变量——变量的创建
# 创建格式
# 变量名 = 初始值
a = 1   # 定义整型变量a,并将整数1作为初始值赋值给a
b = 'a'     # 定义字符串型变量b,并将字符串'a'作为初始值赋值给b
c = 1.0     # 定义浮点型变量c,并将小数1.0作为初始值赋值给c

变量之所以被称为变量,就是因为我们可以在后续的使用过程中来根据自己的需求对变量的值进行修改,这里我就不再继续展开。

3.2 变量的命名

在计算机语言中,对于变量的命名有着一些硬性规则:

  1. 变量名必须由数字,字母,下划线构成;
  2. 在变量名中数字不能作为开头且变量名中不能包含特殊符号;
  3. 变量名不能和Python中的关键字重名;
  4. 变量中要严格区分大小写;

这四条规则对任何语言都是适用的,这里我以我们熟悉的C/C 举例:

代码语言:javascript复制
// 变量——变量的命名
void test5() {
	// 通过字母进行命名——字母需要严格区分大小写
	int a = 1;
	int A = 2;
	// 通过字符和数字进行命名——字母必须在前
	int a1 = 3;
	// 通过下划线和数字进行命名——下划线必须在前
	int _1 = 6;
	// 通过字母和下划线命名
	int a_ = 4;
	int _a = 5;
	// 通过字母、下划线和数字进行命名
	int a1_ = 7;
	int a_1 = 8;
	int _a1 = 9;
	int _1a = 10;
}

这里我们安装硬性规则定义了10个变量,下面我们来测试一下,看是否能够成功打印这些变量:

【Python】Python中的常量与变量_字面常量_16【Python】Python中的常量与变量_字面常量_16

从测试结果中可以看到,此时这10个变量都定义成功,并且都是独立的变量。

在C/C 中我们学过了很多关键字,这里以我们非常熟悉的if为例,如果此时我想定义一个叫if的变量,那肯定是会失败的,如下所示:

【Python】Python中的常量与变量_字面常量_17【Python】Python中的常量与变量_字面常量_17

当我们创建一个if变量时,VS所报的错误为语法错误,VS优先执行的是由关键字if组成的条件语句,而不是int的变量定义;在Python中if同样也是条件语句的关键词,如果此时我们定义一个同名变量,又会发生什么问题呢?

【Python】Python中的常量与变量_字面常量_18【Python】Python中的常量与变量_字面常量_18

可以看到,此时同样是报错的语法错误,也就是说,在Python中的定义变量时,如果变量与关键字重命了,程序同样也会优先执行关键字的功能。

3.2.1 关键字

由上例可知,我们在定义变量时一定要注意不能与关键字重名。这时可能就有朋友会问了,在Python中有哪些关键字呢?这个问题我们可以直接通过代码来获取:

代码语言:javascript复制
# 关键字
import keyword
print(keyword.kwlist)
# [
# 'False', 'None', 'True', 'and', 'as', 
# 'assert', 'async', 'await', 'break', 'class', 
# 'continue', 'def', 'del', 'elif', 'else', 
# 'except', 'finally', 'for', 'from', 'global', 
# 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 
# 'not', 'or', 'pass', 'raise', 'return', 
# 'try', 'while', 'with', 'yield'
# ]

通过import关键字来引入keyword模块,再将模块中的关键字列表kwlist打印出来即可获取到下面的这些关键字。从这些关键字中,我们可以看到很多我们比较熟悉的关键字:

代码语言:javascript复制
# 'False', 'True', 'assert', 'break', 'class', 
# 'continue', 'else', 'for', 'if', 'return', 'while'

但是这些关键字是否与我们所熟知的关键字的功能一致,目前我们还无从得知,随着后面学习的深入我们会慢慢的接触到这些关键字的用法,这里就不再继续展开。


当我们在给变量进行命名时,我们还需要了解一下变量命名的软性规则:

  1. 给变量命名时,尽量用能够描述变量含义的单词来表示。
  2. 如:记录数量可以使用count、记录总和可以使用sum……
  3. 当我们使用1个单词描述不清楚时,可以使用多个单词来命名,不怕变量名字长,而怕变量的含义表达的不清楚~

从这两点规则我们不难看出,我们在进行编程的过程中如果将变量的名字取好,那对于我们理解代码会提供帮助,换句话说,在进行变量命名时我们需要考虑通过变量的名字来提高代码的可读性。

当我们通过软性规则来给变量进行命名时,我们可以使用两种命名方法:

  1. 驼峰命名法:除了第一个单词的首字母之外,后序每个单词的首字母都大写~
  2. 蛇形命名法:单词之间使用下划线来进行分割

如下所示:

代码语言:javascript复制
# 变量——变量的命名
count = 0   # 记录数量时将变量命名为count
countNum = 0    # 驼峰命名法——该变量用于记录数字的数量
student_id = 0  # 蛇形命名法——该变量用于记录学生的学号

相信大家现在应该都能理解如果给变量命名以及给变量命名的方法了,常量与变量的知识点我们会在后续的学习过程中进一步拓展,这里就不再继续展开了。

结语

今天的内容到这里就全部结束了,在下一篇内容中我们将介绍Python中的数据类型的相关内容,大家记得关注哦!如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!

0 人点赞