• Python学习第二天之数据类型


     整型,int    所有的功能,都放在int里
    # python3里,不管数字有多大都是int类型
    # python2里,超过一定的范围的是长整型,long
    方法:
    int 将字符串转换为数字
                a = "123"
                print(type(a),a)
                b = int(a)
                print(type(b),b)
                b = b + 1000        
    

      

       base=2# 将字符串以2进制的方式解读为10进制
                 num = "0011"
                v = int(num,base=2)  # 将字符串以2进制的方式解读为10进制
                print(v)        
    

        bit_length 当前数字的二进制至少是几位。

                age = 10
                r = age.bit_length()
                print(r)
    

     

    # 字符串,str     所有的功能,都放在str里
    # s1 = "alex"
    # s2 = "root"
    # s1.title()
    # s1.startswith('xxx')

       方法:

        repitalize  首字母大写
                test = "alex"
                v = test.replace()
                print(v)
    

      lower 把字符变小写,限于英文

                test = "alex"
                v1 = test.lower()
                print(v1)
    

      casefold 把字符变小写,更全面

                test = "alex"
                v2 = test.casefold()
                print(v2)
    

      center (20,'*') 设置宽度,并将内容剧中

        20 代指长度
    * 空白位置填充(只能写一个字符)可以不写
                test = "alex"
                v = test.center(20,'*')
                print(v)
    

      ljust() 设置宽度,并将内容放在左边

                test = "alex"
                v = test.ljust(20, '*')
                print(v)
    

      rjust() 设置宽度,并将内容放在右边

                test = "alex"
                v = test.rjust(20, '*')
                print(v)
    

      

      count('e',5,10) 子序列在字符串中出现的次数

        e   计算e在字符串中出现的次数
    5 从第5个字符开始计算
    10 到第10个字符结束
                test = "alexexeddd"
                v = test.count('e',5,10)
                print(v)
    

      endswith('ex',5,10) 判断在字符串中是否是以这个子序列结尾

        5和10 开始和结束
                test = "alex"
                v = test.endswith('ex',5,10)
                print(v)
    

      startswith('a',5,10) 同endswith类似,判断在字符串中是否是以这个子序列开头

    
    
    find('ex',5,10)      从开始往后找,找到第一个后,获取其位置
    'ex'为要查找的子序列,数字为起始和结束的位置
    >取值范围>=
                test = "alexalexalex"
                v = test.find('ex')
                print(v)
    

      index() 和find()类似,区别在于index找不到,就报错

      format(name = 'alex',age {a}) 格式化,将一个字符串中的占位符替换为指定的值

                test = 'i am {name},age {a}'
                print(test)
                v = test.format(name = 'alex',a = 19)
                print(v)
    

      占位符可以用数字代替

                test = 'i am {0},age {1}'
                print(test)
                v = test.format('alex', 19)
                print(v)
    

      format_map({"name":"alex","a":19}) 格式化,传入的值{"name":"alex","a":19}

                test = 'i am {name},age {a}'
                print(test)
                v = test.format_map({"name":"alex","a":19})
                print(v)
    

      isalnum() 字符串中是否只包含字母和数字

            test = "uasf890_+"
            v = test.isalnum()
            print(v)
    

      isalpha() 字符串中是否只包含字母或汉字

                test = "adfaf中"
                v = test.isalpha()
                print(v)
    

      isdecimal() 判断输入的是否是数字

      isdigit() 比isdecimal支持的更全面

      isnumeric() 比isdigit更多的支持了中文的数字比如 二

                test = "123a"
                v1 = test.isdecimal()
                v2 = test.isdigit()
                v3 = test.isnumeric()
                print(v1,v2,v3)
    

      isidentifier() 判断一个字符串是否是由字母,数字,下划线组成且不能是以数字开头

                a = "def"
                v = a.isidentifier()
                print(v)
    

      islower() 判断字符串是否都是小写

                a = "def"
                v = a.islower()
                print(v)
    

      isprintable() 判断字符串中是否存在不可显示的字符# ...不存在是True

                test = "oauefnafj
    "
                v = test.isprintable()
                print(v)
    

      isspace() 判断字符串中是否只存在不可显示的字符,只存在是True

                test = "adf adf"
                v = test.isspace()
                print(v)
    

      istitle() 判断是否是标题,既所有首字母大写,是 True

                v1 = test.istitle()
                print(v1)
                v2 = test.title()   # 将字符串内所有单词的首字母转换为大写
                print(v2)
                v3 = v2.istitle()
                print(v3)
    

      ***join() 将字符串中的每一个元素按照指定分隔符进行拼接

                test = "你是风儿我是沙"
                print(test)
                t = ' '     # or 'adfawe'
                v = t.join(test)
                print(v)
    

      lower() 将字符串全部变为小写

                test = "ALex"
                v1 = test.islower()  # 判断是否全部是小写
                v = test.lower()
                print(v)
    
                v3 = test.isupper()  # 判断是否全部是大写
                v4 = test.upper()    # 将字符串全部变为大写
                print(v4)
    

      strip() 去掉字符串两边的空格

      lstrip() 默认去掉字符串左边的空格,和 ,如果指定内容,可以去掉指定内容,优先最多匹配

      rstrip('le') 默认去掉字符串右边的空格,和 ,如果指定内容,可以去掉指定内容,优先最多匹配

                test = "  alex   "
                v = test.strip()
                print(v)
    

      maketrans() 创建两组字符串的对应关系

      translate() 将有对应关系的两组字符串进行对应

                v = "ouewzndjdasofjwen"
                m = str.maketrans("aeiou","12345")
                new_v = v.translate(m)
                print(new_v)
    

      partition() 左到右以匹配到的第一个关键字分割成三份,保留关键字

      rpartition() 右到左以匹配到的第一个关键字分割成三份,保留关键字

                test = "eoauwjadfapwefwoij"
                v = test.partition('u')
                print(u)
    

      split() 左到右以匹配到的关键字分割成指定的份数,不保留关键字

      rsplit() 右到左以匹配到的关键字分割成指定的份数,不保留关键字

                test = "wefjwoejefjwoefj"
                v = test.split('j',2)
                print(v)
    

      splitlines(True) 只能根据换行符 分割,true和false选择是否保留换行

                test = "ajldfjaoj
    jawoejfoj
    wojfwf"
                v = test.splitlines(True)
                print(v)
    

      startswith() 判断是否以指定子序列开头

      endswith() 判断是否以指定子序列结尾

                test = "afasd12312"
                v = test.startswith('af')
                print(v)
    

      swapcase() 大小写互相转换

                test = "aLeX"
                v = test.swapcase()
                print(v)
    

      

    replace("ex","aaa",2)   子序列的替换,数字指定替换前几个
                test = "alexealexalex"
                v = test.replace("ex","aaa",2)
                print(v)
    

      

    ********** 7个基本魔法 *************
    join() 将字符串中的每一个元素按照指定分隔符进行拼接
    split() 左到右以匹配到的关键字分割成指定的份数, 不保留关键字
    find('ex',5,10) 从开始往后找,找到第一个后,获取其位置'ex'为要查找的子序列,数字为起始和结束的位置
    strip() 去掉字符串两边的空格
    upper() 将字符串全部变为大写
    lower 把字符变小写,限于英文
    replace("ex","aaa",2) 子序列的替换,数字指定替换前几个

    ** ** ** ** ** 4个灰魔法 ** ** ** ** ** ** *
    #通过索引,下标获取字符串中的某一个字符
                test = "alex"
                v = test[0]
                print(v)    # 结果是a,0是a的下标
    

      

    # 切片
                v = test[0:2]   # 范围取值<=0   <1  指定复数从后往前数
                print(v)
    

      

    # len   python3中:计算字符串中共有多少个字符。python2中计算字符串中共有多少个字节
            test = "中中在"
            v = len(test)
            print(v)
          #  >>>
            test = "妹子有种冲我来。"
            index = 0
            while index > len(test):
                v = test[index]
                print(v)
                index += 1
            print("=======")
    
            # for 循环
            for 变量名 in 字符串:
                变量名
            test = "妹子有种冲我来。"
            for mz in test:
                print(mz)
            # <<<
    

      

            test = "妹子有种冲我来。"   #for 循环也支持continue和break
            for item in test:
                continue
                print(item)
    

      

    range(0,100,5)     创建连续的数字或不连续的数字,通过设置步长:5
                v = range(0,100,5)
                for item in v:
                print(item)
    
                v = range(100,0,-1)
                for i in v:
                    print(i)
    

      

    练习:将文字对应的索引打印出来
            test = input("...")
            v = len(test)
            v2 = range(0,v)
            for item in v2:
                print(item,test[item])
            # 简写:
            test = input("...")
            for item in range(0,len(test)):
                print(item,test[item])
    

      

    灰魔法里几乎所有的方法在其他数据类型里也能用
    主要先记住上面十个魔法
    ** ** ** ** ** 1个灰魔法 ** ** ** ** ** ** *

    字符串一旦创建就不可修改
    一旦修改或则拼接,都会造成重新生成字符串
    
    

    列表是有序的,元素可以被修改
    #####################灰魔法,list类中提供的方法##########################
    对象.方法() # 对象调用方法
    append(5)   #在原值最后追加
        li = [11,22,33,44]
        li.append(5)
        li.append("alex")
        li.append([1234.1212])
        print(li)
    

      

    clear # 清空列表
        li.clear(li)
        print(li)
    

      

    copy    # 拷贝,浅拷贝
        v = li.copy()
        print(v)
    

      

    count   # 计算元素出现的次数
        li = [11,22,33,22,44]
        v = li.count(22)
        print(v)
    

      

    extend  #  扩展原来的列表,参数:可迭代对象
        li = [11, 22, 33, 22, 44]
        li.append([9898,"xxx"])
            [11, 22, 33, 22, 44, [9898, 'xxx']]
        li.extend([9898,"xxx"])
            [11, 22, 33, 22, 44, 9898, 'xxx']
        li.extend("xxx")
            [11, 22, 33, 22, 44, 'x', 'x', 'x']
        print(li)
    

      

    index(33)   # 根据值获取当前值索引位置,左边优先
        li = [11, 22, 33, 22, 44]
        v = li.index(33)
        print(v)
    

      

    insert(0,99)    #在指定索引位置插入元素,0位置插入99
        li = [11, 22, 33, 22, 44]
        li.insert(0,99)
        print(li)
    

      

    pop(1)   # 删除某个值,并获取删除的值,默认删除最后一个,或者指定索引
        li = [11, 22, 33, 22, 44]
        v = li.pop(1)
        print(li)
        print(v)
    

      

    remove(33)  #删除列表中的指定值,左边优先
        li = [11, 22, 33, 22, 44]
        li.remove(33)
        print(li)
    

      

    ps 删除的方法: pop remove del li[0] del[0:9] clear

    reverse() # 将当前列表进行反转
        li = [11, 22, 33, 22, 44]
        li.reverse()
        print(li)
    

      

    sort  # 排序
        li = [11, 22, 33, 22, 44]
        li.sort()   # 从小到大排序
        li.sort(reverse=True)   # 从大到小排序
        print(li)
    

      

    
    
    #################################深灰魔法##################################
    列表的基本格式:
    li = [["xxx","aaa"],1,12,9,"age","alex"] # 通过list类创建的对象,li
    中括号括起来
    ,号分割每个元素
    列表中的元素可以是,数字,字符串,列表,布尔值所有的都能放进去
    “集合”,内部能放置任何东西
        print(li[3])  # 索引取值
        print(li[3:5])  # 切片取值,列表
    
    

      

    for循环
    while循环

    列表元素可以被修改
        li[1] = 120
        li[2] = [11,22,33]
        li[1:3] = [120,90]  # 切片的方式修改
    

      

    删除
        del li[1]
        del li[2:6]     # 切片的方式删除
    

      

    in 操作
        v = 12 in li
        print(v)
    

      

    列表中的每一个元素都是一个整体
    查找列表内的列表
        li = [["xxx","aaa"],1,12,9,"age","alex"]
        li = [4][0][1]
    

      

    list()把字符串转换成列表,内部使用for循环 ,数字不可以
        s = "sjflajflasdhfalsdfj"
        new_li = list(s)
        print(new_li)
          #   ['s', 'j', 'f', 'l', 'a', 'j', 'f', 'l', 'a', 's', 'd', 'h', 'f', 'a', 'l', 's', 'd', 'f', 'j']
    

      

    列表转换成字符串:
    1,需要for循环逐个处理,既有数字又有字符串
        s = ''
        for i in li:
            s = s + str(i)
        print(s)
    

      

    2,只有字符串
        v = "".join(li)
        print(v)
    

      

    #列表
        li = [11,22,33,44]
    

      元祖和列表都是有序的

    
    
    # 元祖,tuple    。。。
    元素的一级元素不可被修改,不能被增加或删除
    书写格式
        tu = (11,22,33,44,"alex",)
    

      一般写元祖的时候,在最后多加个,号,为了和参数区分

    ####################灰魔法:方法:###########################

    count(22) # 获取指定元素在元祖中出现的次数
        count(22) # 获取指定元素在元祖中出现的次数
        tu = (11, 22, 33, 44, "alex",)
        v = tu.count(22)
        print(v)
    

      

    index(22,0,5)   # 获取某个指定值的索引,左边优先
        tu = (11, 22, 33, 44, "alex",)
        v = tu.index(22,0,5)
        print(v)
    

      

    ####################深灰魔法#################################
    索引取值
        v = tu[0]
        print(v)
    

      

    切片
        v = tu[0:2]
        print(v)
    

      

    可以被for循环,可迭代对象
        for item in tu:
            print(item)
    

      

    转换
        s = 'jajdfljaldjfljaf'
        v = tuple(s)
        print(v)
        li = [11,22,33]
        v2 = tuple(li)
        print(v2)
        tu = (123,"ajfo",)
        li = list(tu)
        print(li)
    

      

    只有字符串的时候,可以动过join连接
        tu = ("werwr","jsjdlfa",)
        v = _".join(tu)
        print(v)
    

      

    获取
        tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
        v = tu[3][0][0]
        print(v)    # 获取到值 33
    

      

    元祖的一级元素不可修改,不能被增加或删除
    但元祖内的列表可以修改,列表内的元祖不可以
        tu = (111, "alex", (11, 22), [(33, 44)], True, 33, 44,)
        tu[3][0] = 66
        print(tu)
    

      

    # 字典,dict     。。。

    ######################方法:#############################
    fromkeys(["k1","123","999"],123)    #根据序列,创建字典,并指定统一的值
        v = dic.fromkeys(["k1","123","999"],123)
        print(v)
    

      

    get('k1222',22222)      # 根据key获取值,可以指定key不存在时显示的内容  22222  默认值None
        dic = {"k1":'v2'}
        v = dic.get('k1222',22222)
        print(v)
    

      

    pop('k1',90)   # 删除指定的值并获取删除的值,可以指定key不存在时返回的值 90
        dic = {"k1": 'v2'}
        v = dic.pop('k1',90)
        print(dic,v)
    

      

    popitem()       #删除并获取键值对
        dic = {"k1": 'v2',"k2":'v3'}
        k,v = dic.popitem()
        print(dic,k,v)
    

      

    setdefault('k111','123')    # 设置值,已经存在则不设置,获取当前值,不存在则设置型键值对,获取新值
        dic = {"k1": 'v2', "k2": 'v3'}
        v = dic.setdefault('k111','123')
        print(dic,v)
    

      

    update({'k1':'111111','k3':123})    # 更新
        dic = {"k1": 'v2', "k2": 'v3'}
        dic.update({'k1':'111111','k3':123})
        print(dic)
    

      

        dic.update(k1=123,k3=345,k5='dsfa')
        print(dic)
    

      

    #keys()  values() items() get() update()  # 重要
    

      

    书写格式
        info = {"k1":"v1","k2":"v2"}  # "k1":"v1"   键值对,一个键一个值
    

      

    指点的value可以是任何值
        info = {
            "k1":18,
            "k2":True,
            "k3":[
                11,33,44,{
                    "kk1":'vv1',
                    "kk2":'vv2',
                    "kk3":(11,22)
                }
            ],
            "k4":(11,22,33,44)
        }
        print(info)
    

      

    字典无序
    列表不能做为字典的key
    字典不能做为字典的key
    布尔值注意不要和其他的键0或1重复
        info = {
            1:'adf',
            "k1":'adf',
            False:"123",
            [11,22]:123,    #列表不能做为字典的key
            (11,22):123,
            {'k1':'v1'}:123     # 字典不能做为字典的key
        }
    

      

    取值
    索引方式找到指定元素
        info = {
            "k1":18,
            2:True,
            "k3":[
                11,33,44,{
                    "kk1":'vv1',
                    "kk2":'vv2',
                    "kk3":(11,22)
                }
            ],
            "k4":(11,22,33,44)
        }
        v = info['k1']
        print(v)
        v = info['k3'][3]['kk3'][0]
        print(v)   # 获取  11
    

      

    删除的方法
        del
        del info["k3"][3]['kk1']
    

      

    for循环
        for item in info:
            print(item)     # 默认for循环只有key
        for item in info.keys():
            print(item)     # 显示key
        for item in info.values():
            print(item)     # 显示values
        for item in info.keys():
            print(item,info[item])  # 显示键和值
        for k,v in info.items():
            print(k,v)            # 显示键和值
    

      

    #
    # 布尔,bool 。。。
     None '' () {} []  0  布尔值判断时都是False
    
    
    

      

    # 布尔类型: true真 和 false假
    # 判断语句的和in not in 和比较的结果都是布尔值
  • 相关阅读:
    python库--pandas--Series.str--字符串处理
    前端--jstree--异步加载数据
    python库--flask--创建嵌套蓝图
    Git--生成公钥和私钥并添加gitlab访问权限
    es查询--请求body
    python生成时间序列(date_range)
    golang使用组合完成伪继承
    golang interface类型的动态绑定
    ruby环境安装草稿
    openfire
  • 原文地址:https://www.cnblogs.com/wenxingxu/p/9296163.html
Copyright © 2020-2023  润新知