zoukankan      html  css  js  c++  java
  • 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
     
     
     
     
     
     
  • 相关阅读:
    HDFS架构原理
    Hadoop集群搭建
    解决8080端口号占用问题
    基于SSM的Maven项目(Redis和Mysql)配置文件整合
    maven 集成SSM项目配置文件模版
    初识Spring笔记
    初识Mybatis一些总结
    将对数据库的增删改查封装为方法
    10分钟安装Elasticsearch
    ThreadLocal详解
  • 原文地址:https://www.cnblogs.com/aitiknowledge/p/11427697.html
Copyright © 2011-2022 走看看