1.Python变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

2.变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

a = 100b= 0.1c= 1000.00

print(a,b,c)-----结果-----

100 0.1 1000.0ps:你会发现Python可以自动识别变量的类型,但是可以从b和c的结果可以看出,Python默认浮点型为小数点的后一位

3.多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1,2,"hello world!"

print(a,b,c)-----结果------(1, 2, 'hello world!') (1, 2, 'hello world!') (1, 2, 'hello world!')

a,b,c= 1,2,"hello world!"

print(a,b,c)-----结果------

1 2 hello world!

4.标准数据类型

Python有五个标准的数据类型:

Numbers(数字)

String(字符串)

List(列表)

Tuple(元组)

Dictionary(字典)

4.1.Numbers(数字)

Python支持四种不同的数字类型:

int(有符号整型)

long(长整型[也可以代表八进制和十六进制])

float(浮点型)

complex(复数)

数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 100address1=id(var1)

var2= 100address2=id(var2)print("var1'address="+str(address1))print("var2'address="+str(address2))-------结果-------var1'address=8791242541216

var2'address=8791242541216

var1= 200address1=id(var1)

var2= 200address2=id(var2)print("var1'address="+str(address1))print("var2'address="+str(address2))-------结果-------var1'address=8791242544416

var2'address=8791242544416

var1= 200address1=id(var1)

var2= 200address2=id(var2)

var3=var2

address3=id(var3)print("var1'address="+str(address1))print("var2'address="+str(address2))print("var3'address="+str(address3))-------结果-------var1'address=8791246542112

var2'address=8791246542112

var3'address=8791246542112

上面的id()是地址函数,从上面的代码可以看出var1和var2都赋值100时,他们的地址都是一样的,可以说明var1和var2引用了同一个对象,即100,也就是说内存中对于1只占用了一个地址,而不管有多少个引用指向了它,都只有一个地址值,只是有一个引用计数会记录指向这个地址的引用到底有几个而已。

我们进行var1=200赋值时,发现var1的地址值变了,虽然还是var1这个引用,但是其地址值却变化了,后面的var2=200以及var3=var2,使得var1、var2和var3都引用了同一个对象,即200,所以地址值都是一样的。当var1和var2都被赋值200后,100这个对象已经没有引用指向它了,所以100这个对象占用的内存,即8791242541216地址要被“垃圾回收”,即100这个对象在内存中已经不存在了。

之所以称为不可变数据类型,这里的不可变可以理解为var1引用的地址处的值是不能被改变的,也就是8791242541216地址处的值在没被垃圾回收之前一直都是100,不能改变,如果要把var1赋值为200,那么只能将var1引用的地址从8791242541216变为8791246542112,相当于var1= 200这个赋值又创建了一个对象,即200这个对象,然后var1、var2、var3都引用了这个对象,所以int这个数据类型是不可变的,如果想对int类型的变量再次赋值,在内存中相当于又创建了一个新的对象,而不再是之前的对象。

python指定变量类型_Python-变量类型相关推荐

  1. python指定变量类型_Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  2. python max取下标_Python 变量类型总结

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  3. 4j是合法python数字类型_python数字类型

    在python中,数据采用了对象的形式(无论是python内置对象还是使用python工具和像C语言自行创建的对象). Python数字类型工具:整数和浮点数 复数 固定精度的十进制数 有理分数 集合 ...

  4. python输出变量地址_Python——变量

    笑虎:千行代码入门Python​zhuanlan.zhihu.com 函数的参数​www.liaoxuefeng.com Python学习之变量的作用域 - fireporsche - 博客园​www ...

  5. python公共变量声明_Python变量声明

    繁星coding 好的,首先要做的事情.Python中没有"变量声明"或"变量初始化"这样的东西.简直就是我们所谓的"任务",但应该只是称之 ...

  6. python的元祖类型_python元组类型

    元组类型简介 使用括号包围的数据结构是元组(tuple).例如: >>> (1,2,3) (1, 2, 3) >>> T = (1,2,3,) >>&g ...

  7. python列表实现原理_Python动态类型实现原理及过程解析

    在python中,我们使用变量时,并没有声明变量的存在和类型.类型是在运行过程中自动决定的. a = 3 python将会执行三步去完成上面这个请求. 1.创建一个对象代表3 2.创建一个变量a,如果 ...

  8. python布尔测试对象_python布尔类型和逻辑运算

    布尔类型 python中True表示真,False表示假,它们是布尔类型:1 2>>> type(True) 在python中,bool的True和False是数值1和0的字符串表示 ...

  9. python变量回收_Python变量的引用、拷贝和回收机制

    1.Python中变量的引用 Python中的变量都是指针,都是某个内存对象的引用. python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用" ...

  10. python定义变量参数_Python变量定义与使用

    前言 对于任何编程语言都存在对数据的处理,比如数字.字符串.字符等,我们可以直接使用数据,同时还可以将数据保存到变量中,方便以后使用.什么是变量?在任何语言里面都一样,可以把它看成是个小容器,专门用来 ...

最新文章

  1. CodeForces 392C Yet Another Number Sequence 矩阵快速幂
  2. libsvm学习(二)——第一次体验libsvm(转)
  3. angular 拦截器
  4. spring mvc 返回json数据的四种方式
  5. noip2014生活大爆炸版石头剪刀布
  6. struts2 - ation 访问 Servlet api
  7. Spring的事务管理难点剖析(5):联合军种作战的混乱
  8. 跳出多重循环_代码里的俄罗斯套娃 | 07 多重循环
  9. 3D数学之镜像、切变
  10. Unity粒子特效出现慢
  11. Kindle 2 初探
  12. 4.OpenCV视频处理
  13. 《爱情,最幸福的信仰》吴若权
  14. iOS11以及iPhone X遇到的相关问题
  15. 线性代数考研笔记(一)
  16. 模拟Android内存不足 activity回收 值保存 状态恢复
  17. 梅西的命运才是真正的人生
  18. 多家银行同城跨行取款手续费上涨到4元
  19. 软件工程专业考研是否更有利于找工作?
  20. 魔方内存盘的使用体验

热门文章

  1. ASP.NET调用V3版本的Google Maps API
  2. 宝塔面板PHP报错404,宝塔服务器管理面板404 Not Found解决方案
  3. BWA,Bowtie,Bowtie2的比对算法推导
  4. 个人资料卡片CSS样式
  5. LeetCode #1087. Brace Expansion
  6. 《软件开发的201个原则》思考:3.开发效率和质量密不可分
  7. Ftp文件服务器搭建
  8. 8月末推荐伤感语录大全_我的世界太过安静
  9. 新宝网上配资看好今年行情的具体理由
  10. Oracle数据库慢查看数据库