• python 3


    字符串str操作方法

    #capitalize,swapcase,title
    print(name.capitalize()) #首字母大写
    print(name.swapcase()) #大小写翻转
    print(name.upper()) #全大写
    print(name.lower()) #全小写
    msg='egon say hi'   
    print(msg.title()) #每个单词的首字母大写,中间有空格或特殊字符隔开都能识别不同单词。
    #如不区分大小写:
    s = 'acSR'
    you_input = input('请输入验证码,不区分大小写:')
    if s.upper() == you_input.upper():     #或同小写均可
        print('输入成功')
    else:
        print('请重新输入')
    
    
    # 内同居中,字符串总长度,空白处填充
    s=' nujkdm '
    s1= s.center(20,"*")  
    print(s1)
    
    #数字符串中的元素出现的个数。
    # s2 = s.count("a",0,4) # 可切片
    # print(s2)
    
    s='alse你好'
    I=lens(s)    #公共方法
    print(I)      #6
    
    s = "hqw	"
    #	前面的补全
    # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
    s3 = s.expandtabs()
    print(s3)
    
    s = "dkfjdkfasf54"
    #startswith 判断是否以...开头
    #endswith 判断是否以...结尾
    s4 = s.endswith('jdk',3,6)  #区间范围, 顾头不顾尾,左包右不包。 索引为0-10等等,0,1,2...
     print(s4)  # 返回的是布尔值
    s5 = s.startswith("kfj",1,4)
     print(s5)
    
    #寻找字符串中的元素是否存在,即找元素的索引
     s6 =s.find("fjdk",1,6)
    print(s6)  # 返回的找到的元素的索引,如果找不到返回-1
    
     s61 = s.index("fjdk",4,6)    #index同find
    print(s61) # 返回的找到的元素的索引,找不到报错。
    
    
    #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。一分为二
    s = 'title,Tilte,atre,'.split('t')
    print(s)              #['', 'i', 'le,Til', 'e,a', 're,']
    s1 = 'title,Tilte,atre,'.rsplit('t',1)
    print(s1)            #['title,Tilte,a', 're,']
    
    
    #format的三种玩法 格式化输出(对比%s,%d)
    res='{} {} {}'.format('egon',18,'male')
    res='{1} {0} {1}'.format('egon',18,'male')
    res='{name} {age}{sex}'.format(sex='male',name='egon',age=18)
    
    #strip字符串删除前后空格,可用于用户输入,lstrip从左删,右不动。
    name='*egon**'
    print(name.strip('*'))    #egon
    print(name.lstrip('*'))     #egon**
    print(name.rstrip('*'))     #*egon
    
    #count数元素个数
    s='gvhbjn bhj'
    s1=s.count('h')
    print(s1)          #2
    
    #replace
    name='alex say :i have one tesla,my name is alex'
    print(name.replace('alex','SB',1))     #(老,新,第几个)
    
    #####is系列
    name='jinlin123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成
    print(name.isdigit()) #字符串只由数字组成
    View Code1

    字符串的索引和切片

    索引即下标,就是字符串组成的元素从第一个开始,初始索引为 以此类推。

    a = 'ABCDEFGHIJK'
    print(a[0])   #A
    print(a[3])   #D

    切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

    a = 'ABCDEFGHIJK'
    print(a[0:3])      #ABC(取不到3)
    print(a[2:5])      #CDE
    print(a[0:])同print(a[:]) #默认到最后 #ABCDEFGHIJK
    print(a[0:-1]) #-1就是最后一个 #ABCDEFGHIJ
    print(a[0:5:2]) #加步长      #ACE
    print(a[5:0:-2]) #反向加步长 #FDB
    print(a[3:0:-1]) #DCB
    print(a[3::-1]) #DCBA
    print(a[-1::-1]) #KJIHGFEDCBA

    左闭右开,注意反向的也是。凡是到这取都是负的。

    for循环

    for循环为有限循环,while为无限循环

    s='sdf‘' for i in s: #有引号为字符串,无引号为变量。固定用法for..in..
    print(i)        #s d f(三行)

    s='sdc苍井空fsdf'

    if '苍井空' in s:

      print('您的评论有敏感词')

    ps:#数据类型转换

    int——>str

    i=123

    s=str(i) #或者直接加引号str——>int

    i='123'

    s=int(s) #只可以数字,否则会报错

    int——>bool

    i=2

    s=bool(i) #只要是0就是False,非零就是True

    bool——>int        #True——>1,False——>0

    #while 1: 比while True:效率高。

    str——>bool

    s='' ——>False

    s='0' ——>True #非空字符都是True

    列表list

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

    li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

    列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,而且列表是有序的,有索引值,可切片,方便取值。

    增:三种方法——append增加到最后;insert按索引增加插入;extend迭代地增加

    li=['bree',123,True,('haer','gogo')]
    li.append('may')
    print (li)           #['bree', 123, True, ('haer', 'gogo'), 'may']
    li.insert(1,"cat")  #cat要加引号,不然会报错,也可以其他数据类型
    print(li)            #['bree', 'cat', 123, True, ('haer', 'gogo'), 'may']
    li.extend(["a,b,c"]) #可以是一个列表,列表则不会拆开
    print(li)             #['bree', 'cat', 123, True, ('haer', 'gogo'), 'may', 'a,b,c']
    li.extend(["a,b,c","122"])
    print(li)      #['bree', 'cat', 123, True, ('haer', 'gogo'), 'may', 'a,b,c', 'a,b,c', '122']
    li.extend("a,b")
    print(li) #['bree', 'cat', 123, True, ('haer', 'gogo'), 'may', 'a,b,c', 'a,b,c', '122', 'a', ',', 'b']
    li.extend("aa")
    print(li)#['bree', 'cat', 123, True, ('haer', 'gogo'), 'may', 'a,b,c', 'a,b,c', '122', 'a', ',', 'b', 'a', 'a']

     删:

    li=['bree',123,True,('haer','gogo')]
    l1 = li.pop(1) #按照位置去删除,有返回值
    print(l1)     #123
    
    del li[1:3] #按照位置去删除,也可切片删除没有返回值。
        print(li)  #['bree', ('haer', 'gogo')]
    
    li.remove(123) #按照元素去删除,比如123为int,不能加引号
        print(li)  #['bree', True, ('haer', 'gogo')]
    
    li.clear() #清空列表

     改:

    li = [1,'a','b',2,3,'a']
    li[1] = 'go'
    print(li)  #[1,'go','b',2,3,'a']
    li[1:3] = ['go']
    print(li)  #[1,'g','o',2,3,'a']
    li[1:3] = ['gogo'] #嵌套改,先删了原对应位置的,然后又多少补多少
    print(li) #【1,'g','o','g','o',2,3,'a']

     查:

    li=['bree',123,True,('haer','gogo')]
    for i in  li:
        print(i)  #查了每一个元素  #bree,123,True,('haer', 'gogo')
    print(li[0:2])  #切片查,查出的是一个列表  #['bree', 123]  切片顾头不顾尾

    公共方法:

    li=['bree',123,True,('haer','gogo')]
    l=len(li)
    print(l)    #4  ,计算列表长度
    num=li.count("bree")
    print(num)    #1  ,计算元素出现的个数
    #索引,列表中只有index,字符串有index和find
    print(li.index('bree'))  #0
    #排序
    li=[1,5,2,6,4]
    li.sort()   #正向排序
    print(li)  #[1, 2, 4, 5, 6]
    li.sort(reverse=True)  #反向排序
    print(li)   #[6, 5, 4, 2, 1]
    li=[1,5,2,6,4]
    li.reverse()  #列表反转(无序)
    print(li)  #[4, 6, 2, 5, 1]

     列表的嵌套

    #要对某个元素操作,先索引,在赋值
    li=['sdf','你好','ab',[123,'qwe']]
    print(li[1][1])   #
    li[0]=li[0].capitalize()
    print(li[0])      #Sdf
    #替换
    li[2]='abc'
    print(li)     #['Sdf', '你好', 'abc', [123, 'qwe']]
    li[2].replace('b','bc')
    print(li)     #['Sdf', '你好', 'abc', [123, 'qwe']]
    li[0]=li[0].upper()
    print(li)      #['SDF', '你好', 'abc', [123, 'qwe']]

    元祖tuple:只读列表,可循环查询,可切片。#儿子不能改,孙子可能可以改

    所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

     

    #要对某个元素操作,先索引,在赋值
    tu=['sdf','你好','ab',[123,'qwe']]
    print(tu[2])  #ab
    print(tu[0:3])  #['sdf', '你好', 'ab']
    for i in tu:
        print(i)   
    #sdf
    你好
    ab
    [123, 'qwe']

    join(列表转换成字符串的形式)list——>str

    s='bree'
    s1='_'.join(s)
    print(s1)     #b_r_e_e
    li=['sdf','你好','ab']
    s=''.join(li)
    print(s)    #sdf你好ab(无缝对接)

    str——>list     split

    range(数字按顺序排列)

    for i in range(1:4) 

    print(i)      #1,2,3(竖着写)

    for i in range(10) (从0到9,顾头不顾腚)

    for in range(0,10,2)(3为步长)

    print(i)

    for in range(10,0,-1)(到着写)#不可以(0,10,-1)

    print(i)

    li=[1,2,3,'bree',[1,2,3,'gogo'],'kris']#循环打印这个列表

    不可变数据类型:元祖,bool, int,str    可哈希

    可变数据类型:list,dict,set        不可哈希

    字典dict

    Python中唯一一个映射采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。不可变数据类型。

    value:任意数据类型

    dict优点:二分查找去查询

    存储大量的关系型数据

    特点:无序的,无索引(Python3.6及以上是有序的)

    dic1={'age': 18, 'name': 'jin', 'sex': 'male',}
    #
    dic1['high']=185  #没有键值对,添加
    print(dic1)
    dic1['age']=16  #如果有键,则值覆盖
    print(dic1)
    dic1.setdefault('weight')#没写则默认值,None,不是none。
    pint(dic1)   #{'high': 185, 'weight': None, 'age': 16, 'sex': 'male', 'name': 'jin'}r
    dic1.setdefault('weight',120) 
    print(dic1)  #{'age': 16, 'sex': 'male', 'high': 185, 'weight': 120, 'name': 'jin'}
    
     #
    print(dic1.pop('age')) #有返回值,按键去删除  #18
    print (dic1.pop('bree',None))  #可设置返回值。有的话直接删,没有的话返回值。  #None
    print(dic1.popitem()) #py3.5随机删除,无意义,py3.6默认删最后一个。有返回值,以元祖的形式 #('sex', 'male')
    dic.clear()  #清空字典
    del.dic1  #删除整个字典
    
    
    #改:(覆盖也是改)
    dic={'age': 18, 'name': 'jin', 'sex': 'male',}
    dic1={'age': 16, 'name': 'bree', 'weight': 120,}
    dic1.update(dic)
    print (dic)  #{'age': 18, 'sex': 'male', 'name': 'jin'}
    print(dic1)  #{'age': 18, 'weight': 120, 'sex': 'male', 'name': 'jin'}  #将dic更新到dic1,有则覆盖改,无则添加
    
    #查:
    dic1={'age': 18, 'name': 'jin', 'sex': 'male',}
    print(dic1.keys(),type(dic1.keys())) #dict_keys(['sex', 'name', 'age']) <class 'dict_keys'>  #键
    print(dic1.values()) #dict_values(['male', 'jin', 18])  #值
    print(dic1.items())  #dict_items([('sex', 'male'), ('name', 'jin'), ('age', 18)])元祖,对应的是键值对,元祖以逗号隔开
    
    for i in dic1:
        print(i)  #name,age,sex(什么都不写,默认打印键,分三行出结果。
    a,b=1,2
    print(a,b)  #1 2
    a,b=b,a
    print(a,b)  #用一行代码交换a,b值
    
    for k,v in dic1.items():
        print(k,v)
    v1=dic1['name']
    print(v1)  #jin
    v2=dic1['name1']
    print(v2)  #无name2,报错
    print(dic1.get('name1'))  #None
    print(dic1.get('name1','没有这个键')) #没有这个键
  • 相关阅读:
    云端开发,云端部署
    Chrome下的Page Speed使用
    Linux的到来
    NoSQL 之 Morphia 操作 MongoDB
    qTip2
    在.NET下使用Task Parallel Library提高程序性能
    WCF REST系列文章汇总
    Google工具pagespeed使用教程
    从零开始系统深入学习android
    如何优化一个网站使之提高访问速度
  • 原文地址:https://www.cnblogs.com/zll-52011/p/9452579.html
Copyright © 2020-2023  润新知