代码改变世界

Python基础第二章数据类型

2018-08-09 19:02  晓冲。  阅读(236)  评论(0)    收藏  举报

一、数据类型

  数据类型分为数字(整型,长整型,浮点型,复数),字符串,字节串(字符编码介绍的byte类型),列表,元组,字典,集合。

1、数字

  数字分为整型和浮点型。

  整型int:

    作用:用来表示年纪,年龄,等级,身份证号等。。。

    定义: age = 10 #本质  age = int(10) 

  浮点型float:

    作用:用来表示身高,薪资,体重等。。。

    定义:salary = 3568.97 #本质 salary = float(3568.9)

2、字符串

  字符串为str

    作用:用来描述名字,性别,国籍等描述信息

    定义:在单引号,双引号,三引号中,由一串字符传组成  name = 'boris' , name = "boris".  #本质 name = str('boris')

3、列表

  列表为list 

    作用:多个爱好,多个课程,多个城市等。。。

    定义:[ ] 中括号内可以由多个任意类型的键值,逗号分隔, family = ['father','mother','sister','girlfriends']   #本质 family = list(['father','mother','sister','girlfriends'])

4、元组

  元组为 () 小括号

    作用:存多个值,对比列表来说,元组不可改变(是可以当作字典的key的),主要用来读

    定义:与列表相比,只是 [ ]中括号,换成 ( )小括号 # age = (23,24,25,26)#本质 age = tuple((23,24,25,26))

5、字典

  字典为 { } 大括号

    作用:存多个值,key-value存取,取值速度快

    定义:key必须是不可变的类型,value可以是任意类型。 # info = { 'name' : 'boris' , 'age' : '23', 'sex' : 'male' } #本质 info = dict({ 'name' : 'boris' , 'age' : '23', 'sex' : 'male' })  或者 info = dict ( name = 'boris' , age = '23' , sex = 'male') 

6、集合

   集合为可以用多个元素,用逗号分隔

    作用:去重,关系运算

    定义:1.每个元素必须是不可变的类型(可hash,可作为字典的key)2.没有重复的元素 3.无序

    注意:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

7、数据类型总结

   1.按存储空间的占用分(从低到高) 

    数字---->字符串----->集合(无序,即无需存索引相关信息)-----> 元组(有序,即需要存索引相关信息,不可变)------> 列表 (有序,即需要存索引的相关信息,可变,需要处理数据的增删改)-------> 字典(无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改)

   2.按存取值个数分区

    标量,原子类型=======>数字,字符串。容器类型=========> 列表,元组,字典

   3.按可变与不可变区分

    可变的 =========> 列表,字典。不可变的 =============> 数字,字符串,元组

   4.按访问顺序区分

    直接访问========> 数字。顺序访问(序列类型)===========>字符串,列表,元组。key值访问(映射类型)===========> 字典。

二、字符编码

1、什么是字符编码?

  我们在使用计算机是,用的是人类能读懂的字符,而高级语言编程的结果无非是在一个文件内写了一推字符,让计算机能读懂人类的字符。这两者都必须经过一个过程:字符------------>翻译-----------> 数字,这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准为字符编码。

2、字符编码的发展史

  1.ASCII码

    ASCII是最早的编码,里面有英语大写字母,小写字母,数字,一些特殊字符,没有中文,8个01代码,8个bit,1个byte。

  2.GBK码

    GBK是中文国标码,里面包含了ASCII编码和中文常用编码。16个bit,2个byte

  3.UNICODE码

    UNICODE码是万国码,里面包含了全世界所有国家文字的编码,32个bit,4byte,包含了ASCII码,定长。

  4.UTF-8码

    UTF-8是可变长度的万国码,是unicode的一种实现,最小占位8位,可变长,对英文字符只用1byte表示,对中文字符用3byte表示,对其他生僻字用更过的byte去存。

  5.总结

    综上除了ASCII码以外,其他信息不能直接转换。在python3的内存中,在程序运行阶段,使用的是unicode编码,在数据传输和存储的时候由于unicode比较浪费空间和资源,需要把unicode转存成UTF-8或者GBK进行存储。简单的理解就是  编码=====>传输=====>存储====>解码.数据没有变化,执行表现形式发生了变化而已。

三、文件操作

1、初识文件操作

  在python中打开文件,得到文件句柄并赋值给一个变量,通过句柄对文件进行各种各样的操作,然后关闭文件。打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b,默认使用的是r(只读)模式。

 1 #1.打开文件,打开的方式,得到一个文件句柄并赋值给一个变量
 2 f = open("a1.txt",mode="r",encoding="utf-8")
 3 
 4 #2.通过句柄对文件进行操作
 5 s = f.read()
 6 
 7 
 8 #3.输出操作后的结果
 9 print(s)
10 
11 
12 #4.关闭文件
13 f.close()
View Code

#分析过程:由程序向操作系统发起系统调用open(.....) ------------> 操作系统打开该文件,并返回一个文件句柄给应用程序给应用程序 ---------->应用程序将文件句柄赋值给变量f ------------> 输出文件内容 ------------>关闭文件。

2、打开文件的模式

  1.打开文件的模式(默认是文本模式)

    r:只读模式,默认模式,文件必须存在,不存在则异常

    w: 只写模式,不可读,不存在则创建,存在则清空

    a:  只追写模式,不可读,不存在则创建,存在则只追加内容

   2.非文本文件只能用b模式,b表示以字节的方式进行操作,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

    rb:只读模式,以字节方式进行读取

    wb: 只写模式,以字节方式进行写

    ab: 只追加模式,以字节方式进行追加

    3.了解部分

       "+":  表示可以同时读写某个文件

      r+:  表示读写,可读,可写

      w+:  表示写读,可写,可读

      a+:  表示写读,可写,可读

      x :  表示只写模式,不可读,不存在则创建,存在则报错

      x+:  表示写读,可写,可读

 四、函数

1、什么是函数

  函数:定义一个事情或者功能,等到需要的时候直接调用,这里调用的东西就是一个函数。

2、函数的分类

  函数分为内置函数和自定义函数,内置函数就是我们可以拿来就用的无需事先定义,比如len(),sum(),max()等;自定义函数就是事先定制好我们自己的函数,来实现某种功能,以后再遇到应用场景时,调用自定义的函数即可。

3、自定义函数

    1.定义函数的语法

1 #语法
2 
3 def 函数名(参数1,参数2,参数3,.....):
4     ''' 注释 '''
5     函数体
6     return 返回的值
7 
8 #函数名要能反映其意义
View Code

注:函数在定义阶段,只检测语法,不执行代码,语法错误会在定义阶段就检测出来,而代码的逻辑错误只有在执行的时候才知道。

    2.定义函数的三种形式

  1.无参:应用场景仅仅只是执行一些操作

  2.有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值

  3.空函数:设计代码结构

4、调用函数

  函数的调用:函数名加括号,执行流程是先找到函数名字,再根据名字调用代码

5、函数的返回值

  在函数体中,如果没有return,执行函数就返回None,如果有return 1个值,则返回一个值,如果return 多个值(逗号分隔)则返回一个元组。

6、函数的参数

  函数的参数分为形参和实参。形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定。