python的基本数据类型

python的基本数据类型有6中:数字类型、字符串类型、列表、元组、集合、字典等。这六种数据类型又可以分为不可变类型(数字类型、字符串类型、元组)和可变类型(列表、集合、字典)

  数字类型:(Number)

包括这4中数据:int整数、bool布尔、float浮点、complex复数
运算和Java等高级语言是一样的
注:python可以同时为多个变量赋值,一个变量可以通过赋值指向不同类型的对象
a, b = 1, 2      #多变量复制,相当于a = 1, b = 2
a, b = (3, 4)   #以元组的形式复制,是和上面一样的

# 在赋值的过程中,右边不能是赋值表达式
a = (b = 3)   # 这行代码事会报错的

# 在python中,变量是没有类型的,只有值是有类型的,即变量可以指向所有的对象
a = 1
a = "string"
a = True
a = [1, 2]
a = (1, 2)
a = {"a": 1, "b": 2}

 

数值的除法包含两个运算符:/返回一个浮点数; //返回一个整数
# 这里列举与其他语言运算符不同的例子
# / 除运算在除的过程中,会保留小数
a = 10/4     #   结果是2.5

# // 整除运算在整除的过程中,不会保留小数
a = 10 // 4  # 结果是2
在混合计算中,python会把整型转换为浮点型
# 在进行运算时,python解释器会将所有值转换同一类型,在进行运算
 a = 1 + 2 + 3.8       # 结果是6.8
type()和isinstance()的区别
type()不会认为子类是一种父类类型
isinstance会认为子类是一种父类类型
class A:
    def __init__(self):
        print("A")
    
class B(A):
    def __init__(self):
        super().__init__()
        print("B")
        
if __name__ == "__main__":
    b = B()
    print(type(b) == A)     #  返回False
    print(type(b) == B)    #  返回True
    print(isinstance(b, A))   #  返回True
    print(isinstance(b, B))   #  返回True
del 变量名 删除变量
a = 1
del a
print(a)    # a is not defined
 
 
String(字符串)(不可变的类型)、List(列表)(可变的数据类型)、元组
  这三者的结构相似,操作也是很相似
  
  1、表达方式
    字符串使用引号括起来、列表使用 " [] " 括起来、元组使用 " () " 括起来

 

# 字符串形式
a = "abcdefghijklmn"

# 列表形式
a = list("a")    # a = ["a"]
a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"]

# 元组形式
a = tuple("a")     # a = ("a")
a = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n")

 

  2、变量元素值修改

# 字符串和元组是不可变的数据类型,字符串和元组不能增加、修改、删除
a = [1, 2]
a.append(3)    # [1, 2, 3]   append()只在末尾添加,可以用insert()随意添加
a.pop()     # [1, 2, 3]    pop() 不加参数默认删除最后一个元素
a[0] = 2     # [2, 2]      用索引的方式直接修改即可
a[1]           # 2      索引是从0开始的,也可以从末尾开始访问和修改,是从-1开始

a = "abcdefg"   
a[2]      # 字符串只能访问  c

a = (1, 2, 3)
a[1]      # 2

  

  3、截取方式

# 三者截取方式一毛一样的
# 以[:]这样的形式截取, 不加参数相当于复制;[start:end]截取片段是从start开始到end-1
a = "abcdef"
a[:2]    # "ab"
a[-5:-2]   # "bcd"

a = ["a", "b", "c", "d", "e", "f"]
a[:2]    # ["a", "b"]
a[-5:-2]   # ["b", "c", "d"]

a = ("a", "b", "c", "d", "e", "f")
a[:2]    # ("a", "b")
a[-5:-2]   # ("b", "c", "d")

 

对于序列类型(除了字符串类型),变量的元素值可以是任何类型的值
# 列表存储数据
a = [1, "string", (1, 2), [1, 2], {1, 2}, {"a":1,"b":2}]

# 元组存储数据
a = (1, "string", (1, 2), [1, 2], {1, 2}, {"a":1,"b":2})

# 集合存储数据(不能有重复的数据)
a = {1, "string", (1, 2), [1, 2], {1, 2}, {"a":1,"b":2}}

# 字典存储数据
a = {
        "a": 1,
        "b": "string",
        "c": (1, 2),
        "d": [1, 2],
        "e": {1, 2},
        "f":  {"a":1,"b":2},           
}    

 常用方法:

  字符串的常用方法:find()、join()、len()、count()、split()、replace()

string = "bgjsdvbgweiufg"
sub = "bg"
string.find(sub)     # 0
string.join(sub)      # bbgjsdvbgweiufgg,  将string的值插入到sub的元素之间
print(len(string))     # 14
string.count(sub)     # 2
arr = string.split("g")
print(arr)    # ['b', 'jsdvb', 'weiuf', '']   切掉g字符,剩余字符串组成一个列表
string_new = string.replace("bg", "nb")    # 第三个参数是替换的数量,默认为1
print(string_new)      # nbjsdvnbweiufg

  列表的常用方法:len()、sum()、max/min()、append()、insert()、count()、index()、pop()、remove()、del()

a = [1,2,3]
result = sum(a)   # 6    限制元素值类型单一,只限数字类型,
print(max(a))     # s    限制元素值类型单一,使用数字类型和字符串类型
a.append("asdfg")   # [1, 2, 3, 'asdfg']
a.insert(2, "gfdsa")    # [1, 2, 'gfdsa', 3, 'asdfg']
a.count(3)     # 1       列表中3的个数
a.index(2)     # 1      列表中2的索引
result = a.pop()         # asdfg   删除列表最后一个元素,并返回当前值
result1 = a.remove(1)     # 没有返回值,删除指定元素值
del a[0:2]            # 删除一个或多个值

 

集合,字典

  1、表现形式

# 字典的表现形式
a = {}
a = dict()

# 集合的表现形式
a = set()

   2、存储的数据类型:

    集合可以存储任何类型的数据,但是存储的数据只能唯一,不能存在重复的数据。

    集合添加数据:add(参数)方法是将参数作为一个整体添加进去;update(参数)方法,如果参数是字符串、列表、元组,会将里面的元素值添加进去,如果是字典,就只添加字典的键名

 a = {1,2,3,4,5,6,7,8,9,0}

# 集合是不支持索引方式
# add()和update()插入方式的区别
a.add("asdfg")        # a = {1,2,3,4,5,6,7,8,9,0, "asdfg"}
a.update("asdfg")     # a = {1,2,3,4,5,6,7,8,9,0, "a", "s", "d", "f","g"}

    集合删除数据:pop()方法不接受参数,默认删除第一个元素;remove(元素值)如果元素值存在就删除,不存在就会报错,discard(元素值)和remove()一样,但是不存在,也不会报错

# 集合删除元素值的方式
data = a.pop()    # 返回一个值   1

print(a.remove(2))     # 没有返回值, None

print(a.discard(3))      # 没有返回值,None

 

    字典的键名必须是不可变类型:数字、字符串、元组(元组的元素值也必须是不可变类型),字典的键值可以是任何数据类型

    字典添加数据可以是字典名[键名]=变量值, 访问,修改、删除也是通过字典名[键名]这样的形式

 
a = {"a":1, "b":2, "c":3, "d": 4}

a = {(1,2):2}

a = {(1, [2,2]):3}  # error

 

 

 

 

 
 
 
 
 
 
posted @ 2019-08-29 13:22  xsha_h  阅读(568)  评论(0编辑  收藏  举报