目录导航
Python变量与基本数据类型
前言
好了,从本章开始将正式进入Python的学习阶段。本章主要介绍的是Python变量与基本数据类型的认识,这些都是最基本的知识并且必须要牢靠掌握在心中。在最后面会做上一个小小的总结来方便读者加深印象和记忆,那么现在就开始吧。
注释
学习任何一门语言首要的就是学习它的注释。注释就是说你的程序脚本中不会被解释器解释执行的一部分,它的功能主要是给人阅读方便代码的后期维护。
在Python中(2.X和3.X均可),主要有3种注释方式,其中单行注释1种。多行注释2种:
- 单行注释: # 号
- 多行注释:""" 与 '''
我们可以看到。输出结果只有一个 hello,world ,这说明 # 部分 与 ''' 还有 """ 的所有内容并未让解释器解释与执行。
变量
变量的定义与使用
关于变量,变量就是计算机用来记录事物状态变化过程的东西,这里最主要的一点就是变,它是允许变化的。这个东西其实是很抽象的一个概念,我对于学习的一个点就是先不管它是干什么的,看看是怎么用的。会用了之后,自然就慢慢理解了,所以一股脑的向前冲吧。
首先,绝大部分的编程语言关于变量的定义都分为三部分:
我们来看一看在Python中如何准确的为一个变量赋值。
>>> name = "yunya" # 记录姓名 >>> age = 18 # 记录年龄 >>> height = 1.92 # 记录身高
>>>
这个就是一个很简单的赋值操作,但是对于底层来说它其实也做了很多的事情:
当Python解释器解释到有赋值操作时,会在内存空间(堆内存)中申请一块地方存放该变量值,并且会在内存空间(栈内存)中申请一块地方存放该变量名。并且将变量名和变量值的内存地址做一个绑定(不是双向唯一性)。
这里请记住两个概念,堆内存和栈内存。会在后面的垃圾回收机制中详细介绍。如果难以理解可以尝试看一下图片:
除开直接赋值。还有交叉赋值,间接赋值等等操作,我们这里看一下间接赋值:
>>> x = 1
>>> y = x
如何使用一个变量呢?方式也很简单。
>>> name = "yunya" >>> age = 18 >>> height = 1.92 >>> >>> >>> x = 1 >>> y = x >>> >>> print(name) yunya >>> print(age) 18 >>> print(height) 1.92 >>> print(x) 1 >>> print(y) 1
>>>
我们可以看到。当我们打印x的时候是1这个没问题,因为赋值的时候就是赋值成了1.但是打印y的时候依旧是1是为什么呢?因为变量名存储的是变量值的内存地址。所以y中通过x当然也存储的是变量1的内存地址。这个是没问题的。画一张图演示一下:
继续来看下一个问题:
>>> y = 1 >>> z = y >>> y = 2 >>> print(z) 1
>>>
为什么y变成了2,打印z却还是1呢?这也是一个常常令新手迷惑的地方,总有人认为这种情况是 y 指向 x 指向的内存地址。并随着 x 的变化而变化 ,但是事实却是 x 的变化并不会影响 y 的内存地址指向。
接下来看交叉赋值。
>>> x,y = 1,2 >>> print(x) 1 >>> print(y) 2 >>> x,y = y,x >>> print(x) 2 >>> print(y) 1
>>>
交叉赋值这个应该挺好理解,这里不做多的解释。用文字描述一下就即可:
- 第一步:x = 1
- 第二步:y = 2
- 第三步:x = 2
- 第四步:y = 1
那么关于Python变量的基本使用与介绍就讲到这里,最后补充一个关于变量的删除:
>>> x = 1 >>> del x >>> print(x) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'x' is not defined >>>
可以看到当我们 使用 del 删除 x 的时候实际上是解除了 变量名 x 与变量值的绑定关系,而变量值此时已经没有了绑定关系则会被Python垃圾回收机制所回收用于释放内存。关于Python垃圾回收机制接下来会讲到,这里做一个了解即可。重点是del的作用,解除变量名与变量值直接的绑定关系。除此之外我们也可以使用变量名与新的值绑定从而达到与旧值解绑的目的。
>>> x = 1 >>> print(x) 1 >>> x = 2 >>> print(x) 2 >>>
还是画一个图示:
变量命名的规范
上面介绍了变量的使用方式与赋值,那么关于变量的命名方式其实是有一个规范的
- 变量名应当见名知意
- 变量名由数字,字母,下划线组成。并且开头不能为数字。
- 变量名不能使用Python中的关键字(关键字:是指某些具有特殊功能的单词,如break)
变量命名错误示范:
$name = 'yunya' #具有特殊字符 1year = 365 #数字开头 *_size = 1024 #具有特殊字符
and = 123 #使用了关键字 年级 = 3 #强烈不建议使用中文(占用内存大) (color) = 'red' #虽然这种命名方式可行但是也极为不推荐
变量命名正确方式:
name = 'yunya' __age = 18 #Python中 双下划线开头的变量名一般有隐私的这种说法 page_1 = '首页'
变量命名的风格
正文
变量具有的三大特征
正文
常量
正文
字符串(str)
正文
列表(list)
正文
元组(tuple)
正文
字典(dict)
正文
集合(set)
正文
布尔(bool)
正文