二十四、Python基础语法(变量进阶)

一、引用

在定义变量的时候, 解释器会给变量和数据分别在内存中分配内存,变量中保存的是数据的地址, 称为引用,Python 中数据的传递,传递的都是引用,可以使用 id(变量) 函数,获取变量中引用地址。

# 将数字1在内存中的地址储存到变量a中
a = 1
# 将变量a中储存的数据10的内存地址储存在变量b中
b = a# 打印变量的值,变量储存的数据的内存地址
print(a, id(a))  # 1 140727581611680
print(b, id(b))  # 1 140727581611680# 本质将数字2在内存中的地址储存到变量b
b = 2
print(b, id(b))  # 2 140727581611712

二、可变类型与不可变类型

数据类型:整型(int), 浮点型(float), 布尔(bool), 字符串(str), 列表(list), 元组(tuple), 字典(dict),集合

(set)

可变类型:内存中数据允许被修改,可变

  • 列表(list) 列表.append()

  • 字典(dict) 字典.pop()

  • 集合(set) set

不可变类型:内存中数据不允许被修改,不可变

  • 整型(int)

  • 浮点型(float)

  • 字符串(str)

  • 元组(tuple)

  • 布尔型

三、局部变量和全局变量

根据变量定义的位置划分为局部变量和全局变量

局部变量:是在函数内部定义的变量,只能在当前函数内部使用, 不能在函数外部和其他函数中使用, 如果想要在函数外部使用这个局部变量的值,就需要使用 return 将这个数据返回。在不同函数中可以定义名字相同的局部变量,生命周期,在函数被调用的时候创建, 调用结束后备销毁,一般的形参,可以认为是局部变量。

def func1():n = 1  # 定义局部变量print(n)def func2():n = 2  # 定义局部变量print(n)def func3():n = 3  # 定义局部变量print(n)func1()
func2()
func3()

运行结果:

全局变量:就是在函数外部定义的变量,全局变量的值 可以在任意函数中使用,想要在函数中修改全局变量的引用, 需要使用 global 关键字进行声明,在函数内部如果出现和全局变量名字相同的局部变量,在函数中使用的是局部变量的值,生命周期,代码被执行的时候创建, 执行结束被销毁。

n = 1def func1():print(n)  # 使用全局变量的值def func2():n = 2print(n)  # 优先使用局部变量def func3():global nn = 3print(n)  # 声明为全局变量, 后续的操作,操作的都是全局变量func1()
func2()
func1()
func3()
func1()

运行结果:

 

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

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

相关文章

Javascript遍历对象for ....in

//遍历对象for...In //用字变量创建对象,对象中有title,date,author属性和read()方法, let w{ title:xxx塌房了, date:2024年10月28日, author:狗仔, read:function(){ console.log(阅读新闻this.title); } }; w.read(); for(let temp in w){…

帝国CMS 内容页调用上一篇下一篇的方法(精华汇总)

帝国cms默认的内容页的上一页&下一页的调用代码是: 上一篇:[!--info.pre--] 下一篇:[!--info.next--] 但是实话实说,如果做个很普通的模版那足够用了,但是如果想个性化一点的话,比如加背景&#xff…

Zookeeper是什么:深入分析分布式系统的协调者

在数据库和互联网应用高速发展的时代,大规模的分布式系统不断进化。分布式系统不仅代表数据会分布在多个节点上,更重要的是要保证这些节点之间的协同和一致性。在这个过程中,不仅是简单的调度问题,还涉及到多重的复杂性和高昂的调…

NVR监测软件/设备EasyNVRNVR批量管理软件/平台多元接入方式与应用实例

在数字化安防时代,视频监控技术已成为维护公共安全、提升管理效能的重要基石。随着科技的飞速发展,流媒体技术和视频监控正经历着前所未有的变革与融合。NVR小程序接入平台/设备EasyNVR,作为一款基于“云-边-端”一体化架构的视频融合云平台&…

【归一化技术】层归一化和批归一化

归一化技术在深度学习中被广泛应用,以加速训练过程、稳定模型收敛,并减少梯度消失或爆炸问题。 一、 层归一化 **层归一化(Layer Normalization)**是一种归一化技术,广泛用于深度学习模型,尤其是在 Trans…

