【Python】Python中的常量与变量

常量与变量

  • 导读
  • 一、新建项目
  • 二、常量
    • 2.1 字面常量
    • 2.2 特殊常量
  • 三、变量
    • 3.1 变量的定义
    • 3.2 变量的命名
      • 3.2.1 关键字
  • 结语

封面

导读

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

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

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

一、新建项目

在开始正式内容之前,我们要先新建一个项目,PyCharm与VS不同,VS每次在打开时需要自主选择是打开历史文件还是新建一个项目,而PyCharm中会直接打开历史文件,如下所示:
新建项目
当我们需要新建一个项目时我们则需要通过左上角的文件来完成新项目的创建:
新建项目2
有朋友没有看上一篇的内容,这时可能会好奇我这左上角也没有文件这个选项呀,这里我只需要找到左上角的主菜单按钮,单击就可以看到文件这个选项了:
新建项目3

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

在找到对应的按钮后我们就可以新建一个项目了:
新建项目4
这里我们还是先修改项目名称,然后查看项目的存储位置,最后点击创建即可。

新建项目5
从项目的存储路径中我们可以看到此时已经完成了新项目的创建,但是PyCharm在打开这个新项目是会弹出下面的窗口:
新建项目6
这里我们只需要选择一种打开方式即可,这里我就选择新窗口好了,如下所示:
新建项目7
可以看到此时在打开时PyCharm又开启了一个新的窗口来打开我们创建好的新文件,这里我们直接在新窗口中新建我们需要的文件即可,步骤还是:选择文件夹—>单击右键—>选择新建—>选择Python文件
新建项目8
之后我们正常设置文件名即可,这里就不再继续展开。

二、常量

2.1 字面常量

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

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

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

1 = 2;

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

字面常量

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

  • 数字字面常量——1、 2、 3……等整数和1.2、 2.3、 3.14……等小数
  • 字符串字面常量——'a'、'ab'、'abc'、'abcd'……等字符串
  • 布尔字面常量——True、False
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中除了字面常量外,只有一种特殊常量——None
特殊常量
当我们尝试着给这个常量进行赋值操作时就会出现上述报错——关键字赋值。Python中的None与C/C++中的NULL是等价的,它们都是代表的无,但是它们之间还是有些许区别:

  • 在C/C++中NULL指的是空指针,其类型为指针类型,因此我们可以通过'%p'将其值打印出来:

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

  • 在Python中,None的值就为None,我们可以通过内建函数type()将其类型打印出来

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

三、变量

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

3.1 变量的定义

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

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

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

# 变量——变量的创建
# 创建格式
# 变量名 = 初始值
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++举例:

// 变量——变量的命名
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个变量,下面我们来测试一下,看是否能够成功打印这些变量:

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

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

变量的命名2
当我们创建一个if变量时,VS所报的错误为语法错误,VS优先执行的是由关键字if组成的条件语句,而不是int的变量定义;

在Python中if同样也是条件语句的关键词,如果此时我们定义一个同名变量,又会发生什么问题呢?
变量的命名3
可以看到,此时同样是报错的语法错误,也就是说,在Python中的定义变量时,如果变量与关键字重命了,程序同样也会优先执行关键字的功能。

3.2.1 关键字

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

# 关键字
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打印出来即可获取到下面的这些关键字。从这些关键字中,我们可以看到很多我们比较熟悉的关键字:

# 'False', 'True', 'assert', 'break', 'class', 
# 'continue', 'else', 'for', 'if', 'return', 'while'

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


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

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

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

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

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

如下所示:

# 变量——变量的命名
count = 0   # 记录数量时将变量命名为count
countNum = 0    # 驼峰命名法——该变量用于记录数字的数量
student_id = 0  # 蛇形命名法——该变量用于记录学生的学号

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

结语

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

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

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

相关文章

《代号鸢》国服,能否推动国乙市场重新洗牌?

灵犀互娱《如鸢》顺利拿到版号,再次搅浑了国乙市场这潭水。 六月份游戏版号审批公布后,灵犀互娱运营的《如鸢》引起了关注,这个与《代号鸢》原名《三国志如鸢》雷同的名字,竟然让《代号鸢》玩家大面积破防了。 其实目前关于《如…

游戏冻结工具 -- 雪藏HsFreezer v1.78

软件简介 HsFreezer是一款多功能游戏冻结工具,它允许用户随意暂停和继续游戏,同时具备系统优化和进程管理的功能。这款软件特别适合希望在游戏加载时间节省或在游戏与其他任务之间快速切换的用户。其主要特点包括快捷键操作、单锁模式的丝滑切换&#x…

湖北建筑安全员A证跨省调出审核不通过?可能是这些原因

湖北建筑安全员A证跨省调出审核不通过?可能是这些原因 湖北建筑安全员A证跨省调出审核不通过怎么办? 湖北建筑安全员ABC正常情况下都是可以跨省调出的,现在建筑三类人员安全员ABC在全国工程质量安全监管信息平台都是可以查询的,在…

《中国化工贸易》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《中国化工贸易》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《中国化工贸易》级别? 答:国家级。主管单位:中国石油和化学工业联合会 主办单…

据阿谱尔统计,全球mRNA原料酶市场预计2024年达到11.98亿美元

