之前的那节课没看懂?没关系,那些都只是开胃菜,小case啦~
今天,最最最关键的Python基础知识来了——变量类型!
在说变量之前,我们先来简单说一说常量。
顾名思义,常量,就是值不会发生变化的变量(惊喜不惊喜?)。
在C语言里,用const关键字修饰的变量就是常量,如果你在代码逻辑中给常量赋值,对不起,在编译的时候就会报错。
但是,在Python里并没有常量的概念!(我觉得这才是符合哲学的,那句很有哲理的话是怎么说来着?世界上唯一不变的就是变化。)
所以,我们在编程的时候,可把全部大写的变量当做常量来使用(或者加上“CONST_”的前缀)。
这样在代码中一看到就知道这个变量是常量大佬,我们不要随便去修改他的值!
例如:
CONST_INT_ONE = 1
CONST_STR_TWO = '2'
其实,无论是常量还是变量,都包含两个属性:类型和值,而且还得给它取一个合适的名字。
以上面的第1个常量为例,名字就是CONST_INT_ONE,它的类型是int型,值是1。
说到这里,常量基本上已经讲完了。下面,今天的主角“变量”就要出场了,大家欢迎~
额,好像没什么好介绍的了,不是常量的不就是变量了吗?
主角刚出场就这么尴尬了吗?
当然不是,事情并没有你想的那么简单!
那我就闲话少说,表一表咱Python里的变量类型。
1、变量类型
在Python3中一共有六种标准类型的变量:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
2、变量声明
Python中的变量,最大的特点就是不需要声明变量类型。你赋值给他什么类型,他就是什么类型,你就说灵不灵活吧!
但是(注意,“但是”来了!),灵活也是一把双刃剑。
就是因为太灵活,在使用的过程中如果不注意就会出现一些逻辑错误。
所以,我们在使用变量的时候,名字一定要取个容易记的好名字!
有个约定俗成的习惯,在变量名前面加上它的类型,比如:
i_a = 1 # i_开头一看就知道是int型变量
s_b = '2' # s_开头一看就知道是字符串型变量
在Python中,变量不仅值会变,连变量的类型也可以变,真的是名副其实!
有人可能会说,这算什么,C/C++、Java还不是可以强制转换变量类型?
这我就要来和你掰扯掰扯了!
强类型语言,比如C/C++、Java的变量是可以进行强制转换,但是变量本身的类型是不会改变的。一旦声明,在生命周期里就固定不变了。比如:
i_a = 1 # i_开头一看就知道是int型变量
s_b = '2' # s_开头一看就知道是字符串型变量
但Python就不一样:
i, j = 1, 2.0
i += j # 此时i就变为float型变量了
3、数字和字符串
1.1 数字类型
Python3中数字类型又分为整型(int)、浮点型(float)和复数(complex)三种。
注意,Python2中的长整型(long),已经被时代遗弃了……
i, o, x = 2, 0o37, 0xFF # 分别是10进制、8进制和16进制整型
f = 0.22p = 1 + 1j # j前面必须带数字,否则就会被程序当做变量j了
p = complex(1, 1) # 同上,只是写法不同
1.2 字符串类型
Python中给字符串变量赋值时,需要用单引号、双引号或三引号括起来,特殊字符需要用反斜杠 \ 转义。
可以使用dir(str)查看字符串变量支持的所有的成员和方法。
字符串可以通过索引值和切片来访问其中的每个字符。
比如:
int i = 1;
float f = 2.0;
i = (float)i + f; // i 仍然是int型变量
实际运行结果:
假设字符串长度为N,索引值合法范围是:-N ~ N-1
从左往右就是0 ~ N-1,从右往左就是-1 ~ -N
切片取值就可随意,Python会自动处理。自己多试试看吧!
写了这么多,我发现要用简单的话把知识讲明白,真的是很难。
再加上你可能也需要花点儿时间来消化消化今天讲的课程内容。
所以,今天的课程就先暂时告一段落,接下来的课程我将继续讲解剩下的几种变量类型:
List、Tuple、Set和Dictionary。
---------------------------------------
上一节:《Python3学习第一课(第1节:基本语法)》
我是@36岁的大叔爱吃瓜,希望我的这篇文章可以帮助到你!