【编程基础之Python】9、Python中的变量

news2024/11/17 22:43:26

【编程基础之Python】9、Python中的变量

  • Python中的变量
    • 变量的定义和赋值
      • 变量的命名规范
      • 变量的类型
      • 变量的作用域
      • 变量的赋值
      • 特殊的变量
    • 删除变量
  • 总结

Python中的变量

在Python中,变量是用来存储数据的一种方式。Python是一种动态类型语言,因此在声明变量时不需要指定其数据类型。变量在Python中具有非常重要的作用,可以用于存储计算结果、操作数据、传递参数等。本文将详细介绍Python变量的相关知识。

变量的定义和赋值

在Python中,定义变量是非常简单的。可以通过等于号=来将一个值赋给变量。例如:

x = 5
y = 'Hello Python'
print(x, y)

这里,我们定义了两个变量x和y,其中x被赋值为整数5,而y被赋值为字符串’Hello Python’。

image-20230304234727971

Python中的变量不需要事先声明类型,而是在赋值的时候根据右侧的值自动推断类型,可以是数字、字符串、列表、字典、元组等数据类型。

需要注意的是,变量名必须是一个合法的标识符,即只能包含字母、数字和下划线,且不能以数字开头

变量的命名规范

在Python中,变量名的命名有一些规范,以便于其他人阅读代码时更易于理解。下面是一些Python变量命名的规范:

  • 变量名应该具有描述性,以便于其他人阅读代码时能够清楚地知道变量的含义。

  • 变量名应该用小写字母,如果变量名由多个单词组成,则可以使用下划线来分隔单词。

  • 变量名的第一个字符必须是字母或下划线。

  • 变量名应该避免使用Python中的关键字,例如if、else、while等。

    在Python中,有一些被特别保留的单词,这些单词被称为“关键字”或“保留字”。这些单词具有特殊的含义和用途,不能作为变量名或其他标识符的名称。在编写代码时,应该避免使用这些单词作为标识符的名称,否则可能会引发一些不必要的错误。

    以下是一些关键字:

    • None:表示空值或者不存在的值。

    • False:布尔值,表示假。

    • True:布尔值,表示真。

    • and:逻辑运算符,表示“与”。

    • as:用于创建别名。

    • assert:用于断言某个条件是真的。

    • async:用于定义异步函数或者异步上下文管理器。

    • await:用于在异步函数中等待另一个协程完成。

    • break:用于跳出循环。

    • class:用于定义类。

    • continue:用于跳过本次循环。

    • def:用于定义函数。

    • del:用于删除对象。

    • if:用于定义条件语句。

    • elif:用于在多分支的if语句中表示其中的一个条件。

    • else:用于在if语句条件为False时执行一个代码块。

    • except:用于捕捉异常。

    • finally:用于定义无论try语句块中是否出现异常都将执行的代码块。

    • for:用于定义循环。

    • from:用于从一个模块中导入部分模块到当前命名空间中。

    • global:用于指定变量为全局变量。

    • import:用于导入模块。

    • in:用于检查一个序列中是否包含一个特定的元素。

    • is:用于测试两个变量是否引用同一个对象。

    • lambda:用于创建匿名函数。

    • nonlocal:用于指定变量为外层嵌套函数的变量。

    • not:逻辑运算符,表示“非”。

    • or:逻辑运算符,表示“或”。

    • pass:空语句,用于占位或者表示不执行任何操作。

    • raise:用于触发异常。

    • return:用于从函数中返回值。

    • try:用于包含可能出现异常的代码块。

    • while:用于定义循环。

    • with:用于定义一个上下文管理器。

    • yield:用于从生成器中返回值。

  • 变量名应该尽量短,但不应该过于简单,以至于难以理解变量的含义。

  • 变量名应该使用名词。

例如,以下是一些Python变量命名的例子:

count = 0
user_name = 'wux_labs'
is_active = True
print(count, user_name, is_active)

image-20230304234955414

变量的类型

Python是一种动态类型语言,因此变量在声明时不需要指定数据类型。Python会根据变量所赋的值来自动判断变量的数据类型。例如:

a = 5        # a是整数类型
b = 'Hello'  # b是字符串类型
c = 3.14     # c是浮点数类型
d = True     # d是布尔类型
print(a, b, c, d)

image-20230304235111077

需要注意的是,变量的类型可以随时改变。例如,我们可以将一个整数变量重新赋值为一个字符串:

a = 5
print(type(a), a)
a = 'Hello'
print(type(a), a)

image-20230304235242493

变量的作用域

在Python中,变量的作用域是指变量可以被访问的范围。Python中不同的作用域:

  • 全局作用域(global scope):定义在模块层次的变量或函数,可以在模块中的任何地方被访问。
  • 局部作用域(local scope):定义在函数或类方法中的变量,只能在函数或类方法中被访问。