RWA“两链一桥”平台在香港金融科技周亮相

第九届香港金融科技周今日开幕,记者在主题为Trust Bridge的论坛上获悉,蚂蚁数科旗下蚂蚁链在此次金融科技周首次公开了其为RWA业务打造的“两链一桥”平台,旨在帮助更多内地新能源资产赴港RWA,实现技术赋能实体资产。 “两链一桥“…

二叉树前序遍历的 Java 实现,包括递归和非递归两种方式

二叉树前序遍历是一种遍历树节点的方式,遵循特定的顺序。其基本过程可以总结为以下几个步骤: 前序遍历的顺序 访问根节点:首先处理当前节点。 递归遍历左子树:然后依次访问左子树。 递归遍历右子树:最后访问右子树。 …

简记Vue3(二)—— computed、watch、watchEffect

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

C++的汉诺塔

汉诺塔(Tower of Hanoi)是一个经典的递归问题。问题的描述如下: 有三根杆(通常称为 A、B、C),以及一系列大小不同、穿在一根杆上的圆盘。这些圆盘可以滑动到任何一根杆上,但是每次只能移动一个圆盘,且不能将较大的圆盘放在较小的圆盘上。目标是将所有圆盘从杆 A 移动到…

Android Gradle

#1024程序员节|征文# Gradle 是一款强大的自动化构建工具,广泛应用于 Android 应用开发。它通过灵活的配置和丰富的插件系统,为项目构建提供了极大的便利。本文只是简单的介绍 Gradle 在 Android 开发中的使用,包括其核心概念、构…

Go 语言基础教程:7.Switch 语句

在这篇教程中,我们将学习 Go 语言中的 switch 语句,它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …

拖拽盖章处理

进行元素拖拽:同类章替换、删除已盖章 1.复制对应元素,在onmousemove中left和top一直在变化 2.onmouseup时,计算出在pdf显示区域内的left,top,removeChild删除原先复制的元素,再appendChild到pdf显示区域的…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(一)框架

【转载】理解图优化,一步步带你看懂g2o框架 文章来源:理解图优化,一步步带你看懂g2o框架 小白:师兄师兄,最近我在看SLAM的优化算法,有种方法叫“图优化”,以前学习算法的时候还有一个优化方法…

机器翻译技术:AI 如何跨越语言障碍

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI工具集1:大厂AI工具【共23款…

装饰器模式的适用场景示例

1. 动态扩展和撤销类的功能 假设我们有一个 ApiRequest 类,用于发送 HTTP 请求。在某些场景下,我们希望对传输的数据进行加密以提高安全性,但在其他场景下不需要加密。通过装饰器模式,可以轻松地在需要时动态扩展这个功能&#x…

【建造&机械】木材运输车辆检测系统源码&数据集全套:改进yolo11-GhostHGNetV2

改进yolo11-SPPF-LSKA等200全套创新点大全:木材运输车辆检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片…

C++与现代开发实践第三节:多线程与并发编程

第四章:C与现代开发实践 第三节:多线程与并发编程 在这一课中,我们将详细探讨多线程与并发编程的各个方面,特别是从线程的创建、管理到高级的优化技术,并且通过复杂的实战案例来展示如何应对并发问题。最后&#xff…

python实现放烟花效果庆祝元旦

马上就要2025年元旦啦,提前祝大家新年快乐 完整代码下载地址:https://download.csdn.net/download/ture_mydream/89926458

Prompt提示词设计:如何让你的AI对话更智能?

Prompt设计:如何让你的AI对话更智能? 在人工智能的世界里,Prompt(提示词)就像是一把钥匙,能够解锁AI的潜力,让它更好地理解和响应你的需求。今天,我们就来聊聊如何通过精心设计的Pr…

使用 Spring Doc 为 Spring REST API 生成 OpenAPI 3.0 文档

Spring Boot 3 整合 springdoc-openapi 概述 springdoc-openapi 是一个用于自动生成 OpenAPI 3.0 文档的库,它支持与 Spring Boot 无缝集成。通过这个库,你可以轻松地生成和展示 RESTful API 的文档,并且可以使用 Swagger UI 或 ReDoc 进行…