二十四、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 = 1


def func1():
    print(n)  # 使用全局变量的值


def func2():
    n = 2
    print(n)  # 优先使用局部变量


def func3():
    global n
    n = 3
    print(n)  # 声明为全局变量, 后续的操作,操作的都是全局变量


func1()
func2()
func1()
func3()
func1()

运行结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu18.04安装vscode1.94.2失败安装vscode1.84.2

系统环境:Ubuntu18.04.6 LTS 自己先去vscode官网下载好最新版本的vscode1.94.2(不下也行,反正最新版也用不了,哈哈) 网址:Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code ed…

《编程并不难:像学语文一样学习编程语言》

《编程并不难:像学语文一样学习编程语言》 一、编程为何被认为难(一)编程语言的难点(二)逻辑思维的挑战(三)抽象思维的要求(四)学习曲线的陡峭(五&#xff09…

大数据-194 数据挖掘 机器学习理论 有监督、无监督、半监督、强化学习

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

argparse的基本用法

目录 前言 一、代码示例 二、三种给定形参的方式 1.修改运行配置 配置形参​编辑 2.cmd给定形参 给定形参 3.pycharm终端给定形参 三、获取argparse帮助信息 前言 argparse 是 Python 标准库中的一个模块,用于解析命令行参数。它使得程序能够通过命令行接…

大模型低资源部署策略

文章目录 解码效率分析大模型训练后量化方法经验性分析与相关结论由于大模型的参数量巨大,在解码阶段需要占用大量的显存资源,因而在实际应用中的部署代价非常高。在本文中,我们将介绍一种常用的模型压缩方法,即模型量化(ModelQuantization),来减少大模型的显存占用,从…

MicroServer Gen8再玩 OCP万兆光口+IT直通之二

这个接上一篇,来个简单测试。 一、测试环境 PC端:Win10,网卡:万兆光纤(做都做了,都给接上),硬盘使用N年的三星SSD 840 交换机:磊科GS10,带两个万兆口 Gen…

Python: Print Table on console

# encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看: # 描述: # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 3.11 # OS : windows 10 # Datetime : 2024/10/28 22:08 # User : geo…

量子容错计算

基本思想 容错量子计算的基本想法是,在合理编码后的量子态上直接量子计算,以至于不完全需要解码操作。假设有一个简单的量子电路,但不幸的是噪声影响着这个电路的每一个元件,包括量子态的制备、量子逻辑门、对输出的测量&#x…

关于CUDA、cuDNN、nvcc、cudatookit、pytorch版本的总结

本人老是被网上的教程绕得云里雾里,所以觉得有必要写下一篇文章当做笔记供之后参考。 参考文章1:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎 (zhihu.com) 参考文章2:Pytorch 使用不同版本…

利用 yolov3.cfg 配置文件搭建网络模型

目录 一、前言 二、yolov3.cfg 配置文件展示 文件信息 三、配置文件处理 1、parse_model_config 函数 (1)读取并预处理文件内容 (2)解析模块定义 2、parse_data_config 函数 (1)初始化默认选项 &am…

CV项目整理

1. 爬取+展示的实时项目 1.1 核心技术 myqls + maxwell + redis+django 实现读写分离,实时项目,主从复制,读写分离,顺写日志。 maxwell将自己伪装成为slave,就可以从Mysql的集群中获取顺写日志Binlog maxwell取得的数据格式json 1.2 流程 1.3优化查询 下面的查询,笛卡尔…

【Spring】Spring Boot 日志(8)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点,根据序号学习即可。 1、日志概述 1.1学习日志的必要性 在第一次学习编程语言的时候,我们就在使用printf或者System.out.println等打印语句打印日志了…

CSS常用标签笔记

1 字体样式属性 对于font-family属性&#xff0c;如果字体类型只有一个英文单词&#xff0c;则不需要加上双引号&#xff1b;如果字体类型是多个英文单词或者是中文&#xff0c;则需要加上双引号。 <!DOCTYPE html> <html> <head><meta charset"utf…

Qt实现播放器顶部、底部悬浮工具栏

未实现时的播放器界面 下面是实现了雏形的悬浮栏&#xff1a; 设计一个播放器的悬浮工具栏旨在提升用户的交互体验&#xff0c;使得播放器在不影响观感的情况下提供常用功能。为此&#xff0c;我们可以新建一个QWidget窗口作为悬浮工具栏&#xff0c;将其作为播放器窗口的子控…

Redis-概念、安装、基本配置

文章目录 一、Redis及Redis集群概念、分布式系统概念一-1 Redis是什么&#xff1f;一-2 什么是分布式系统及其特性&#xff1f;一-3 什么是Redis集群以及实现的方法介绍&#xff1f;哨兵模式(sentinel)&#xff1f;cluster&#xff1f;&#xff1f; 一-4 Redis的库&#xff1f;…

大语言模型驱动的跨域属性级情感分析——论文阅读笔记

前言 论文PDF下载地址&#xff1a;7156 最近想搜一下基于大语言模型的情感分析论文&#xff0c;搜到了这篇在今年发表的论文&#xff0c;于是简单阅读之后在这里记一下笔记。 如图1所示&#xff0c;在餐厅领域中的"快"是上菜快&#xff0c;属于正面情感&#xff0c;但…

2022 icpc南京(I,G,A,D,M,B)

文章目录 [I. Perfect Palindrome](https://codeforces.com/gym/104128/problem/I)[G. Inscryption](https://codeforces.com/gym/104128/problem/G)[A.Stop, Yesterday Please No More](https://codeforces.com/gym/104128/problem/A)[D. Chat Program](https://codeforces.co…

来电显示单位名称怎么设置?

在现代商务沟通中&#xff0c;来电显示单位名称已成为提升企业形象、增强客户信任的重要工具。想象一下&#xff0c;当拨打或接听电话时&#xff0c;如果对方的手机屏幕上能够显示出企业的单位名称和品牌标识&#xff0c;会有什么样的效果呢&#xff1f;毋庸置疑&#xff0c;这…

图为大模型一体机新探索,赋能智能家居行业

在21世纪的今天&#xff0c;科技的飞速进步正以前所未有的速度重塑着我们的生活方式。从智能手机到物联网&#xff0c;从大数据到人工智能&#xff0c;每一项技术创新都在为人类带来前所未有的便利与效率。其中&#xff0c;图为AI大模型一体机作为人工智能领域的最新成果&#…

【Linux学习】(9)调试器gdb

前言 Linux基础工具&#xff1a;安装软件我们用的是yum&#xff0c;写代码用的是vim&#xff0c;编译代码用gcc/g&#xff0c;调试代码用gdb&#xff0c;自动化构建用make/Makefile&#xff0c;多人协作上传代码到远端用的是git。 在前面我们把yum、vim、gcc、make、git都已经学…