【0005】Python变量详解
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢!
本文内容体系结构如下:

任何一个语言编写的程序或者项目,都需要数据的支持,没有数据的项目不能称之为一个项目,也没有任何使用意义。而数据需要解决的问题之一就是存储问题, Python变量就可以用来存储数据。本文主要讲解Python相关概念和操作。
一、什么是变量
1.1 概念
变量(variable)是计算机语言中能储存计算结果或能表示值的抽象概念,是用于存储数据的容器。用大白话说就好比装水的杯子,吃饭的碗一样,用来装东子的。在Python中,变量是数据的引用。变量名指向内存中存储的数据。Python是一种动态类型语言,意味着变量的类型可以随时改变。
1.2 特性
- 动态类型:变量可以在任何时候被赋予新的数据类型。
- 引用类型:变量存储的是数据的引用,而不是数据本身。
二、变量的命名规则
一个程序中会有多个变量,为了区分这多个变量,计算机会给每个变量分配一个内容地址(这个地址在Python中可以使用id()函数来获取),但这个地址不便于程序员记忆和操作,所以我们可以给变量取一个别名,来区分不同的变量,当然,给变量取名也是要遵守一些规范的,不是能随便乱取的。
2.1 命名规范
- 大小写敏感:
Var和var是两个不同的变量。 - 合法字符:变量名只能包含字母(a-z, A-Z)、数字(0-9)和下划线(_)。变量名不能以数字开头。
- 不能使用关键字:如
class,def,if等。
2.2 命名约定
- 驼峰命名法:
CamelCase(通常用于类名)。小驼峰命名法指除了第一个单词的首字母之外,后续每个单词的首字母都大写(在类的命名中,经常采取大驼峰命名法,每个单词的首字母都大写)。 - 下划线命名法:
snake_case(通常用于函数名和变量名)。
2.3 注意事项
- 以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。
- 标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误
2.4 示例
# 合法的变量名
var1 = 100
_var2 = 200
var_3 = 300# 非法的变量名
# 4var = 400 # 不能以数字开头
# class = "Class" # 不能使用关键字
三、变量赋值
Python 变量的赋值指的是将数据存入到变量这个容器中的过程。
与 C 、Java等语言不同,Python 变量无须声明数据类型就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量,换句话说 Pyhton 创建变量就必须赋值。
Python 变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为字符串,一会儿被赋值为整数。如果想要知道存储到Python变量中的数据类型,可以使用type()函数来获取。
3.1 变量赋值基本语法
变量名 = 数据
示例:
# 为了代码的可读性,我们通常在“=”号前后加上一个空格
a = 10
print(a)
# 使用 type()语句来判断变量的类型
print(type(a))
a = 'Python'
print(a)
print(type(a))
执行结果如下:
10
<class 'int'>
Python
<class 'str'>
第一次使用=是创建这个变量 a,而第二次使用=则是修改了变量 a的值。
从执行结果可以看到,变量a的值从最初创建是的 int (整数)变为了修改后的 str(字符串)。int、str是 Python 的基本数据类型,关于数据类型的知识点,可以关注我下一篇文章《Python 数据类型详解》。
由此可见,Python 中的变量类型是不固定的,是随着数据变化的,可以随意修改。
3.2 变量的其他赋值格式
(1)同时给多个变量赋相同的值:
a = b = c = 10
print(a)
print(b)
print(c)
运行结果:
10
10
10
(2)同时给多个变量赋不同的值:
a, b, c = 10, 20, 30
print(a)
print(b)
print(c)
运行结果:
10
20
30
四、变量的内存
变量名实际上时给程序员看的和使用的,计算机真正识别的还是变量的内存地址。在 Python 中,变量的内存地址标识码可以用id()命令来查看。
a = 10
print(id(a))
a = 20
print(id(a))
点击运行按钮,会输出两个不同的数字:
140709231264968
140709231265288
输出的就是变量a的内存地址,可以发现更改后地址值有所变化。注意,再次点击运行按钮,输出结果可能会发生变化。
五、总结
本文主要讲解了Python的概念、命名规则、变量如何进行赋值操作,以及Python变量的内存是如何查看的等内容。概念简单,容易理解,需要大家多动手操作,掌握变量的使用。希望这篇文章能帮助你更好地理解Python中的变量及其操作。如果有任何问题,欢迎随时提问!
相关文章:
【0005】Python变量详解
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢! 本文内容体系结构如下: 任何一个语言编写的程序或者项目,都需要数据的支持,没有数据的项目不能称之为一个…...
yolov8_pose模型,使用rknn在安卓RK3568上使用
最近在使用rknn的一些功能,看了看文档以及自己做的一些jni,使用上yolov8_pose的模型. 1.我们先下载一下rknn的模型功能代码,rk有自己做的一套demo 地址:GitHub - airockchip/rknn_model_zooContribute to airockchip/rknn_model_zoo development by creating an account on G…...
HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0
HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0 HTTP(HyperText Transfer Protocol,超文本传输协议)是 Web 的基础协议,用于客户端和服务器之间的通信。从 HTTP/1.0 到 HTTP/2.0,HTTP 协议经历了多次重大改…...
PartitionFinder2 安装与使用-bioinfomatics tools 051
1. 引言 PartitionFinder2 是目前针对大中型数据集(核苷酸、氨基酸、形态数据)最理想的分区检测和进化模型选择工具。其推演的最优进化模型结果与 jModelTest2(核苷酸)和 ProTest3(氨基酸)的结果较为接近。…...
MCP与RAG:增强大型语言模型的两种路径
引言 近年来,大型语言模型(LLM)在自然语言处理任务中展现了令人印象深刻的能力。然而,这些模型的局限性,如知识过时、生成幻觉(hallucination)等问题,促使研究人员开发了多种增强技…...
ARM 架构下 cache 一致性问题整理
本篇文章主要整理 ARM 架构下,和 Cache 一致性相关的一些知识。 本文假设读者具备一定的计算机体系结构和 Cache 相关基础知识,适合有相关背景的读者阅读 1、引言 简单介绍一下 Cache 和内存之间的关系 在使能 Cache 的情况下,CPU 每次获取数…...
GB28181未来发展趋势,如何借助于EasyGBS国标GB28181平台+EasyGBD国标GB28181设备端抓住大机会
GB28181规范目前已经迎来了2022版,随着规范行业影响力和应用范围越来越大,相信还会有类似2028、2030等迭代版本出来,我们预测的GB28181发展趋势可能会是以下几个方面,感兴趣的也可以跟我单独探讨: 技术标准持续优化&a…...
代数结构—笔记
线性空间 如果满足以下性质,则域 K K K上定义了二元运算(加法)与二元函数(数乘)的非空集合 X X X称为线性空间。 1、加法封闭性:对任意 u , v ∈ X u, v \in X u,v∈X,存在 u v ∈ X uv\in X …...
tcc编译器教程1 配置tcc编译器环境
TinyCC(又名TCC)是一款开源小型但超快速的C编译器。下面介绍在windows下使用 1软件下载 tcc编译器官网为 https://www.bellard.org/tcc/ 下载地址为 http://download.savannah.gnu.org/releases/tinycc/ 选择其中tcc-0.9.27-win64-bin.zip进行下载 htt…...
安全模块设计:token服务、校验注解(开启token校验、开启签名校验、允许处理API日志)、获取当前用户信息的辅助类
文章目录 引言pom.xmlI 校验注解ApiValidationII token服务TokenService获取当前用户信息的辅助类III 域登录接口响应数据登陆用户信息引言 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO…...
机器学习:线性回归,梯度下降,多元线性回归
线性回归模型 (Linear Regression Model) 梯度下降算法 (Gradient Descent Algorithm) 的数学公式 多元线性回归(Multiple Linear Regression)...
报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat)
报错报错DescriptionResourcePathLocationType The default superclass,“jakarta.servlet.http.HttpServlet”, according to the project’s Dynamic Web Module facet version (5.0), was not found on the Java Build Path. 解决办法: 根据错误信息࿰…...
【人工智能】数据挖掘与应用题库(1-100)
1、涉及变化快慢的问题可以考虑使用导数来分析。 答案:对 2、导数的几何意义是曲线在某点处切线的斜率。 答案:对 3、函数在某点的左导数存在,则导数就存在。 答案:错 4、关于梯度下降算法,下列说法错误的是( ) 错误:梯度下降算法能找到函数精确的最小值。 5、正…...
C#委托(delegate)的常用方式
C# 中委托的常用方式,包括委托的定义、实例化、不同的赋值方式以及匿名委托的使用。 委托的定义 // 委托的核心是跟委托的函数结构一样 public delegate string SayHello(string c);public delegate string SayHello(string c);:定义了一个公共委托类型 …...
【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点
弹性裸金属服务器和神龙虚拟化(一):功能特点 特征一:分钟级交付特征二:兼容 VPC、SLB、RDS 等云平台全业务特征三:兼容虚拟机镜像特征四:云盘启动和数据云盘动态热插拔特征五:虚拟机…...
小结:BGP 的自动聚合与手动聚合
BGP 的自动聚合与手动聚合 BGP 在大规模网络中,通常会进行路由聚合(Route Aggregation),即将多个更具体(更小)的路由前缀合并成一个更大(更粗略)的前缀,以减少 BGP 路由…...
CTF中pwn shellcode题目
CTF中pwn shellcode题目 下面是一些shellcode代码和绕过技巧。 一些只给payload或者exp一把梭 首先给出两个常用shellcode仓库,可以检索需要的shellcode shellcode databaseexploit-db 基础 基础shellcode shellcode asm(shellcraft.sh())生成指定函数 用法…...
Conda 环境搭建实战:从基础到进阶
在当今复杂多变的软件开发与数据科学领域,拥有一个稳定、可复现且易于管理的开发环境是项目成功的基石。Conda 作为一款强大的跨平台环境管理与包管理工具,为开发者提供了便捷高效的环境搭建与依赖管理解决方案。本文将深入探讨 Conda 环境搭建的实战技巧…...
深入解析:域名转换成 IP 地址的多种方式
深入解析:域名转换成 IP 地址的多种方式 在互联网的世界里,我们日常访问网站时输入的是易于记忆的域名,比如 “www.example.com”,但计算机之间通信实际上依靠的是 IP 地址。那么,域名是如何转换成 IP 地址的呢&#x…...
大模型function calling:让AI函数调用更智能、更高效
大模型function calling:让AI函数调用更智能、更高效 随着大语言模型(LLM)的快速发展,其在实际应用中的能力越来越受到关注。Function Calling 是一种新兴的技术,允许大模型与外部工具或API进行交互,从而扩…...
LeetCode:131. 分割回文串(DP Java)
目录 131. 分割回文串 题目描述: 实现代码与解析: 动态规划 原理思路: 131. 分割回文串 题目描述: 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。…...
计算机毕业设计SpringBoot+Vue.js贸易行业CRM系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
虚拟机中的指示命令
1. 复制文件:cp 源文件 目标文件(cp file1.txt file2.txt) 2. 复制文件夹:cp -r 源文件夹 目标文件夹(cp -r dir1 dir2) 3. 创建一个空的文件:touch file1.txt 4. 创建一个空目录&a…...
图像分类项目2:鸟类图像分类
1 数据集处理 1.1数据集下载 数据集来源:kaggle,网址:https://www.kaggle.com/,点击进入网站,左侧选择Datasets。 进入后搜索栏搜索关键词bird。此时出现很多数据集可以选择,推荐选择第一个或者第三个。…...
Redis数据结构-List列表
1.List列表 列表类型适用于存储多个有序的字符串(这里的有序指的是强调数据排列顺序的重要,不是升序降序的意思),列表中的每个字符串称为元素(element),一个列表最多可以存储2^32-1个元素。在R…...
启动你的RocketMQ之旅(三)-Producer启动和发送流程(上)
前言: 👏作者简介:我是笑霸final。 📝个人主页: 笑霸final的主页2 📕系列专栏:java专栏 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一…...
Unity UGUI SuperScrollView介绍
先铺垫一下ScrollView Unity中常用的ScrollView 是 Unity 中的一个常见 UI 组件,主要用于创建可滚动的视图。当内容超过其显示区域时,ScrollView 可以让用户通过滚动查看全部内容。它通常包含一个显示区域和一个内容区域,内容区域可以超过显…...
pandas 数据透视表
数据的透视表 数据的透视表: 使用函数 pivot_table( ) # 引用pandas import pandas as pd # pivot_table 使用 pd.pivot_table(data,values,index,aggfunc,fill_value,columns)参数1:data DataFrame的源数据参数2:values 要进行聚合操作的列参数3:index 进行分组…...
【STM32安全性研究】STM32F103RCT6固件读取
最近从飞哥那买了个stm32固件提取器,效果很好。下面记录对某产品主控STM32F103RCT6固件的提取过程,说明提取时的注意事项。 注意本文的目的仅用于stm32安全性研究,不提供涉及产品本身的内容,包括固件、软件等。 stm32固件提取可参考论坛https://www.aisec.fraunhofer.de/en…...
塔子哥Python算法基础课
【入门题】【输入篇1】AB Problem 题目描述: 给定两个整数 A 和 B,请计算它们的和并输出结果。 输入: 输入包含一行,包含两个整数 A 和 B,以空格分隔。 输出: 输出一行,包含一个整数&#…...
