测牛学堂:软件测试python进阶之变量深入理解

news/2024/6/16 16:29:23

变量的深入学习

我们在平时开发过程中,了解到变量是存储数据的即可。但是其实他的底层原理还是比较复杂的。我们可以做一个简单的了解,对我们理解编程,或者以后解决bug,面试,都是有帮助的。
1我们在定义一个变量去存数据的时候,会在内存中开辟两个空间。
2变量所对应的内存空间中存储的其实是数据存储的地址。
3变量中保存的数据的地址,我们称之为引用。
4python中所有数据的传递,其实都是传递的引用。
5赋值运算符 = 可以改变改变变量的引用。并且只有= 可以改变。
常见面试题:

list1 = [1,2,3,]
list2 = list1

list1[0] = 9
print(list2) # [9, 2, 3]

可以看到的是,list2因为和list同时引用的是一个列表的数据,所以当列表里面的元素修改的时候,打印list2是同样的改变。

可变类型和不可变类型

根据内存中的数据是否允许修改,将数据类型分为可变类型和不可变类型。
可变类型:可以被修改:列表,字典
不可变类型:不可以被修改。数字类型,字符串,元组

变量范围划分(局部变量和全局变量)

局部变量:在函数内部定义的变量,称为是局部变量。
特点:
1 局部变量只能在当前函数的内部使用
2 可以在不同函数定义变量名相同的局部变量
3 局部变量在函数执行的时候被创建,在函数执行结束后被删除
4 形参就是局部变量
5如果想要在外部使用局部变量,可以通过函数的return返回出去使用

def fn1():
    num1 = 10
    print(num1)

def fn2():
    num1 = 20
    print(num1)

fn1() # 10
fn2() # 20

def fn3():
    num3 = 30
    return num3
num3 = fn3()
print(num3) # 30

全局变量:
1在函数外部定义的变量就是全局变量,全局变量可以在任意的函数内部读取到。
2 在函数内要修改全局变量的引用,需要使用global关键字
3 如果函数的局部变量和全局变量的名字相同,函数内部使用局部变量,即就近原则

num1 = 20
def fn():
    global num1
    num1 = 10

fn()
print(num1) # 10 

http://lihuaxi.xjx100.cn/news/839016.html

相关文章

一款基于python的安全即时通讯系统源码,实现类似于QQ的聊天软件

Uchat——基于python的安全即时通讯系统 tips 请不要在同一目录下运行服务端与客户端,否则会因为密钥冲突产生类型错误。即请分别运行服务端与客户端。 目的 设计完成简易的安全即时通讯系统,实现类似于QQ的聊天软件; 需求分析 功能需求…

StarRocks从入门到精通系列六:使用EXPORT、Spark、Flink从StarRocks中导出数据

StarRocks从入门到精通系列六:使用EXPORT、Spark、Flink从StarRocks中导出数据 一、使用EXPORT导出数据1.背景信息2.导出流程3.基本原理4.相关配置5.基本操作6.最佳实践二、使用 Spark 连接器读取数据1.前提条件2.通用参数3.数据样例4.使用Spark SQL读取数据5.使用 Spark Data…

Java数组的定查改增删操作

Java数组的定查改增删操作定义声明创建初始化声明的同时初始化先声明,再初始化查找修改增加 & 删除定义 定义包括声明、创建和初始化三个过程。 声明 声明,就是向编译器说明新变量的类型和名字,不实际分配内存。 int[] array;上面这句…

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(查找算法)

文章目录一、find二、find_if三、adjacent_find四、binary_search五、count六、count_if学习目标: 掌握常用的查找算法 算法简介: find //查找元素find_if //按条件查找元素adjacent_find //查找相邻重复元素binary_search //二分查找法count //统计元…

【java】基本类型、自定义类型set集合的多种排序方式:lambda表达式排序、JDK API、Java8 stream流

目录 一、set的特性二、包装类型set的排序方式1.方法一:新建TreeSet2.方法二:新建TreeSet的同时,用lambda表达式排序3.方法三:JDK API4.方法四:Java8 stream 流三、自定义类型set排序1.方法一:TreeSet2.通过…

Springboot+vue+java企业员工绩效考核管理系统

系统登录页面 3.2个人中心管理功能模块实现 本界面主要是对管理员账号和密码进行设置,是管理员角色的操作功能,员工不能添加管理员账号、个人中心管理功能实现界面如下图 3.3部门信息管理模块实现 部门信息是管理员角色的功能,管理员可以为企…

react(精读官方文档) -高级指引 - 严格模式

严格模式 StrictMode 是一个用来突出显示应用程序中潜在问题的工具。不会渲染任何可见的 UI为其后代元素触发额外的检查和警告注意&#xff1a;仅在开发模式下运行import React from react; function ExampleApplication() {return (<div><Header /><React.Str…

java高频面试题(2023最新)

目录一.java基础1.八大基础类型2.java三大特性3.重载和重写的区别4.pubilc、protected、(dafault)不写、private修饰符的作用范围5.和equals的区别6.hashcode()值相同&#xff0c;equals就一定为true7.short s 1&#xff1b;s s 1&#xff1b;(程序1)和 short s 1&#xff…