zoukankan      html  css  js  c++  java
  • 字符串

     一.字符串的定义,循环

    1.字符串取值

    字符串是可以通过下表来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值

    下标取值的格式:

            变量名[X]   X为第几个元素

            变量名[X:Y] X为从第几个元素开始,Y为从第几个元素结束

    names='zhangsan lisi xiaoming'
    print(names[1])
    print(names[0:7])

    返回结果:

    h

    zhangsa

    2.字符串循环

    python里面的for循环,每次循环的时候,循环的是循环对象里面的每一个元素

    names='zhangsan lisi xiaoming'
    for name in names:
        print(name)

    返回结果:

    z

    h

    a

    n

    g

    s

    a

    n

    l

    i

    s

    i

    x

    i

    a

    o

    m

    i

    n

    g

    其他语言通常这么写:
    names='zhangsan lisi xiaoming'
    for i in range(len(names)):
        print(names[i])

    返回结果是一样的,可是操作会有些繁琐

    其中len(names)是取变量的长度

    3.修改字符串中的值

    注意因为字符串是不可变的变量,所以是不可以进行修改它里面的值,只可以根据下标进行取值,不可以修改,除非是重新给要修改的变量进行赋值

    names='zhangsan'
    # name[0]='lisan' #字符串赋值不能这么写,会报错的
    names='lisan'
    print(names)

    返回结果:

    lisan

     一.字符串的方法
    注意:所有字符串的方法,它都不会修改原来字符串的值,都会产生一个新的字符串

    1.find()方法:查询字符串中元素对应的索引

    1)格式为:find (元素,X,Y)

    元素为需要查找的元素

    X代码的是下标,表示从哪里开始找

    Y 代码的也是下标,表示从哪里结束

    print(name.find('world'))# 查找字符串的索引,与列表中index方法差不多,只是index找不到的话会报错的
    print(name.find('he',0,1))找到的话返回第一次出现的索引,找不到返回-1
    print(name.find('el',0,5))# 可以再后面设定查找的范围,与index方法一样

    返回结果:

      6

      -1

      1

    注意:find方法和index方法的区别是,find找不到返回-1,index则会报错

    2)Rfind()从后往前找,找到之后返回下标

    st= 'mysql is db. mysql mysql mysql'
    print(st.rfind('mysql'))#

    返回结果:

           25

    2.Strip()方法默认去掉左右两边的换行符

    print('
    mysql 
    '.lstrip())  # 默认去掉左边的空格和换行
    print(' mysql '.rstrip())  # 默认去掉右边的空格和换行
    print(' mysql '.strip())  # 默认去掉两边边的空格和换行
    print('mysqlm     '.strip('m'))#当你传入某个字符串的话,它就只会去掉你指定的字符串

    返回结果:

    mysql

    mysql

    mysql

    ysqlm

    3.replace放法,替换字符串中的值

    格式replace(被替换元素,要替换为的元素,X)---X为替换几次

    st= 'mysql is db. mysql mysql mysql'
    print(st.replace('mysql', 'oracle',2))  # 替换字符串

    返回结果:

    oracle is db. oracle mysql mysql

    4.Split方法切割字符串,返回一个list,按照你指定的字符串去分隔这个字符串,然后放到一个list里面

    st= 'zhang,li,jia,ling'
    Na='zhang  lii jia ling '
    print(st.split()) #将字符串中的所有元素作为一个元素生成一个list
    print(st.split(',')) #将字符串中的所有元素以','分割,生成一个list
    print(Na.split()) #如果你什么都不写的话,按照空格分割,多个空格也算一个

    返回结果:

    ['zhang,li,jia,ling']
    ['zhang', 'li', 'jia', 'ling']
    ['zhang', 'lii', 'jia', 'ling']
    注意如果你什么都不写的话,按照空格分割,多个空格也算一个

    Splitlines()按照换行符进行分割,通常在文件中会用到

    Na='zhang  lii
    jia ling '
    print(Na.splitlines())

    返回结果:

    ['zhang  lii', 'jia ling ']

    5.映射—一般做加密的时候会用

    p = str.maketrans('abcdefg', '1234567'# 前面的字符串和后面的字符串做映射
    print('ccaegg'.translate(p))  # 输出按照上面maketrans做映射后的字符串

    返回结果:

           331577

    6.元素中大小写转换,常用在不区分大小写的验证码校验上

    stt='asdfg'
    tuu='AsDfG'
    if stt.upper()==tuu.upper():
        print('验证码一致')

    返回结果:

      验证码一致

    7.需要了解的一些方法

    import string
    print(string.ascii_letters+string.digits)#大小写字母+数字
    print(string.ascii_lowercase)#所有的小写字母
    print(string.ascii_uppercase)#所有的大写字母
    print(string.digits)#所有的数字

    返回结果:

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

    abcdefghijklmnopqrstuvwxyz

    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    0123456789

    name='hello world'
    print(name.capitalize())  # 首字母大写
    print(name.center(50, '*'))  # 50个-,把name放中间
    print(name.endswith('d'))  # 是否以x结尾,返回的结果是布尔值,可以再做判断的时候使用,如果是以X结尾就...否则就...
    print('abA123'.isalnum())  # 是否包含数字或字母,当单独为数字或者英文或者英文和汉字的组合时,都返回Ture
    print('abA'.isalpha())  # 是否是英文字母--可以直接用引号定义字符,也可以用已经声明过的
    print(name.isalpha())  # 是否是英文字母,只有仅仅为字母的时候,才返回Ture
    print('122'.isdigit())  # 是否是数字--比较常用
    print('11sdf'.isidentifier())  # 是否是一个合法的变量名,不判断内置的关键字,只判读了不能以数字开头
    print('aA'.islower())  # 是否是小写字母
    print('AA'.isupper())  # 是否是大写字母
    print(name.lower())  # 变成小写
    print(name.upper())  # 变成大写
    注意前6个是比较常用的方法,需要熟练掌握


     
  • 相关阅读:
    Batch Normalization
    常用shell命令
    把chord下dbm_noauth做成静态库,提供接口
    vim中多标签和多窗口的使用
    recv返回值
    在XP下从硬盘安装windows 7的方法
    Linux文件系统中的链接
    统计出现次数排名
    linux编程环境
    windows命令行修改连接的DNS
  • 原文地址:https://www.cnblogs.com/MLing/p/6917771.html
Copyright © 2011-2022 走看看