python基础语法:数据类型总结

第一节 字符串

一、引号和转义字符

1.引号

        单行字符串可以由一对单引号(')或双引号(")作为边界来表示,单引号和双引号作用相同。当使用单引号时,双引号可以作为字符串的一部分;当使用双引号时,单引号可以作为字符串的一部分。

        多行字符串可以由一对三单引号(’’’)或三双引号(""")作为边界来表示,两者作用相同。

        双引号和单引号中代码内容,可以使用回车换行输入,新产生的行会自动加上双引号或单引号,但是输出结果并不换行。

2.转义字符

        反斜杠字符(\)是一个特殊字符,在Python字符串中表示“转义”,即该字符与后面相邻的一个字符共同组成了新的含义。例如:\n表示换行、\\表示反斜杠、\'表示单引号、\"表示双引号、\t表示制表符(Tab)。

        反斜杠字符(\)还有一个额外作用:续行。

二、字符串的索引和切片

1.索引

        对字符串中某个字符的检索被称为索引。

        索引的使用方式如下:<字符串或字符串变量[序号]

        字符串包括两种序号体系:正向递增序号和反向递减序号,如图2.2所示。

        作为字符序列,字符串可以对其中单个字符或字符片段进行索引。字符串包括两种序号体系:正向递增序号和反向递减序号,如图2.2所示。

2.切片

        (1)基本切片方法

        对字符串中某个子串或区间的检索称为切片。切片的使用方式如下:

        <字符串或字符串变量>[N:M ]

        [N:M]获取字符串中从N到M(但不包含M)间连续的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果N缺失,则默认将ⅣN设为0;如果M缺失,则默认表示到字符串结尾。示例如下。

        切片要求N和M都在字符串的索引区间。使用正向索引时,如果N对应的字符在M对应的字符右边,则返回空字符串;使用反向索引时,如果N对应的字符在M对应的字符右边,则返回空字符串。总结规律可得出:不论是正常索引还是反向索引,只要N大于等于M,则返回空字符串。示例如下。

(2)高级切片方法

        字符串切片还有一种高级用法,使用方式如下:

        <字符串或字符串变量>[N:M:K]

        该方法获取字符串从N到M(不包含M)、以K为步长的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号,K为整数。特别是当K为负数时,将返回从M到N(不包含N)的反向字符子串。示例如下。

三、字符串的基本格式化

        format,翻译成中文,其含义为:格式。

        在字符串中整合变量时需要使用字符串的格式化方法。字符串格式化用于解决字符串和变量同时输出时的格式安排问题。

1.无指定槽序号的format

        Python语言推荐使用format()格式化方法,其使用方式如下:

        <模板字符串>.format(<逗号分隔的参数>)

        其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。例如:

2.有指定槽序号的format

        如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应format()方法中的不同参数。例如:

        format()方法中参数根据出现先后存在一个默认序号,如图3.1所示。

        可以通过format()参数的序号在模板字符串槽中指定参数的使用,参数从0开始编号,如图3.2所示。示例如下。

        如果字符串中出现槽的数量和format()方法中出现的参数数量不一致,即程序不能够通过简单的顺序对应确定参数使用,则必须在槽中使用序号指定参数使用,否则会产生IndexError的错误。

        如果希望在模板字符串中直接输出大括号,使用{{文本{}文本}},其中最里面的一个{}表示槽。示例如下。

        总结:.format(),实际是字符串的一个操作方法,也可以理解成一个自带的函数。

四、字符串的格式控制

        见二级教材相关内容。

五、字符串操作符

操作符

描述

+

x+y ,连接两个字符串x与y

*

x*n或n *x,复制n次字符串x,其中n为数字。

in

x in s ,如果x是s的子串,返回True,否则返回False

not in

x  not in s ,如果x不是s的子串,返回True,否则返回False

六、字符串处理函数

函数

描述

len(x)

返回字符串x的长度,也可返回其他组合数据类型的元素个数。中英文字符及标点字符等都是1个长度单位。

str(x)

返回任意类型x所对应的字符串形式。可以将二进制、八进制、十六进制数字转换为十进制数。

chr(x)

返回Unicode 编码x 对应的单字符

ord(x)

返回单字符x表示的Unicode编码

hex(x)

返回整数α对应十六进制数的小写形式字符串

oct(x)

返回整数x对应八进制数的小写形式字符串

七、字符串的操作方法

        “方法”是程序设计中的一个专有名词,属于面向对象程序设计领域。在Python解释器内部,所有数据类型都采用面向对象方式实现,因此,大部分数据类型都有一些处理方法。

        方法也是一个函数,只是调用方式不同。函数采用func ( x )方式调用,而方法则采用<a>.func( x)形式调用,即 A.B()形式。方法仅作用于前导对象<a>。

方法

描述

str.lower()

返回字符串str的副本,全部字符小写

str.supper()

返回字符串str的副本,全部字符大写

str. capitalize()

将字符串第一个字符转换成大写。

str.title()

将字符串每个单词首字母转换成大写。

str.split(sep=”a”)

返回一个根据sep分割字符串后的列表。根据sep分隔字符串 str。sep不是必需的,默认采用空格分隔, sep可以是单个字符,也可以是一个字符串。

str.count(“sub”)

返回回子串sub出现的次数

str.replace(“old”,“new”)

返回字符串 str的副本,所有old子串被替换为new子串

str.center(width,fillchar)

返回长度为 width 的字符串。其中,str处于新字符串中心位置,两侧新增字符采用fillchar填充,当width小于字符串长度时,返回str ;fillchar是单个字符。

str.ljust(width,fillchar)

左对齐,右填充。用法同str.center()

str.rjust(width,fillchar)

右对齐,左填充。用法同str.center()

str.strip(“char”)

去掉字符串两侧的字符串char。

str.lstrip(“char”)

去掉字符串左侧的字符串char。

str.rstrip(“char”)

去掉字符串右侧的字符串char。

str.jion(inter)

将str作为分割符添加在可迭代变量inter中的每个元素中间。

str.format()

格式化字符串

str.find(子串,开始下标,结束下标)

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。

str.index(子串,开始下标,结束下标)

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。

str.rfind()

和find()功能相同,但查找方向为右侧开始。

str.rindex()

和index()功能相同,但查找方向为右侧开始。

str. startswith(子串,开始下标,结束下标)

检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查。

str. endswith(子串,开始下标,结束下标)

检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查。

        总结:有返回值的函数,必须用一个变量接收这个返回值。如果没有返回

八、字符串的比较运算

        与数值比较运算一样,字符串也可以进行比较运算,有6种操作,即大于(>)大于等于(>= ),小于(<)、,小于等于(<=),等于(==),不等于(!=)。

        两个字符串比较采用从左向右依次比较字符的方式,根据字符对应Unicode编码值大小决定字符串大小关系。

九、单词释义

        strip       /strɪp/ 除去

        format  /ˈfɔːmæt/  格式

        split   /splɪt/ 分割

第二节 组合数据类型

        能够表示多个数据的类型称为组合数据类型。Python语言中最常用的组合数据类型有3大类,分别是序列类型、集合类型和映射类型。

        序列类型是一维元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。Python语言提供了多种序列数据类型,其中比较重要的是字符串类型,列表类型和元组类型。

        由于序列的元素之间存在顺序关系,序列类型使用相同的索引体系。由此可以得出,Python中序列类型数据在索引和切片功能上的使用方法,同字符串是一致的。

        1.序列的操作符

操作符

描述

+

x+y ,连接两个字符串x与y

*

x*n或n *x,复制n次字符串x,其中n为数字。

in

x in s ,如果x是s的子串,返回True,否则返回False

not in

x  not in s ,如果x不是s的子串,返回True,否则返回False

        2.序列类型的操作函数

函数

描述

len(s)

序列s 的元素个数(长度)

min(s)

序列s 中的最小元素。如果列表元素间不能比较,则会报错。数字和数字可以比较,字符串同字符串可以比较,但是数字和字符串不可以比较。

max(s)

序列s 中的最大元素。比较方法同min(s)

s.index(x)

序列s 中第一次出现元素x的位置

s.count(x)

序列s中出现x的总次数

        集合类型和映射类型分别对应Python中的数据类型set和dict。详细内容见具体小节。

        3.关于保留字del用法总结

函数

描述

del(list/dict)

删除列表list或字典dict

del(list[i]/dict[i])

删除列表lsit中下标为i的元素,删除字典dicy中key为i的值

del x

删除列表list或字典dict

del list[i]/dict[i]

删除列表lsit中下标为i的元素,删除字典dicy中key为i的值

第三节 列表

一、概述

        列表没有长度限制,元素类型可以不同,不需要预定义长度。

        列表是一个十分灵活的数据结构,它具有处理任意长度、混合类型的能力,并提供了丰富的基础操作符和方法。当程序需要使用组合数据类型管理批量数据时,请尽量使用列表类型。

二、列表的基本操作

        1.空列表的创建

        方法1:list1=[]

        方法2:list1=list()

        2.修改指定下标的数据

        语法:

        列表名[下标]=值

三、列表的操作方法

方法

描述

ls.append(x)

在列表ls的结尾追加一个元素x

ls.extend(x)

在列表ls的结尾逐个追加序列x中的所有元素。同ls.append(x)的区别在于ls,extend(x)追加的不是单个元素,而一个序列。当然单个元素的字符串,列表、元素也属于序列

ls.insert(i,x)

将元素x增加至列表ls索引[i]位置。

ls.clear()

清除ls中的所有元素

ls.remove(x)

将列表中出现的第一个元素x删除

ls.pop(i)

将列表ls中下标为i的元素删除,其返回值是列表ls中下标为i的元素。

ls.reverse()

将列表ls中的元素倒序排列

ls.sort(key=None,reverse=True)

对列表ls中的元素进行排序。reverse=True为降序排列,reverse=False为升序排列

ls.copy()

生成一个新列表,复制ls 中所有元素

四、单词释义

        append  /əˈpend/ 追加

        extend  /ɪkˈstend/ 扩大

        reverse /rɪˈvɜːs/  逆向,逆转

第四节 元组

一、概述

        元组类型一旦定义就不能修改,在编程中不够灵活,同时,元组类型的所有操作都可以由列表类型实现,因此,一般编程中,如果需要自定义变量,通常以列表类型替代元组类型使用。如果确认编程中不需要修改数据,可以使用元组类型。

        元组类型主要在Python语法相关的场景使用,例如,当函数返回多个值时,多个返回值以元组类型返回,实际上返回一个数据类型。

        由于列表类型覆盖了元组类型所有主要功能,这里仅对元组做简要介绍,建议读者了解元组类型,在编程时尽量使用列表类型。

二、空元组的创建

        方法1:tuple1=()

        方法2:tuple 1= tuple()

三、元组的操作方法

        元组的操作方法都是通用操作方法。

第五节 集合

一、概述

        集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。

        Python语言中的集合类型与数学中的集合概念一致,即包含0个或多个数据项的无序组合。集合中的元素不可重复,元素类型只能是不可变数据类型,例如整数、浮点数、字符串,元组等。相比较而言,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。

        集合类型主要用于元素去重,适合于任何组合数据类型。

        打印集合中元素,输出的顺序是随机的。

二、集合的运算

        Python集合的运算规律同数学中的集合运算规律。

集合运算符

集合运算符

含义

示意图

A&B

交集

A|B

并集

A-B

差集

A^B

补集

三、空集合的创建方法

        方法:set1=set()

        切记:不能使用使用set1={}的方法创建空集合,因为{}是用来创建空字典的。

四、集合的操作方法

方法

描述

s.add(x)

如果数据项x不在集合s 中,将x增加到s

s.update(x)

在集合s中追加单个序列x。同s.add(x)的别,前者追加单个数据,而后者追加的是单个序列。

s.remove(x)

删除集合中指定的数据x;若不存在则会报错

s.discard(x)

删除集合中指定的数据x;若不存在则不会报错

s.pop()

随机删除集合中的某个数据,并返回这个数据。

s.clear()

清除s中所有数据项

五、单词释义

        update  /ˌʌpˈdeɪt/ 更新

        discard /dɪˈskɑːd/ 丢弃

第六节 字典

一、概述

        “键值对”是组织数据的一种重要方式,广泛应用在当代大型信息系统中,如Web系统。键值对的基本思想是将“值”信息关联一个“键”信息,进而通过键信息查找对应的值信息,这个过程叫映射。Python语言中通过字典类型实现映射。

        键和值通过英文冒号连接,不同键值对通过英文逗号隔开。从 Python 设计角度考虑,由于大括号{}可以表示集合,所以,字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。可以简单地把字典看成元素是键值对的集合。注意,尽管都使用大括号,但集合与字典是不同的类型。

        映射类型是“键-值”数据项的组合,每个元素是一个键值对,表示为( key , value ) ,元素之间是无序的。键值对(key , value)是一种二元关系,源于属性和值的映射关系。键( key)表示一个属性,也可以理解为一个类别或项目,值( value)是属性的内容,键值对刻画了一个属性和它的值。键值对将映射关系结构化,用于存储和表达。

        映射类型是序列类型的一种扩展。在序列类型中,采用从0开始的正向递增序号进行具体元素值的索引。而映射类型则由用户来定义序号,即键,用其去索引具体的值。键值对的概念在计算机系统中十分常见,也是表达和存储数据的常见方式。

二、字典的基本操作

1.空列表的创建

        方法1:dict1={}

        方法2:dict1=dict()

2.修改指定key的数据

        语法:

                字典名[key]=值

3.字典增加数据

        字典名[key]=值

        注意:若key值存在,则修改数据;若key不存在,则添加数据。

4.查找指定指定key的数据

        print(字典名[key]=值)

三、字典的操作方法

方法

描述描述

d.keys()

返回所有的键信息,返回结果为一个可遍历对象,数据类型为Python的内部数据类型dict_keys。

d.values()

返回所有的值信息,返回结果为一个可遍历对象,数据类型为Python的内部数据类型dict_values。

d.items()

返回所有的键值对,返回结果为一个可遍历对象,数据类型为Python的内部数据类型dict_items。

d.get(key,default)

键存在则返回相应值,否则返回None

d.pop(key,default)

键存在则返回相应值,同时删除键值对,否则会报错

d.popitem()

随机从字典中取出一个键值对,以元组( key,value)形式返回,同时将该键值对从字典中删除

d.clear()

删除所有的键值对,清空字典

第七节 组合数据类型转换和遍历、拆包

函数

描述

tuple(x)

将某个序列x转换成元组

list(x)

将某个序列x转换成列表

set(x)

将某个序列x转换成集合

        遍历:依次访问可遍历对象中的各个数据。

拆包:

1.元组拆包

tuple1=(1,2,3)

a,b,c=tuple1

print(a) # 1

print(b) # 2

print(c) # 3

2.字典拆包包

dict1={'姓名': '白良贺', '年龄': 38, '性别': '男'}

u,v,w=dict1

print(u) # 白良贺

print(v) # 38

print(w) # 男

第八节 推导式

一、列表推导式总结

        1.语法:

                [表达式 for 迭代变量 in 可迭代对象 if 条件表达式]

                表达式类型:i,i*6,i+8,[i**2,i+7]

                可迭代对象:range(6),dict1.values,列表、元组、集合

                临时变量:可以任何符合命名规则的变量名字

        2.带if的表达式

        3.多for表达式

二、集合推导式

        同列表推导式

三、字典推导式

        语法:

                变量={key:value for key,value in 序列}

        示例1:

                dict1={i:i^2 for in range(1,5)}

        示例2,将两个列表合为一个字典:

                list1=["name","age","gender"]

                list2=["Tom",20,"male"]

                dict2={list1[i]:list2[i] for i in range(len(list1))}

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值