【0005】Python变量详解

news2025/4/6 20:25:43

如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢!

本文内容体系结构如下:
在这里插入图片描述

任何一个语言编写的程序或者项目,都需要数据的支持,没有数据的项目不能称之为一个项目,也没有任何使用意义。而数据需要解决的问题之一就是存储问题, Python变量就可以用来存储数据。本文主要讲解Python相关概念和操作。

一、什么是变量

1.1 概念

变量(variable)是计算机语言中能储存计算结果或能表示值的抽象概念,是用于存储数据的容器。用大白话说就好比装水的杯子,吃饭的碗一样,用来装东子的。在Python中,变量是数据的引用。变量名指向内存中存储的数据。Python是一种动态类型语言,意味着变量的类型可以随时改变。

1.2 特性

  • 动态类型:变量可以在任何时候被赋予新的数据类型。
  • 引用类型:变量存储的是数据的引用,而不是数据本身。

二、变量的命名规则

一个程序中会有多个变量,为了区分这多个变量,计算机会给每个变量分配一个内容地址(这个地址在Python中可以使用id()函数来获取),但这个地址不便于程序员记忆和操作,所以我们可以给变量取一个别名,来区分不同的变量,当然,给变量取名也是要遵守一些规范的,不是能随便乱取的。

2.1 命名规范

  • 大小写敏感Varvar 是两个不同的变量。
  • 合法字符:变量名只能包含字母(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中的变量及其操作。如果有任何问题,欢迎随时提问!

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

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

相关文章

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…

MCP与RAG:增强大型语言模型的两种路径

引言 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;在自然语言处理任务中展现了令人印象深刻的能力。然而&#xff0c;这些模型的局限性&#xff0c;如知识过时、生成幻觉&#xff08;hallucination&#xff09;等问题&#xff0c;促使研究人员开发了多种增强技…

ARM 架构下 cache 一致性问题整理

本篇文章主要整理 ARM 架构下&#xff0c;和 Cache 一致性相关的一些知识。 本文假设读者具备一定的计算机体系结构和 Cache 相关基础知识&#xff0c;适合有相关背景的读者阅读 1、引言 简单介绍一下 Cache 和内存之间的关系 在使能 Cache 的情况下&#xff0c;CPU 每次获取数…

tcc编译器教程1 配置tcc编译器环境

TinyCC&#xff08;又名TCC&#xff09;是一款开源小型但超快速的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) 的数学公式 多元线性回归&#xff08;Multiple Linear Regression&#xff09;

【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点

弹性裸金属服务器和神龙虚拟化&#xff08;一&#xff09;&#xff1a;功能特点 特征一&#xff1a;分钟级交付特征二&#xff1a;兼容 VPC、SLB、RDS 等云平台全业务特征三&#xff1a;兼容虚拟机镜像特征四&#xff1a;云盘启动和数据云盘动态热插拔特征五&#xff1a;虚拟机…

大模型function calling:让AI函数调用更智能、更高效

大模型function calling&#xff1a;让AI函数调用更智能、更高效 随着大语言模型&#xff08;LLM&#xff09;的快速发展&#xff0c;其在实际应用中的能力越来越受到关注。Function Calling 是一种新兴的技术&#xff0c;允许大模型与外部工具或API进行交互&#xff0c;从而扩…

计算机毕业设计SpringBoot+Vue.js贸易行业CRM系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

图像分类项目2:鸟类图像分类

1 数据集处理 1.1数据集下载 数据集来源&#xff1a;kaggle&#xff0c;网址&#xff1a;https://www.kaggle.com/&#xff0c;点击进入网站&#xff0c;左侧选择Datasets。 进入后搜索栏搜索关键词bird。此时出现很多数据集可以选择&#xff0c;推荐选择第一个或者第三个。…

Redis数据结构-List列表

1.List列表 列表类型适用于存储多个有序的字符串&#xff08;这里的有序指的是强调数据排列顺序的重要&#xff0c;不是升序降序的意思&#xff09;&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;一个列表最多可以存储2^32-1个元素。在R…

启动你的RocketMQ之旅(三)-Producer启动和发送流程(上)

前言&#xff1a; &#x1f44f;作者简介&#xff1a;我是笑霸final。 &#x1f4dd;个人主页&#xff1a; 笑霸final的主页2 &#x1f4d5;系列专栏&#xff1a;java专栏 &#x1f4e7;如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一…

Unity UGUI SuperScrollView介绍

先铺垫一下ScrollView Unity中常用的ScrollView 是 Unity 中的一个常见 UI 组件&#xff0c;主要用于创建可滚动的视图。当内容超过其显示区域时&#xff0c;ScrollView 可以让用户通过滚动查看全部内容。它通常包含一个显示区域和一个内容区域&#xff0c;内容区域可以超过显…

【STM32安全性研究】STM32F103RCT6固件读取

最近从飞哥那买了个stm32固件提取器,效果很好。下面记录对某产品主控STM32F103RCT6固件的提取过程,说明提取时的注意事项。 注意本文的目的仅用于stm32安全性研究,不提供涉及产品本身的内容,包括固件、软件等。 stm32固件提取可参考论坛https://www.aisec.fraunhofer.de/en…

SpringMVC学习(初识与复习Web程序的工作流程)(1)

目录 一、SpringMVC(框架)的简要概述。 &#xff08;1&#xff09;SpringMVC与Servlet。 &#xff08;2&#xff09;技术方向。 &#xff08;3&#xff09;最终学习目标。 二、Web程序的基本工作流程。 &#xff08;1&#xff09;工作流程。 <1>浏览器。前后端任务。 <…

【领域】百度OCR识别

一、定义 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是计算机视觉重要方向之一。传统定义的OCR一般面向扫描文档类对象&#xff0c;现在我们常说的OCR一般指场景文字识别&#xff08;Scene Text Recognition&#xff0c;STR&#xff…

Docker 学习(一)

一、Docker 核心概念 Docker 是一个开源的容器化平台&#xff0c;允许开发者将应用及其所有依赖&#xff08;代码、运行时、系统工具、库等&#xff09;打包成一个轻量级、可移植的“容器”&#xff0c;实现 “一次构建&#xff0c;随处运行”。 1、容器&#xff08;Container…

【vscode-解决方案】vscode 无法登录远程服务器的两种解决办法

解决方案一&#xff1a; 查找原因 命令 ps ajx | grep vscode 可能会看到一下这堆信息&#xff08;如果没有大概率不是这个原因导致&#xff09; 这堆信息的含义&#xff1a;当你使用 vscode 远程登录服务器时&#xff0c;我们远程机器服务端要给你启动一个叫做 vscode serv…

5个GitHub热点开源项目!!

1.自托管 Moonlight 游戏串流服务&#xff1a;Sunshine 主语言&#xff1a;C&#xff0c;Star&#xff1a;14.4k&#xff0c;周增长&#xff1a;500 这是一个自托管的 Moonlight 游戏串流服务器端项目&#xff0c;支持所有 Moonlight 客户端。用户可以在自己电脑上搭建一个游戏…

基于SpringBoot的美妆购物网站系统设计与实现现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…