python学习之路 二 :基本数据类型

本节重点

  • 理解什么是变量?

  • 掌握各种数据类型

  • 理解可变类型和不可变类型

一.变量和常量

变量

作用:存贮程序的中间结果在内存里,以备后边的程序调用

定义规范:

变量名只能是 字母、数字活下划线的任意组合

变量名的第一个字符不能是数字

python中的关键字不能作为变量名

命名习惯:

驼峰体  FilePath

下划线体  file_path(官方推荐)

不建议的命名习惯:

变量名为中文、拼音

变量名过长

变量名词不达意

与c#对比:不需要定义变量的类型

变量的应用

a=1

b=a # 给变量b赋值变量a的内存地址,该内存地址指向1

a=2 # 修改a的内存地址指向2,但是变量b的内存地址不变

print(a) #2

print(b) #1

常量

特点:常量即指不变的量,如pai 3.141592653,或在程序运行过程中不会改变的量

在python中没有一个专门的语法代表常量,规范使用变量名全部大写代表常量

二.什么是数据类型?python中有哪些数据类型?

我们人类可以很容易的愤青数字和字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻。除非你明确的告诉它,1 是数字,“中国”是文字,否则它分不清1和“中国”的区别。因此,每种编程语言里都有数据类型,用来对数据进行明确的划分。

python中的数据类型按可分为两种:基本类型和数据集

python中的基本类型有:Number(数字类型)、String(字符串类型)

python中的数据集有:List(列表类型)、Tuple(元祖类型)、Dict(字典类型)、Set(集合类型)

三.Number类型

Number类型有:int(整型)、float(浮点型)、complex(复数型)、bool(布尔型)

from decimal import *
getcontext().prec = 50 # 设置精度为50位精准精度a = Decimal(1)/Decimal(3)#注,在分数计算中结果正确,如果直接定义超长精度小数会不准确 #a 的值为 Decimal('0.33333333333333333333333333333333333333333333333333')

四.String类型

文本str

字节bytes

在python中 加了引号的字符都被认为是字符串。

单引号、双引号:无明显差别,根据字符串内容选择。 strval = '我是"小明"',strval2 = "I'm xiaoming"。不支持自动换行,需要再结尾加 。

多引号:支持自动换行。字符串内容中既有'又有"时使用。

字符串格式化:%s(string) %d(int) %f(floag) 占位符、 % 连接符

常用操作 

  

五.List类型

list列表,可以用来贮存所有类型的对象的有序集合。

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

1.列表的创建

list_test=[‘张三‘,‘李四’,'alex']
#或
list_test=list('alex')
#或
list_test=list([‘张三‘,‘李四’,'alex'])

2.列表的特点和常用操作

        特性:a.可以存放多个值

b.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

常用操作:

  

3.列表和字符串

列表转字符串:str1 = "".join(list1)

字符串转列表:l2 = list(str1)或者l2 = str2.split(',')

补充:range(n) 生成区间为[0,n)的list集合,常用于for循环

六.tuple类型

​元组与列表类似,是不可变的列表

​特性

​    ​1.可存放多个值

​    ​2.不可变

​    ​3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序

元组的创建和常用操作

  

元组特性详解

​    ​1.可存放多个值

​    ​    ​如果元组中只有一个值 t = (1,)

​    ​    ​元祖中不仅可以存放数字、字符串,还可以存放更加复杂的数据类型

​    ​2.不可变

​    ​    ​元组本身不可变,如果元组里存放了其他可变元素,这些可变元素可以改变

七.dict类型

​字典是python语言中唯一的映射类型。注:字典的查找效率要比list、tuple高

定义:{key1:value1,key2:value2}

​    ​说明:1.键与之用冒号“:”分开

​    ​    ​    ​  2.项与项用“,”分开

特性

    ​    ​1.key-value结构

​    ​2.key必须可hash,且必须为不可变数据类型,必须唯一

​    ​3.可存放任意多个值、可修改、可以不唯一

​    ​4.无序

字典的创建和常用操作

 

  

  

八.集合类型

​    ​集合是一个数学的概念,由一个或者多个确定的元素所构成的整体叫做集合

特性

​    ​1.确定性

​    ​2.互异性(去重)

​    ​3.无序性

集合的定义:

​    ​#可变集合

​    ​s = {1,2,3,4}

​    ​#不可变集合

​    ​s = frozenset({1,2,3,4})

​集合的运算关系

    ​    ​1.交集

  2.合集

  3.并集

  4.对称差集

  5.包含关系

 集合的常见操作

  1.增加

    单个元素的增加 : add(),add的作用类似列表中的append

    对序列的增加 : update(),而update类似extend方法,update方法可以支持同时传入多个参数:

  2.删除   

    集合删除单个元素有两种方法:

    元素不在原集合中时:

    set.discard(x)不会抛出异常

    set.remove(x)会抛出KeyError错误

  

    pop():由于集合是无序的,pop返回的结果不能确定,且当集合为空时调用pop会抛出KeyError错误,

    clear():清空集合

  

九.可变类型和不可变类型

  通过操作修改该类型的实例,内存地址保持不变得是可变类型