美文网首页
基本数据类型 Basic data types

基本数据类型 Basic data types

作者: Lijy_李俊阳 | 来源:发表于2019-03-12 00:25 被阅读0次

    基本数据类型

    1.数字 int

    python3所有整形都是,int
    python2整形有,int、long两种(int有长度限制)
    功能:
    —int 将字符串转换成数字

    #将字符串转换成数字
    b='123'
    print(type(b),b)
    a=int(b)
    print(type(a),a)
    #以16进制的方式转换b为10进制
    num1='b'
    v=int(num1,base=16)
    print(v)
    #以2进制的方式转换b为10进制
    num ='011'
    v1=int(num, base=2)
    print(v1)
    

    —bit_length()

    #当前数字的二进制至少用N位表示
    r=99
    V2=r.bit_length()
    print(V2)
    
    

    2.字符串 str

    ***必会:join ,split,find,strip,upper,lower,replace;
    len(),for循环,索引,切片,range
    ***字符串一旦创建,不可修改
    ***一旦修改或者拼接,都会造成重新生成字符串

    join ,split,find,strip,upper,lower
    #索引,下标,获取字符串中的某一个字符
    test=‘alex’
    v=test[0]
    print (v)
    #切片
    test=‘alex’
    v=test[0:2]#>=0,<2
    print(v)
    #for循环
    #for 变量名 in 字符串:
         # print(变量名)
    for des in test:
        print(des)
    #获取字符串中有几个字符组成
    v= len(test)
    print(v)
    
    #首字母大写
    string='alex'
    s=string.capitalize()
    print(s)
    #所有字母小写,很多的未知的字母变小写
    s1=s.casefold()
    print(s1)
    #所有字母小写,对英文字母
    s2=s.lower()
    print(s2)
    #设置宽度将‘Alex’居中
    #20代表总长度
    #* ,空白 代表未知填充
    #填充只能写一个字符不能写‘99’或者‘**’
    wide=s.center(20)
    print(wide)
    wide=s.center(20,'*')
    print(wide)
    ##设置宽度将‘Alex’居左
    #20代表总长度
    #* ,空白 代表未知填充
    #填充只能写一个字符不能写‘99’或者‘**’
    test='Alex'
    v=test.ljust(20,'*')
    print(v)
    #设置宽度将‘Alex’居右
    test='Alex'
    v=test.rjust(20,'*')
    print(v)
    #去字符串中寻找,寻找子序列出现的次数
    string='alexalexalex'
    s3=string
    count1=s3.count('ex')
    print(count1)
    #从字符下标0开始到9结束‘ale’出现的次数,下面范围(>=0,<10)
    count1=s3.count('ale',0,10)
    print(count1)
    #以什么结尾,
    # 从字符下标0开始到9结束,以al开始,下面范围(>=0,<10)
    v2=s3.endswith('ex')
    print(v2)
    v3=s3.startswith('al',0,10)
    print(v3)
    #从开始往后找找到第一个‘ex’获取其下标
    v2=s3.find('ex')
    print(v2)
    #从下标5开始往后找找到下标6结束,的第一个‘ex’获取其下标,下面范围(>=5,<7)
    #找不到打印-1
    v2=s3.find('ex',5,7)
    print(v2)
    #格式化,将一个字符串中的站位符替换成指定的值
    test ='i am {name} age {a}'
    print(test)
    f =test.format(name='lijunyang',a=18)
    print(f)
    #第二种写法,用0,1,2,3,数字站位,替换时候不用指定位置,直接按照顺序取值
    test ='i am {0} age {1}'
    print(test)
    f =test.format('lijunyang',18)
    print(f)
    #格式化,format_map,传入的值{'name':'lijunyang','a':19}
    test ='i am {name} age {a}'
    print(test)
    f =test.format_map({'name':'lijunyang','a':19})#字典
    print(f)
    #index ,查找下标跟find一样,find找不到报-1,index找不到直接报错
    #test ='alexalex'
    #test.index('8')
    
    #判断字符串里是否为全为数字哥字母
    test='123abc'
    t=test.isalnum()
    print(t)
    #expandtabs,断句,以长度=20为一组断句,没有\t就一直到20哥为一组,遇到\t就中断把不足二十的补到20
    test ='username\temail\tpassword\nlijunyang\tlijunyang@163.com\t123\nlijunyang\tlijunyang@163.com\t123\nlijunyang\tlijunyang@163.com\t123\n'
    v=test.expandtabs(20)
    print(v,len(v))
    #判断字符串是否是字母,汉字
    test ='aq1234'
    v1=test.isalpha()
    print(v1)
    #判断字符串是否是数字字符串,isdecimal判断是否为十进制数字,digit判断是否为数字包含特殊数字如②,snumeric判断是否为数字支持中文如二、贰中文不支持
    test ='一'
    v1=test.isdecimal()
    v2=test.isdigit()
    v3=test.isnumeric()
    print(v1,v2,v3)
    #判断字符串是有效的python标识符,是返回true(字母,数字,下划线:标识符def class),否则返回false,
    test= '_123'
    v=test.isidentifier()
    print(v)
    #isprintable,打印是是否存在不可显示的字符,如\t(制表符),\n(换行符),存在为false
    test='ajsdhajhdjk\tkhjsdka'
    v=test.isprintable()
    print(v)
    #判断字符串是否全部是空格
    test='   '
    v=test.isspace()
    print(v)
    判读字符串是否为标题(所有单词首字母大写)
    test='A string is a digit string if all characters in the string are digits and there'
    #字符串转换为标题所有单词首字母大写
    v1=test.title()
    print(v1)
    v2=test.istitle()
    v3=v1.istitle()
    print(v2,v3)
    #将字符串中的每一个元素按照指定分隔符进行拼接
    test='我是大帅锅'
    print(test)
    t='|'
    v=t.join(test)
    v1="*".join(v)
    print(v,v1)
    #字符串全部转变小写
    test='Alex'
    #判读是否全为小写
    v1=test.islower()
    #转换为小写
    v2=test.lower()
    print(v1,v2)
    #字符串全部转变大写
    test='Alex'
    #判读是否全为大写
    v1=test.isupper()
    #转换为大写
    v2=test.upper()
    print(v1,v2)
    #去除右边空格、左边空格、所有空格、或者\r,\t
    test=' alex '
    v1=test.rstrip()
    v2=test.lstrip()
    v3=test.strip()
    #去除指定内容
    # 优先最多匹配'9axl',一次匹配'9axl'的子字符串去除
    v4=test.strip('9axl')
    #
    v='qwyewuqehdjashdwqueqiwu'
    #前后字符串对应映射相等
    m=str.maketrans('wertq','12346')
    #替换掉v字符串的原始值为映射后的值
    new_v=v.translate(m)
    #按照以'st'为节点分割字符串从左往右或者从右向左,分割后的字符串是有分隔符的。并且取到以第一个分隔符就停止匹配
    #分割完只有三个字符串
    test='testtesttesttesttest'
    v1=test.partition('st')
    v2=test.rpartition('st')
    print(v1,v2)
    #按照以's'为节点,分割字符串从左往右或者从右向左,分割后的字符串是无分隔符的,无线分割到分完为止
    v3=test.split('s')
    v4=test.rsplit('s')
    print(v3,v4)
    #按照以's'为节点,分割字符串从左往右或者从右向左,分割后的字符串是无分隔符的,可指定分割次数
    v3=test.split('s',2)
    v4=test.rsplit('s',2)
    print(v3,v4)
    #根据换行分割,splitlines()括弧加参数Ture分割后留下\n,加Fales分割后不留\n,不填默认false
    test='qtwqywqyw\nqwqwqwqwn\nqwqwqwqw\n'
    v=test.splitlines()
    #判断以XXX开头,XXX结尾
    test='backname  1.1.1.'
    v=test.startswith('ba')
    v2=test.endswith('1.')
    print(v,v2)
    #大小写转换,大写全部转为小写,小写全部转为大写
    test='alaQWE'
    v=test.swapcase()
    print(v)
    #替换,把前两个“ex”替换为“bbb”
    test='alexalexalex'
    v=test.replace('ex','bbb',2)
    print(v)
    
    #帮助创建连续的数字,通过设置步长来制定不连续
    v=range(0,100)
    #输入一个字符串,分行打印并打印下标
    
    #输入一个字符串赋值给test
    test=input('<<<<<')
    #循环0,到输入字符串长度连续数字
    for des in range(0,len(test)):
        #打印字符串下标,打印字符串对应下标的字母
        print(des ,test[des])
    
    
    #输入字符串赋值给test
    test=input('<<<<<')
    #打印test
    print(test)
    #取到test字符串长度
    l=len(test)
    #创建从0到字符串长度,连续的数字
    v=range(0,l)
    #循环连续数字集v
    for des in v:
       # 打印V,和下标为v的字母
        print(des,test[des])
    
    

    3.列表 list

    类:
    1.中括弧括起来
    2.以,分割每个元素
    3.列表中的元素可以是:数字,字符串,列表,布尔值,字典,元祖等所有都可以放
    4.“集合”,内部放置任何东西
    5.索引取值
    6.切片取值
    7.支持for循环

    1. in 操作
      9.字符串转换为列表,列表转换为字符串
    #字符串转换为列表
    a='wqwqwqsasqwqwqw'
    lit=list(a)
    print(lit)
    # 列表转换为字符串,需要自己写for循环一个一个处理,既有数字又有字符串
    tr = [1, 2, 3, 4, 'qwe', 23, '2222', True]
    al = ''
    for TR in tr:
        str(TR)
        al = al + str(TR)
        print(al)
    #列表如果元素都是字符串可以用join拼接
    ts=['qwwqwqw','12121','qwqwqw']
    TS=''.join(ts)
    print(TS)
    
    
    # 列表list
    
    li = [1, 2, 3, 14, 'age', ['age', 11, [1, 'lili']], True]
    #循环
    for des in li:
        print(des)
    # 取值
    # 下标
    l = li[3]
    print(l)
    # 取li列表的'lili'(一层一层按照索引取值)
    l = li[5][2][1]
    print(l)
    # 切片取值
    l = li[0:5]
    print(l)
    # 修改
    li[2] = 300
    print(li)
    li[0:2] = [100, 200]
    print(li)
    #删除,第一种方式
    del li[1]
    print(li)
    #以切片方式删除
    del li[1,5]
    print(li)
    #     in
    lq = [1, 2, 3, 14, 'age', ['age', 11, [1, 'lili']], True]
    v = 3 in lq
    print(v)
    
    list提供的方法
    • 1.追加 append()
    • 2.清除 clear()
    • 3.拷贝 copy()
    • 4.统计 count()
    • 5.扩展原列表 extend()
    • 6.根据值获取当前值所在索引位置 (左边优先) index()
    • 7.删除列表中的某个值(1.未指定索引默认最后一个2.指定索引),并获取删除的值pop()
    • 8.删除列表中的指定值,左边优先remove()
      PS:删除有remove、pop、del li [0]、del li[7:9] 、clear
    • 9.反转 reverse()
    • 10.排序sort()
    • 11.插值insert()
    # 原来值后面追加,追加的内容可为数字、字符串、列表
    tq = [1, 2, 3, 4]
    tq.append(5)
    print(tq)
    tq.append([123112, 121212])
    print(tq)
    tq.append('zhuijia')
    print(tq)
    #清除
    tq.clear()
    print(tq)
    #拷贝,浅拷贝
    v=tq.copy()
    print(v)
    #计数,统计列表某个元素的出现个数
    s=tq.count(2)
    print(s)
    #扩展原列表;参数为可迭代对象(可for循环对象)
    tq.extend(['dsddsd','fdgddfd'])
    print(tq)
    tq.extend('大水哥')
    print(tq)
    #根据值获取当前值所在索引位置 (左边优先)
    p=[1,2,3,4,5,2,6]
    v=p.index(2)
    print(v)
    #删除列表中的某个值(1.未指定索引默认最后一个2.指定索引),并获取删除的值
    #不知道索引
    v=p.pop()
    print(v)
    print(p)
    #指定索引
    v=p.pop(2)
    print(v)
    print(p)
    #删除列表中的指定值,有重复的值左边优先只删一个
    p.remove(2)
    print(p)
    #将当前列表进行反转
    p.reverse()
    print(p)
    #排序
    q=[1,3,6,2,4,5]
    q.sort()#升序
    print(q)
    q.sort(reverse=True)#降序
    print(q)
    #插值
    a=[12,22,33,44,55]
    a.insert(0,99)
    print(a)
    

    PS
    字符串一旦创建不可修改,
    列表是有序的,元素是可以被修改,

    4.元祖tuple

    • 对列表的二次加工,元素不可被修改,不能增加或者修改删除
    • tu= (111,'asasa',(1,2),[(22,44)],True33,)
    • 元祖里面可以放,字符串,数字,列表,元祖,布尔值
      PS一般写元祖时候在最后加一个逗号
      元祖可被取值
    • 1,索引
    • 2,切片
    • 3,可以被for循环,可迭代对象
    • 4,字符串,列表,元祖可相互转换
    • 5.tu= (111,'asasa',(1,2),[(22,44)],True33,)
      元祖的第一级元素不能修改增加删除,当元祖内嵌套的的列表的元素(二级元素),可被修改删除
    tuple提供的方法
    • 1统计 count()
    • 2根据值获取当前值所在索引位置 (左边优先)index()

    5.字典dict

    • {key:value,key:value}
    • 布尔值、列表、字典不能做完字典的key,
      -value 可以为数字、列表、元祖、字典、字符串
    • 字典无序
    • 字典支持删除
    • 不支持while循环,支持for循环,可迭代对象
    #for循环默认循环所有的key
    info = {'k1': 'string1', 'k2': 'string2', 'k3': 'string3', 'k4': 'string4'}
    #默认循环key
    for item in info:
        print(item)
    #或者另一种写法
    for item in info.keys():
        print(item)
    #循环values
    for item in info.values():
        print(item)
    #key ,values 一起循环
    for item in info:
       print(item ,info[item])
    #另一种简单写法
    for k,v in info.items():
        print(k,v)
    

    字典的方法

    • 1.清除 clear()
    • 2.拷贝 copy()
    • 3.根据序列,创建字典,并指定统一的值
    #第一个值是key,第二值为values,如果没有第二个值,values默认为None,
    v= dict.fromkeys(['k1','k2','k3'])
    print(v)
    #
    s=dict.fromkeys(['k1','k2','k3'],99)
    print(s)
    
    • 4get,根据Key获取值,key不存在时,可以指定默认值(None)
    #根据key取values,key不存在时候value默认111 
    info ={'k1':99,'k2':100}
    t = info.get('k3',111)
    print(t)
    
    • 4pop移除字典的值并获取这个值,如果删除的key不存在就获取后面跟的默认值
    info ={'k1':99,'k2':100}
    s = info.pop('k1',111)
    print(s,info)
    
    • 5.setdefault,设置值,如果key已存在值,不设置获取当前key对应的值,不存在插入一个新的键值对
    info ={'k1':99,'k2':100}
    r= info.setdefault('k3','aaa')
    print(r)
    print(info)
    
    • 6.update,更新(有的key,替换新的value,没有的key新插入一条)
    #写法1
    info ={'k1':99,'k2':100}
    info.update({'k1': 999, 'k2': 1100,'k3':222})
    print(info)
    #写法1
    info.update(k1=1222,k3=2222,k2=4444)
    print(info)
    

    常用:get、update、values()、keys()、items()

    6.布尔值bool

    1.进行转换为布尔值
    bool(...)
    内存村委0和1
    2.None,“”(空字符串){}(空字典),[](空列表),()(空元祖), 0 ==>False

    7.总结常用方法

    • 一 数字

    int(...)

    • 二 字符串

    replace/find/join/strip/startswith/split/upper/lower/format

    tempalte='i am {name},age:{age}'
    v=tempalte.format(name='alex',age=12)
    #或者
    v=tempalte.format({'name':'alex','age':19})
    print(v)
    
    • 列表

    append/extend/insert
    索引、切片、循环

    • 元祖

    索引、切片、循环 一级元素不能被修改

    • 字典

    get /update/keys/values/items
    for循环,索引 in

    #判断一个值是否在字典里默认循环key
    dic ={'k1':'v1'}
    v= 'k1'in dic
    print(v)
    #循环value用c.values()
    v= 'k1'in dic.values()
    print(v)
    

    相关文章

      网友评论

          本文标题:基本数据类型 Basic data types

          本文链接:https://www.haomeiwen.com/subject/phoipqtx.html