目录
- 数字(Number)
 - 总结
 
- 字符串(String)
 - 字符串运算符
 - 字符串格式化
 - 字符串的截取
 - 总结
 
- List(列表)
 - 更新列表
 - 删除列表元素
 - 列表函数&方法
 - 总结
 
- Tuple(元组)
 - 修改元组
 - 删除元组
 - 总结
 
- Set(集合)
 - Dictionary(字典)
 - 修改字典
 - 删除字典元素
 - 内置函数&方法
 - 总结
 
P y t h o n 3 中常见的数据类型 { N u m b e r (数字) { 整数 布尔型 浮点数 复数 S t r i n g (字符串) b o o l (布尔类型) L i s t (列表) T u p l e (元组) S e t (集合) D i c t i o n a r y (字典) Python3 中常见的数据类型\begin{cases} Number(数字) \begin{cases} 整数 \\ 布尔型 \\ 浮点数 \\ 复数 \\ \end{cases}\\ String(字符串) \\ bool(布尔类型) \\ List(列表)\\ Tuple(元组) \\ Set(集合) \\ Dictionary(字典) \\ \end{cases} Python3中常见的数据类型⎩ ⎨ ⎧Number(数字)⎩ ⎨ ⎧整数布尔型浮点数复数String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dictionary(字典)
数字(Number)
python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
 - bool (布尔), 如 True。
布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值 - float (浮点数), 如 1.23、3E-2
 - complex (复数), 如 1 + 2j、 1.1 + 2.2j
复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型 
- 内置的 type() 函数可以用来查询变量所指的对象类型
 
- 此外还可以用 isinstance 来判断
 
- isinstance 和 type 的区别在于:
 
1.type()不会认为子类是一种父类类型。
2.isinstance()会认为子类是一种父类类型。
!注意:
 1.Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
 2.在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
 
总结
- Python可以同时为多个变量赋值,如a, b = 1, 2。
 - 一个变量可以通过赋值指向不同类型的对象。
 - 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
 - 在混合计算时,Python会把整型转换成为浮点数。
 
字符串(String)
- Python 中单引号 ’ 和双引号 " 使用完全相同。
 - 按字面意义级联字符串,如 "this " "is " “string” 会被自动转换为 this is string。
 - Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
 
字符串运算符

字符串格式化

- 在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法
 
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
// 输出结果:我叫 小明 今年 10 岁!
辅助指令:
 
字符串的截取
-  
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。



 -  
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
 -  
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
 
| P | y | t | o | n | |
|---|---|---|---|---|---|
| 索引值从前往后数 | 0 | 1 | 2 | 3 | 4 | 
| 索引值从后往前数 | -5 | -4 | -3 | -2 | -1 | 
| 从前往后截取 | :1 | :2 | :3 | :4 | :5 | 
| 从后往前截取 | -5: | -4: | -3: | -2: | -1: | 
str = 'Python'
print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:4])     # 输出从第三个开始到第四个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串
 

 Python 使用反斜杠 \ 转义特殊字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
 
 另外,反斜杠()可以作为续行符,表示下一行是上一行的延续。也可以使用 “”“…”“” 或者 ‘’‘…’‘’ 跨越多行。
//例如:
total = item_one + \
        item_two + \
        item_three
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
 
!注意:与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如 word[0] = ‘m’ 会导致错误。
总结
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
 - 字符串可以用+运算符连接在一起,用*运算符重复。
 - Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
 - Python中的字符串不能改变。
 
List(列表)
- Python列表是一种有序、可变、允许重复元素的数据结构。它是Python中最常用的数据类型之一,也被称为数组。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
 - 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
 - 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
 
列表截取的语法格式如下:变量[头下标:尾下标]
 (索引值以 0 为开始值,-1 为从末尾的开始位置。)
 
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']
print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表
 

 Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:
 
def reverseWords(input):
     
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")
 
    # 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1]
 
    # 重新组合字符串
    output = ' '.join(inputWords)
     
    return output
 
if __name__ == "__main__":
    input = 'I like runoob'
    rw = reverseWords(input)
    print(rw)
//输出结果为:runoob like I
 
更新列表
!注意:与Python字符串不一样的是,列表中的元素是可以改变的
 
 可以对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)
//输出结果-> 更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']
 
删除列表元素
使用 del 语句来删除列表的的元素
list = ['Google', 'Runoob', 1997, 2000]
del list[2]
print ("删除第三个元素 : ", list)
//输出结果-> 删除第三个元素 :  ['Google', 'Runoob', 2000]
 
列表函数&方法
Python包含以下函数:
 
 Python包含以下方法:
 
总结
- List写在方括号之间,元素用逗号隔开。
 - 和字符串一样,list可以被索引和切片。
 - List可以使用+操作符进行拼接。
 - List中的元素是可以改变的。
 
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
 
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')
print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组
 

 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号(不加逗号,类型为整型)
 
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
// 输出结果:(12, 34.56, 'abc', 'xyz')
 
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
del tup
 
总结
- 与字符串一样,元组的元素不能修改。
 - 元组也可以被索引和切片,方法一样。
 - 注意构造包含 0 或 1 个元素的元组的特殊语法规则。
 - 元组也可以使用+操作符进行拼接。
 
Set(集合)
- Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
 - 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
 - 在 Python 中,集合使用大括号 {} 表示,元素之间用逗号分隔。
 - 另外,也可以使用 set() 函数创建集合。
 
!注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
 创建格式:parame = {value01,value02,...}或者set(value)
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu','Facebook'}
print(sites)   # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素
 

Dictionary(字典)
- 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

 - 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
d = {key1 : value1, key2 : value2, key3 : value3 } - 键(key)必须使用不可变类型。
 - 在同一个字典中,键(key)必须是唯一的。
 
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值
 

 构造键值对序列的三种方法:
 
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息
 
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
'''
输出结果:
tinydict['Age']:  8
tinydict['School']:  菜鸟教程
'''
 
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
 
内置函数&方法
Python字典包含了以下内置函数:
 
 Python字典包含了以下内置方法:
 
总结
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
 - 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。
 
| 字符串 | 列表 | 元组 | 集合 | 字典 | |
|---|---|---|---|---|---|
| 表示方式 | 用单引号 ’ 或双引号 " 括起来 | 写在方括号 [ ] 之间、元素之间用逗号分隔开 | 写在小括号 ( ) 里,元素之间用逗号隔开 | 使用大括号 { } 表示,元素之间用逗号分隔 | 字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合 | 
| 是否可变数据 | × | √ | × | √ | × | 
| 注意点 | 单引号 ’ 和双引号 " 使用完全相同 | 构造0个或1个元素的元组的特殊方法 | 空集合必须用 set() 而不是 { } | 创建一个空字典为dict = {} | 





















