python中常量有几种类型_Python学习笔记 (2)变量、常量和数据类型

变量

顾名思义,变量就是一个会变的量,用一个变量名表示,指向内存中一片区域,而指向的区域存的是什么,这个变量就是什么数据类型,和C/C++挺不一样的。变量数据类型可以通过赋值变来变去(这就叫动态语言,区别于静态语言)。

创建和赋值

python中创建变量时只需给变量赋一个值,像这样 a = 1 ,然后变量名就指向存着那个值(1)的一片区域(表述不太对,应该是引用而不是指向)。用 id() 可以查看该变量的地址。

还可以像这样赋值 a, b = 1, 2 (a=1,b=2),或是这样 a=b=1 。

“可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。”

举个例子,我们给a赋值为1, a=1,就相当于创建了变量a,于是解释器在内存地址XXX中创建一个Number对象1,然后把a和XXX中的对象1关联起来。调用 id(a) ,能得到内存地址XXX。

然后我们给a加上1 a=a+1 或是给a赋值为2 a=2 ,就会再次创建一个在内存地址YYY中的Number对象2,然后a就被关联到了对象2上,至于对象1,也不知道是留着还是回收了,这里先留坑。

再调用 id(a) ,就会得到内存地址YYY,然后 b=2 , id(b) ,得到的还是内存地址YYY(官方解释器倒是这样的,不过其他解释器就不一定了),这时a和b引用同一片内存区域了,于是 a is b会返回True(is用来判断两个变量是否引用同一片内存区域)。还有一种情况,a和b的值都为1,但引用的是不同的对象(所在内存区域不同),这时 a is b 会返回False,而 a == b 会返回True(==用来判断两个变量所引用对象的值是否相等)

还有一件重要的事,变量名,规则和C/C++差不多——数字,字母,下划线, 任意组合,数字不能开头,对大小写敏感,python的关键字不能用,变量名尽量有意义(Python中变量的命名规范)。

查看自己版本python中的关键字可以使用命令help("keywords")

删除

del可以删除变量,但不同于C/C++中的free和delete()(别刮开我会说我不会用C/C++在堆区创建变量吗),python中的del不会删除内存中的数据,而是把变量删了(更高端一点的说法是把变量对对象的引用删了)。

使用方法 del a 或 del a,b,c

举个例子,建立变量a a=1,内存地址XXX就创建了对象1,于是a指向了XXX,建立变量b b=1 ,于是b也指向了XXX,然后 del(a) ,调用 id(b) 可以看到,这时b仍然指向XXX,但调用 id(a) 会报错,说变量a未定义。

此外,Python还有垃圾回收机制,留坑。

全局变量和局部变量

留坑到学函数时

常量

习惯用全部大写的变量名表示常量,其实电脑觉得它还是个变量,Python里没有C语言里类似const的东西,换句话说,把变量当成常量用就好。此外,Python还有6个内置常量。

Python的内置常量

True、False、None、NotImplemented、Ellipsis、__debug__(注意有些首字母大写)

数据类型

标准数据类型

String(字符串)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

一些补充说明

以上6种数据类型分类

按照存储数据个数区分

标量/原子类型(值能存放一个值)

数字,字符串

容器类型(存放多个值)

列表,元组,字典

按照可变不可变区分

//可变类型指的是在同一块内存地址之上可以将值替换掉(使用id()函数查看变量的内存地址)

可变

列表,字典,集合

不可变

数字,字符串,元组

按照访问顺序区分

直接访问(不可拆分)

数字

顺序访问(有下标的)

字符串,元组,列表

key值访问(映射类型)

字典

内置的type()函数可以用来查询变量所指的对象类型。此外还可以用 isinstance()来判断。使用方法

Python数据类型转换

这里借用C/C++的概念,可能不兴这么说,但好理解。

隐式类型转换

整数和浮点数做运算时,解释器将整数转换为浮点数;

布尔型和整型做运算时,将布尔型转换为整型;布尔型和浮点型做运算时,将布尔型转换为浮点型;

整型和布尔型与复数做运算时,被转换为浮点型;

两个整型做“/”运算时,无论是否除得尽,结果都为浮点型。

显式类型转换

(来自这里)

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数

描述

将x转换到一个浮点数

将对象 x 转换为字符串

将对象 x 转换为表达式字符串

用来计算在字符串中的有效Python表达式,并返回一个对象

将序列 s 转换为一个元组

将序列 s 转换为一个列表

转换为可变集合

创建一个字典。d 必须是一个序列 (key,value)元组。

将一个整数转换为一个字符

将一个字符转换为它的整数值

将一个整数转换为一个十六进制字符串

将一个整数转换为一个八进制字符串

将一个浮点数x四舍五入为一个整数,若有第二个参数,则四舍五入为y位浮点数

自定义数据类型

留坑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值