在Python中,变量的作用域是由它所在的代码块(block)决定的。每个代码块都有它自己的作用域,当Python解释器在执行代码块时,会创建一个新的作用域,当代码块执行完毕时,这个作用域就被销毁了。

变量的赋值

在Python中,定义赋值是非常简单的,可以通过等于号=来将一个值赋给变量。例如:

x = 5
y = 'Hello Python'

上述语句表示将整数5赋值给变量x。如果该变量之前不存在,则创建一个新的变量;如果该变量已经存在,则将其值更新为新的值。

变量可以被重新赋值为另一种类型的数据,例如:

x = 5
x = "Hello Python"

在这个例子中,我们先将整数5赋值给变量x,然后将字符串"Hello Python"赋值给变量x。由于Python是动态类型的,所以这种操作是有效的。

Python中的变量还支持多个赋值,例如:

x, y, z = 5, "Hello Python", [1, 2, 3, 4, 5]
print(x, y, z)

在这个例子中,我们使用一个语句将整数5、字符串"Hello Python"和列表[1, 2, 3, 4, 5]同时赋值给变量x、y和z。

image-20230304235509949

在Python中还支持多个变量指向同一个对象,例如:

a = b = c = 10
print(a, b, c)

上述语句表示将整数10赋值给变量a、b、c。此时a、b、c三个变量都指向同一个整数对象10。

image-20230304235644633

特殊的变量

Python 中有一些特殊的变量,它们有着特定的作用,包括:

  • __name__:这是一个特殊的变量,它会在每个Python文件中自动创建。当文件被直接运行时,__name__的值为"__main__",当文件被作为模块导入时,__name__的值为文件名。
  • __doc__:这个变量用于存储文档字符串,它可以通过在函数、类或模块的第一行编写一个字符串来定义。文档字符串可以通过在Python中使用help()函数来访问。
  • __file__:这个变量包含当前模块的文件名(包括路径),如果模块是在内存中创建的,则该变量的值为None
  • __builtins__:这个变量包含Python内置的函数和变量的名称空间。可以通过访问该变量来获得Python内置函数的列表。
  • __package__:这个变量包含当前模块的包名,如果模块不在包中,则该变量的值为None

这些特殊变量通常是只读的,不能被重新赋值。

删除变量

在Python中删除变量可以使用del关键字。del可以删除单个变量、删除多个变量。

x = 5
print(x)
del x
print(x)

image-20230305000226610

以上案例中,我们先定义了变量x,并打印x,然后将变量x删除,删除后则无法访问。

使用del删除的变量或元素会被彻底删除,无法再次访问或使用。如果尝试访问已删除的变量或元素,Python会抛出NameErrorKeyError异常。因此,在删除变量或元素之前,请确保它们不再需要使用。

总结

总之,Python变量是一个基本的概念,用于存储数据。Python变量的命名需要遵循一定的规则,可以使用赋值语句创建变量,支持多个变量指向同一个对象,支持变量类型的动态转换。在删除变量或元素之前,请确保它们不再需要使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JWT利用在ctfhub-easy_login拿到flag

目录 什么是JWT? jwt由三个部分组成:header.payload.signature header部分: payload部分:声明 signature部分: JWT验证过程: ctfhub-easy_login 目的:拿到flag 过程分析以及实操&#x…

阿里云轻量服务器--Docker--Nacos安装(使用外部Mysql数据存储)

前言:docker 安装nacos 如果不设置外部的mysql 默认使用内嵌的内嵌derby为数据源,这个时候如果,重新部署nacos 则会造成原有数据丢失情况; 1 默认安装的nacos 启动后使用的是内嵌的存储: 2 使用外部mysql 作为存储&a…

Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法

关于/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28’ not found出现报错,建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考! 环境 # uname -a Linux Ubuntu 5.4.0-144-generic #161~18.04.…

[1.4]计算机系统概述——操作系统的体系结构

第一章 计算机系统概述 操作系统的体系结构 大内核/单内核/宏内核微内核 通过之前的学习,我们知道计算机系统的层次结构是这样的。 但是操作系统的内部其实还可以再进一步地划分。 一部分是内核的功能,一部分是非内核的功能。 操作系统最核心的功能&…

计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…

【云原生】Trace、Metrics、Logging 选型

背景分布式追踪的起源自从微服务的兴起开始,整个系统架构开始变得极为庞大和复杂,但是服务之间的调用关系,调用消耗时间等等信息却依然是半黑盒的状态。为了能够将调用的链路进行串联,将系统的各种指标数据展示出来以使得系统的链…