Codexis 宣布与 Aldevron 达成协议,授予 Aldevron Codexis 的 Codex HiCap RNA 聚合酶的全球制造和商业化权利。 Applied DNA、Maravai LifeSciences (MRVI) 和 Alphazyme 达成协议,Alphazyme 将扩大 Applied DNA 专有 Linea™ RNA 聚合酶 (RNAP) 的生产…

图书管理系统(含登录验证码操作)

文章目录 登录需求分析登录界面注册功能:登录功能:忘记密码:验证码规则: 图书管理系统需求Book包Book类BookList类 IOperation包IOperation接口查找图书新增图书删除图书显示图书借阅图书归还图书退出系统 User包user类Users类adm…

干货分享|如何将前端代理服务器(BFF)接入身份认证(3完结篇)

续集3 前篇文章在前面发布,同学们可以自行找一下。 本篇文章将继续通过实例来详细讲解如何将前端代理服务器(BFF)接入身份认证。我们将使用一个示例应用来演示 BFF 与身份认证的集成过程。 3 在 Full BFF 中接入认证平台 本小节将介绍如何…

矢量绘图设计Sketch中文 Sketch直装安装包

Sketch是一款专为UI设计师和UX专家打造的矢量图形设计软件,以其简洁的界面、强大的功能和高效的协作能力而闻名。Sketch支持快速创建高质量的UI界面、图标、图形和插画,其矢量绘图工具让设计细节更加精准。同时,Sketch内置丰富的插件和组件库…

设计模式-结构型-08-组合模式

文章目录 1、学校院系展示需求2、组合模式基本介绍3、组合模式示例3.1、 解决学校院系展示(透明模式1)3.2、高考的科目(透明模式2)3.3、高考的科目(安全组合模式) 4、JDK 源码分析5、注意事项和细节 1、学校…

MySQL之应用层优化(二)

应用层优化 Web服务器问题 寻找最优并发度 每个Web服务器都有一个最佳并发度——就是说,让进程处理请求尽可能快,并且不超过系统负载的最优的并发连接数。这就是前面说的最大系统容量。进行一个简单的测量和建模,或者只是反复试验&#xf…

Python基础入门知识

目录 引言 简要介绍Python语言 为什么要学习Python Python的应用领域 Python安装和环境配置 Python的下载和安装(Windows, macOS, Linux) 配置Python环境变量 安装和使用IDE(如PyCharm, VS Code) Python基本语法 注释 变量和数据类型(数字,字符串,列表,元组,字典,…

互联网医院系统源码解析:如何打造智能数字药店APP?

在互联网技术飞速发展的今天,医疗行业也在不断与之融合,互联网医院系统应运而生。特别是智能数字药店APP的兴起,使得医疗服务变得更加便捷、高效。本文将深入解析互联网医院系统源码,探讨如何打造一个智能的数字药店APP。 一、互…

思维,CF 739A - Alyona and mex

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 739A - Alyona and mex 二、解题报告 1、思路分析 我们考虑区间mex运算的值最大也就是区间长度,所以我们最大值的上界就是所有区间中的最小长度,假如记为mi 我们一定可以构造出答案…

【C++】const详解

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文作为 JohnKi ,引用了部分大佬的案例 📢未来很长,…

RabbitMQ 更改服务端口号

需求 windows环境下,将RabbitMQ默认的端口号 5672 改为 11001 实现 本机RabbitMQ版本为3.8.16,找到配置文件位置,路径为:C:\Users\%USERNAME%\AppData\Roaming\RabbitMQ\advanced.config 配置文件默认内容为空 填写修改端口号…

QGC添加添加QML可访问的单例

文章目录 前言一、添加文件二、修改qgroundcontrol.pro三、修改QGCApplication.cc四、修改QGroundControlQmlGlobal.h五、修改QGroundControlQmlGlobal.cc六、测试前言 QGC 4.2 一、添加文件 在src目录下添加文件夹SingletonTest,在里面新建SingletonTest.cc和SingletonTes…

【Sklearn-驯化】一文搞懂很难的EM算法以及实践

【Sklearn-驯化】一文搞懂很难的EM算法以及实践 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注:微信公…

Unity扩展 Text支持超链接文本

重点提示:当前的文本扩展支持多个超链接,支持修改超链接规则和支持修改超链接颜色。 近期在邮件文本中用到了超链接。最初是在邮件窗口中新加一个按钮用来超链接跳转,之后发现效果表现不如直接在文本中添加,后经过几个小时的资料…

两步解决Hugging Face下载模型速度慢/连接超时/无法下载问题

博主使用的配置是 x86_64 Linux服务器 第一步设置代理镜像: export HF_ENDPOINT=https://hf-mirror.com 第二步(使用代码时,删除引号): --token参数表示下载的模型是否需要登录验证(部分模型需要token) huggingface-cli download --token "获取的hf_*******token…

如何选择优质模型?SD3性能究竟如何?

遇到难题不要怕!厚德提问大佬答! 厚德提问大佬答12 厚德提问大佬答第十二期 你是否对AI绘画感兴趣却无从下手?是否有很多疑问却苦于没有大佬解答带你飞?从此刻开始这些问题都将迎刃而解!你感兴趣的话题,厚德…