当前位置: 首页 > news >正文

变量(Variable)


免责声明

如有异议请在评论区友好交流,或者私信
内容纯属个人见解,仅供学习参考
如若从事非法行业请勿食用
如有雷同纯属巧合
版权问题请直接联系本人进行删改

前言

提示:从小学解方程变量x,到中学阶段函数自变量x因变量y,后来是高等数学定义:有的量在过程中是变化的,也就是可以取不同的数值,我们则把其称之为变量,那编程中的也和他们类似吗


提示:以下是本篇文章正文内容,下面案例可供参考

文章目录

  • 免责声明
  • 前言
      • **变量的核心特性**
      • **变量的作用**
      • **变量的生命周期**
      • **变量的作用域(Scope)**
      • **编程语言中的变量差异**
      • **变量命名规范**
      • **总结**

在编程中,变量(Variable) 是用于存储数据的“容器”,可以理解为一个有名字的存储空间。通过变量,程序能够动态地保存和操作数据,是编程中最基础且核心的概念。


变量的核心特性

  1. 名称(Name)
    变量的唯一标识符,需遵循命名规则(如字母开头、不含空格等),例如 ageuser_name
  2. 类型(Type)
    变量存储数据的种类(如整数、字符串、布尔值等),决定能执行的操作。
    示例int age = 25(整数类型)。
  3. 值(Value)
    变量中存储的具体数据,可随时修改。
    示例name = "Alice"(值为字符串)。

变量的作用

  1. 临时存储数据
    保存用户输入、计算结果或中间状态。
    score = 90  # 存储分数
    total = score + 10  # 计算总分
    
  2. 提高代码灵活性和可读性
    通过有意义的变量名,让代码更易理解。
    # 无变量:难以理解
    print(3.14 * 5 * 5)  # 有变量:清晰表达意图
    radius = 5
    area = 3.14 * radius ** 2
    print(area)
    
  3. 动态控制程序行为
    根据变量的值改变程序流程。
    is_raining = True
    if is_raining:print("带伞出门")
    

变量的生命周期

  1. 声明(Declaration)
    在内存中分配空间(某些语言需显式声明类型)。
    C语言示例int count;
    Python示例count = 0(动态类型,无需显式声明)。
  2. 赋值(Assignment)
    将数据存入变量,可多次修改。
    message = "Hello"  # 首次赋值
    message = "Hi"     # 修改值
    
  3. 销毁(Destruction)
    变量超出作用域后,内存被自动回收。

变量的作用域(Scope)

  • 局部变量:在函数或代码块内定义,仅内部可用。
    def calculate():result = 10  # 局部变量return result
    
  • 全局变量:在程序顶层定义,全局可用(需谨慎使用)。 (这里是个引申问题,后面出一个文章专门来解释,需要的宝子可以直接私信我,把markdown源文件发给你)
    MAX_SIZE = 100  # 全局变量
    def check_size():if current_size > MAX_SIZE:print("超出限制")
    

编程语言中的变量差异

特性强类型语言(如 Java)弱类型语言(如 Python)
类型声明必须显式声明类型动态推断类型
类型转换需手动强制转换自动隐式转换(可能出错)
示例int num = 10;num = 10

变量命名规范

  1. 有意义user_ageua 更清晰。
  2. 风格统一
    • 驼峰式:userName(Java/JS常用)
    • 下划线式:user_name(Python推荐)
  3. 避开关键字:如 classif 等保留字。

总结

  • 变量是程序动态处理数据的核心工具。
  • 理解变量类型、作用域和命名规范,能大幅提升代码质量和可维护性。
  • 不同语言对变量的处理方式不同,需根据实际场景灵活应用。

类比:变量就像便利贴,贴在内存中的某个位置,通过名字快速找到数据。

相关文章:

变量(Variable)

免责声明 如有异议请在评论区友好交流,或者私信 内容纯属个人见解,仅供学习参考 如若从事非法行业请勿食用 如有雷同纯属巧合 版权问题请直接联系本人进行删改 前言 提示:从小学解方程变量x,到中学阶段函数自变量x因变量y&…...

【STM32】最后一刷-江科大Flash闪存-学习笔记

FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程,(系统存储器用于存储原厂写入的BootLoader程序,用于串口…...

Dify 深度集成 MCP实现灾害应急响应

一、架构设计 1.1 分层架构 #mermaid-svg-5dVNjmixTX17cCfg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5dVNjmixTX17cCfg .error-icon{fill:#552222;}#mermaid-svg-5dVNjmixTX17cCfg .error-text{fill:#552222…...

2025 年上半年软考信息系统项目管理师备考计划

2025 年上半年软考信息系统项目管理师备考计划​ 2025 年上半年软考信息系统项目管理师考试时间为 5 月 24 日 - 27 日,从现在开始备考,需合理规划,高效学习。以下为详细备考计划:​ 一、基础学习阶段(现在 - 4 月上…...

Scikit-learn使用指南

1. Scikit-learn 简介 定义: Scikit-learn(简称 sklearn)是基于 Python 的开源机器学习库,提供了一系列算法和工具,用于数据挖掘、数据预处理、分类、回归、聚类、模型评估等任务。特点: 基于 NumPy、SciP…...

学习大模型需要具备哪些技术、知识和基础

数学基础 概率论与数理统计:用于理解模型中的不确定性、概率分布,以及进行数据的统计分析、评估模型的性能等。例如,通过概率分布来描述模型预测结果的可信度,利用统计方法对数据进行抽样、估计模型的参数等。线性代数&#xff1…...

十五届蓝桥杯省赛Java B组(持续更新..)

目录 十五届蓝桥杯省赛Java B组第一题:报数第二题:类斐波那契数第三题:分布式队列第四题:食堂第五题:最优分组第六题:星际旅行第七题:LITS游戏第八题:拼十字 十五届蓝桥杯省赛Java B…...

Flink SQL Client bug ---datagen connector

原始sql语句如下 CREATE TABLE test_source (event_time TIMESTAMP(3), -- 事件时间(精确到毫秒)click INT, -- 随机数值字段WATERMARK FOR event_time AS event_time - INTERVAL 5 SECOND WITH (connector datagen, …...

股指期货的多头套期保值是什么意思?

多头套期保值,又叫“买入套期保值”,听起来很复杂,其实很简单。它的核心就是“提前锁定价格,防止未来价格上涨”。 举个例子,假设你是一家工厂的老板,过几个月要买一批原材料。现在原材料的价格是100元/吨…...

hadoop集群配置-scp命令

scp 命令用于在不同主机之间复制文件或目录,在Hadoop集群配置中常用于将配置文件或相关资源分发到各个节点。以下是 scp 命令的基本用法和在Hadoop集群配置中的示例: 基本语法 scp [-r] [源文件或目录] [目标用户目标主机:目标路径] - -r :…...

Redis 源码硬核解析系列专题 - 结语:从源码看Redis的设计哲学

1. 引言 通过前七篇的源码解析,我们从Redis的整体架构、核心数据结构、事件驱动模型,到内存管理、持久化、主从复制与集群模式,逐步揭开了Redis高性能与简洁性的秘密。本篇将总结这些技术细节,提炼Redis的设计哲学,并探讨如何将源码学习成果应用到实际开发中。 2. Redis的…...

解决QSharedPointer栈变量的崩溃问题

目录 参考崩溃代码现象 解决 参考 QSharedPointer的陷阱 qt中的共享指针&#xff0c;QSharedPointer类 崩溃 代码 #include <QtCore/QCoreApplication> #include <QDebug> #include <QSharedPointer>class MyClass { public:void doSomething() {qDebug…...

Lambda 表达式是什么以及如何使用

目录 &#x1f4cc; Kotlin 的 Lambda 表达式详解 &#x1f3af; 什么是 Lambda 表达式&#xff1f; &#x1f525; 1. Lambda 表达式的基本语法 ✅ 示例 1&#xff1a;Lambda 基本写法 ✅ 示例 2&#xff1a;使用 it 关键字&#xff08;单参数简化&#xff09; ✅ 示例 3…...

C++自定义迭代器

实现自己的迭代器 最近在写数据结构&#xff0c;使用类模板实现&#xff0c;碰到了一些问题&#xff0c;其中有一个就是遍历的问题&#xff0c;查阅资料最后实现了自己的迭代器&#xff0c;让我实现的数据结构能像STL一样进行for循环遍历。 类的构成 #include <stdexcept…...

PWA 中的 Service Worker:如何实现应用离线功能

前言 在当今快速发展的互联网时代&#xff0c;Progressive Web App (PWA) 正在逐步成为现代 Web 开发的主流选择。PWA 将 Web 应用和原生应用的最佳特性相结合&#xff0c;提供了丰富的用户体验。而在 PWA 的众多技术中&#xff0c;Service Worker 无疑是其核心组件之一。 作…...

dockerfile制作镜像

1.docker pull centos:centos7 2.dockerfile内容 FROM centos:centos7 #指定镜像维护的作者和邮箱 MAINTAINER csdn< **********qq.com #设置环境变量mypath ENV MYPATH /usr/local #设置进入容器的默认目录是/usr/local WORKDIR $MYPATH # 下载并替换 CentOS 镜像源 RUN …...

网络空间安全(46)DevSecOps概述

一、定义与核心理念 DevSecOps是“开发&#xff08;Development&#xff09;、安全&#xff08;Security&#xff09;和运营&#xff08;Operations&#xff09;”的结合&#xff0c;它将安全实践融入软件开发生命周期的每个阶段&#xff0c;从需求、设计、开发、测试到部署和运…...

LeetCode 211

实现支持通配符的字典树&#xff08;Trie&#xff09;&#xff1a;解决单词匹配问题 一、问题描述 我们需要设计一个数据结构&#xff0c;支持以下功能&#xff1a; 添加新单词搜索字符串是否与任何已添加的单词匹配&#xff0c;其中搜索字符串可能包含通配符 .&#xff08;…...

Docker Compose 启动jar包项目

参考文章安装Docker和Docker Compose 点击跳转 配置 创建一个文件夹存放项目例如mydata mkdir /mydata上传jar包 假设我的jar包名称为goudan.jar 编写dockerfile文件 vim app-dockerfile按键盘上的i进行编辑 # 使用jdk8 FROM openjdk:8-jre# 设置时区 上海 ENV TZAsia/Sh…...

利用deepseek直接调用其他文生图网站生成图片

这次deepseek输入中文后&#xff0c;其实翻译英文后&#xff0c;是可以丢到比如pollinations.这个网站&#xff0c;来生成图片&#xff0c;用法如下&#xff1a; 你是一个图像生成助手&#xff0c;请根据我的简单描述&#xff0c;想象并详细描述一幅完整的画面。 然后将你的详…...

远程装个Jupyter-AI协作笔记本,Jupyter容器镜像版本怎么选?安装部署教程

通过Docker下载Jupyter镜像部署&#xff0c;输入jupyter会发现 有几个版本&#xff0c;不知道怎么选&#xff1f;这几个版本有什么差别&#xff1f; 常见版本有&#xff1a; jupyter/base-notebookjupyter/minimal-notebookjupyter/scipy-notebookjupyter/datascience-notebo…...

11. 盛最多水的容器

leetcode Hot 100系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 一、核心操作 最左右两边逐步往中间走&#xff0c;每次在左右中选取小的一个或–记录最大面积 提示&#xff1a;小白个人理解&#xff0c;如有错误敬请谅解&#xff01; 二、外层配合操作…...

Selenium Web自动化如何快速又准确的定位元素路径,强调一遍是元素路径

如果文章对你有用&#xff0c;请给个赞&#xff01; 匹配的ChromeDriver和浏览器版本是更好完成自动化的基础&#xff0c;可以从这里去下载驱动程序&#xff1a; 最全ChromeDriver下载含win linux mac 最新版本134.0.6998.165 持续更新..._chromedriver 134-CSDN博客 如果你问…...

Kotlin 基础语法解析

详细的 Kotlin 基础语法解析&#xff0c;结合概念说明和实用场景&#xff1a; --- ### **一、变量与常量** #### **1. 变量类型** - **val**&#xff08;不可变变量&#xff09;&#xff1a;声明后不可重新赋值&#xff0c;类似 Java 的 final。 kotlin val name "Kotl…...

html 列表循环滚动,动态初始化字段数据

html <div class"layui-row"><div class"layui-col-md4"><div class"boxall"><div class"alltitle">超时菜品排行</div><div class"marquee-container"><div class"scroll-…...

【大模型基础_毛玉仁】5.4 定位编辑法:ROME

目录 5.4 定位编辑法&#xff1a;ROME5.4.1 知识存储位置1&#xff09;因果跟踪实验2&#xff09;阻断实验 5.4.2 知识存储机制5.4.3 精准知识编辑1&#xff09;确定键向量2&#xff09;优化值向量3&#xff09;插入知识 5.4 定位编辑法&#xff1a;ROME 定位编辑&#xff1a;…...

Using SAP an introduction for beginners and business users

Using SAP an introduction for beginners and business users...

Android学习总结之RecyclerView补充篇

在 Android 开发中&#xff0c;列表数据更新的性能一直是关键痛点。传统的 notifyDataSetChanged() 会触发全量刷新&#xff0c;导致不必要的界面重绘。而 DiffUtil 作为 Android 提供的高效差异计算工具&#xff0c;能精准识别数据变化&#xff0c;实现局部更新&#xff0c;成…...

mapbox基础,使用geojson加载cluster聚合图层

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️circle点图层样式二、🍀使用geojson加…...

函数:static和extern

0.前言 在正式开始之前先说作用域和生命周期 作用域&#xff1a; 作用域有分为局部变量和全局变量 局部变量&#xff1a;一个变量仅在其中一段代码内起作用 全局变量&#xff1a;所有的代码都可以使用这个变量 生命周期&#xff1a; 生命周期是一个代码从运行开始到结束…...

【QT】练习1

1、设计一个颜色选择器&#xff0c;可以输入RGB的颜色值&#xff0c;点击确认&#xff0c;可以把主界面的背景颜色改成设置的颜色 修改背景颜色&#xff1a;setStyleSheet(“background-color 红绿蓝颜色值”); // mainwindow.cpp #include "mainwindow.h" #include…...

GreenPlum学习

简介 Greenplum是一个面向数据仓库应用的关系型数据库&#xff0c;因为有良好的体系结构&#xff0c;所以在数据存储、高并发、高可用、线性扩展、反应速度、易用性和性价比等方面有非常明显的优势。Greenplum是一种基于PostgreSQL的分布式数据库&#xff0c;其采用sharednothi…...

张量-pytroch基础(2)

张量-pytroch网站-笔记 张量是一种特殊的数据结构&#xff0c;跟数组&#xff08;array&#xff09;和矩阵&#xff08;matrix&#xff09;非常相似。 张量和 NumPy 中的 ndarray 很像&#xff0c;不过张量可以在 GPU 或其他硬件加速器上运行。 事实上&#xff0c;张量和 Nu…...

Linux多线程编程的艺术:封装线程、锁、条件变量和信号量的工程实践

目录 &#x1f4cc;这篇博客能带给你什么&#xff1f; &#x1f525;为什么需要封装这些组件&#xff1f; 一、线程封装 框架设计 构造与析构 1.线程创建 2.线程分离 3.线程取消 4.线程等待 二、锁封装 框架设计 构造与析构 1.加锁 2.解锁 3.RAII模式 三、条件…...

2025年智慧能源与控制工程国际学术会议(SECE 2025)

官网&#xff1a;www.ic-sece.com 简介 2025年智慧能源与控制工程国际学术会议&#xff08;SECE 2025&#xff09;将于2025年4月18日线上会议形式召开&#xff0c;这是一个集中探讨全球智慧能源和控制工程领域创新和挑战的国际学术平台。旨在汇集全球领域内的学者、研究人员、…...

Android 16开发实战指南|锁屏交互+Vulkan优化全解析

一、环境搭建与项目初始化 1. 安装Android Studio Ladybug 下载地址:Android Studio官网关键配置: # 安装后立即更新SDK SDK Manager → SDK Platforms → 安装Android 16 (Preview) SDK Manager → SDK Tools → 更新Android SDK Build-Tools至34.0.0 # 通过命令行安装SDK组…...

sscanf() 用法详解

sscanf() 是 scanf() 的变体&#xff0c;它用于从字符串中提取格式化数据&#xff0c;常用于解析输入字符串。 1️⃣ sscanf() 语法 int sscanf(const char *str, const char *format, ...); str&#xff1a;要解析的字符串&#xff08;必须是 const char*&#xff0c;可以用…...

0基础入门scrapy 框架,获取豆瓣top250存入mysql

一、基础教程 创建项目命令 scrapy startproject mySpider --项目名称 创建爬虫文件 scrapy genspider itcast "itcast.cn" --自动生成 itcast.py 文件 爬虫名称 爬虫网址 运行爬虫 scrapy crawl baidu(爬虫名&#xff09; 使用终端运行太麻烦了&#xff0c;而且…...

Linux常见操作命令(2)

(一&#xff09;复制和移动 复制和移动都分为文件和文件夹&#xff0c;具体的命令是cp和mv。 1.复制文件&#xff08;复制的文件要是已创建&#xff09; 格式&#xff1a;cp 源文件 目标文件。 示例&#xff1a;把filel.txt复制一份得到file2.txt。 那么对应的命令就是&#x…...

谷歌将 Android OS 完全转变为 “内部开发”

2025 年 3 月 27 日&#xff0c;据 Android Authority 报道&#xff0c;谷歌证实将从下周开始完全在内部分支机构闭门开发安卓操作系统。相关信息如下&#xff1a; 背景&#xff1a;多年来&#xff0c;谷歌同时维护着两大安卓主要分支&#xff0c;一是面向公众开放的 “安卓开源…...

移动端六大语言速记:第2部分 - 控制结构

移动端六大语言速记&#xff1a;第2部分 - 控制结构 本文继续对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的控制结构&#xff0c;帮助开发者快速掌握各语言的语法差异。 2. 控制结构 2.1 条件语句 各语言条件语句的语法对比&#xff1a; …...

【 Vue 2 中的 Mixins 模式】

Vue 2 中的 Mixins 模式 在 Vue 2 里&#xff0c;mixins 是一种灵活的复用代码的方式&#xff0c;它能让你在多个组件间共享代码。借助 mixins&#xff0c;你可以把一些通用的选项&#xff08;像 data、methods、computed 等&#xff09;封装到一个对象里&#xff0c;然后在多…...

STM32F103_LL库+寄存器学习笔记13 - 梳理外设CAN与如何发送CAN报文(串行发送)

导言 CAN总线因其高速稳定的数据传输与卓越抗干扰性能&#xff0c;在汽车、机器人及工业自动化中被广泛应用。它采用分布式网络结构&#xff0c;实现多节点间实时通信&#xff0c;确保各控制模块精准协同。在汽车领域&#xff0c;CAN总线连接发动机、制动、车身系统&#xff0c…...

DataPlatter:利用最少成本数据提升机器人操控的泛化能力

25年3月来自中科院计算所的论文“DataPlatter: Boosting Robotic Manipulation Generalization with Minimal Costly Data”。 视觉-语言-动作 (VLA) 模型在具身人工智能中的应用日益广泛&#xff0c;这加剧对多样化操作演示的需求。然而&#xff0c;数据收集的高成本往往导致…...

受控组件和非受控组件的区别

在 React 中&#xff0c;​受控组件&#xff08;Controlled Components&#xff09;​ 和 ​非受控组件&#xff08;Uncontrolled Components&#xff09;​ 是处理表单元素的两种不同方式&#xff0c;它们的核心区别在于 ​数据管理的方式 和 ​与 React 的交互模式。 受控组件…...

Mhand Pro 多节点动作捕捉手套:一副手套多场景应用

随着动作捕捉技术的发展&#xff0c;动捕手套的出现为虚拟现实交互、VR游戏开发、机器臂/灵巧手遥操作等方面带来了更加便捷可行的方案。 广州虚拟动力作为一家在动作捕捉领域深耕多年的公司&#xff0c;基于传感器技术而研发的多节点惯性动作捕捉手套&#xff0c;兼具VR交互与…...

Kafka消息丢失全解析!原因、预防与解决方案

作为一名高并发系统开发工程师&#xff0c;在使用消息中间件的过程中&#xff0c;无法避免遇到系统中消息丢失的问题&#xff0c;而Kafka作为主流的消息队列系统&#xff0c;消息丢失问题尤为常见。 在这篇文章中&#xff0c;将深入浅出地分析Kafka消息丢失的各种情况&#xf…...

BERT与Transformer到底选哪个-上部

一、先理清「技术家谱」&#xff1a;BERT和Transformer是啥关系&#xff1f; 就像「包子」和「面食」的关系——BERT是「Transformer家族」的「明星成员」&#xff0c;而GPT、Qwen、DeepSeek这些大模型则是「Transformer家族」的「超级后辈」。 1.1 BERT&#xff1a;Transfor…...

【Unity】记录TMPro使用过程踩的一些坑

1、打包到webgl无法输入中文&#xff0c;编辑器模式可以&#xff0c;但是webgl不行&#xff0c;试过网上的脚本&#xff0c;还是不行 解决方法&#xff1a;暂时没找到 2、针对字体asset是中文时&#xff0c;overflow的效果模式处理奇怪&#xff0c;它会出现除了overflow模式以…...

数据处理的两种范式:深入解析OLTP与OLAP系统

目录 前言1. OLTP&#xff1a;业务运作的基石1.1 OLTP的核心定义与价值1.2 OLTP的技术架构特点1.3 OLTP的典型应用场景 2. OLAP&#xff1a;决策支持的大脑2.1 OLAP的基本概念与作用2.2 OLAP的技术实现方式2.3 OLAP的应用实践 3. OLTP与OLAP的对比与融合3.1 核心差异的深度解析…...