哈希->模拟实现+位图应用

致前行路上的人: 要努力,但不要着急,繁花锦簇,硕果累累都需要过程! 目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1概念介绍: 1.1.2 unordered_map的接口说明 1.2unordered_set 1.3常见面试题oj…

到底什么才是幻读?

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…

【NLP相关】基于现有的预训练模型使用领域语料二次预训练

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

《七》JavaScript 中的作用域、作用域链、执行上下文、执行上下文栈

JS 引擎会在执行所有代码之前,先在堆内存中创建一个全局对象(Global Object、GO),包含 String、Math、Date、parseInt() 等属性和方法。所有作用域都可以访问这个全局对象。 在浏览器中 Global Object 就是 Window 对象。 执行上…

不用机器学习不用大数据,给你讲通ChatGPT的深层原理

ChatGPT现在看来已经异常火爆了,很多人已经熟知,并且开始练习使用或者开始利用他开始实践了。但仍然有很多人在观望,在疑惑,今天狗哥不用那些高端大气的机器学习亦或是大数据还给你讲通ChatGPT深层到底是个啥逻辑。 目录 1. 聊家…

CV——dy83 接昨天的论文中DAM模块:压缩-激励的宽残差网络在图像分类中的应用

压缩-激励的宽残差网络在图像分类中的应用(ICIP 2019)1. INTRODUCTION2. PROPOSED METHODS2.1 总体框架2.2 通道的重要性3. EXPERIMENTS3.1 Datasets3.2 训练和测试的设置3.3 分类结果及分析4. CONCLUSIONSQUEEZE-AND-EXCITATION WIDE RESIDUAL NETWORKS…

CSS 选择器以及CSS常用属性

目录 🐇今日良言:可以不光芒万丈,但不要停止发光 🐯一、写CSS的三种方法 🐯二、CSS选择器的常见用法 🐯三、CSS常用属性 🐇今日良言:可以不光芒万丈,但不要停止发光 🐯一、写CSS的三种方法 CSS的基本语…

目标检测开源数据集汇总

导 读本文汇总了一些开源目标检测类的数据集,附下载链接。多显著性对象数据集数据集链接:http://m6z.cn/5AsmXB本数据集共有 1224 张图像来自四个公共图像数据集:COCO、VOC07、ImageNet 和 SUN。Amazon Mechanic Turk 工作人员将每个图像标记…

Firebase入门使用 01

官网 firebase.google.com 解决问题 firebase 帮助解决 数据库 和 API之间的问题 这样我们就可以 集中精力开创应用。 快速上手样例指南 https://github.com/firebase 提供的服务 其中80%用不到,下面是一些我们可以用到的服务。 Authentication:用户认证管理…

Qt安装与使用经验分享;无.pro文件;无QTextCodec file;Qt小试;界面居中;无缝;更换Qt图标;更换Qt标题。

1、切换安装下载源 《Qt安装教程》先推荐一篇安装文章:《Qt安装教程》 Qt 5.15 之后已经不提供离线安装包了,就是那个 3.7G 的 exe 安装包。请看官方说明,所以只能用在线安装包。 1,下载在线安装包 QT 在线安装包链接&#xff…

基于WSL2和Clion搭建Win下C开发环境

系列文章目录 一、基于WSL2和Clion搭建Win下C开发环境 二、make、makeFile、CMake、CMakeLists的使用 三、全面、详细、通俗易懂的C语言语法和标准库 文章目录系列文章目录前言WSL2安装WSL常用命令VSCode连接WSLroot密码以systemd启动配置sshClion结语前言 Win下C语言开发环境…

zabbix-API对接实录:关键基础设施数据清洗和封装函数(php数组函数、数据清洗、数据结构化)

系列文章目录 Zabbix监控系统PHP-API开发测试实录Zabbix监控系统开发(2):JSON多维数组筛选字段是否包含字符串的解决方案Zabbix物联网可视化开发文档 文章目录系列文章目录前言一、zabbix-API数据爬虫二、主机ID封装接口1.封装API接口2.数据处理封装函数三、组ID封装接口1.格式…

汽车 Automotive > T-BOX GNSS高精定位测试相关知识

参考:https://en.wikipedia.org/wiki/Global_Positioning_SystemGPS和GNSS的关系GPS(Global Positioning System),全球定位系统是美国军民两用的导航定位卫星系统,GPS包含双频信号,频点L1、L2和L5GNSS&…

RecyclerView ViewType二级

实现效果描述: 1、点击recyclerview中item,列表下方出现其他样式的item,作为子item,如下所示 所需要的java文件和xml文件有: 1、创建FoldAdapteradapter, 在FoldAdapter中,定义两种不同的类型&#xff…