• Python之字符串操作


    一、字符串特点

    •  内容不可修改
    • 有下标,可以循环
    password='123456' #内容不可修改

    二、字符串常用方法

    1、.strip()方法

    • 默认去字符串两边的空格和换行符
    print(password.strip()) #去掉字符串两边的空格和换行符
    password='
    123456
    7890 '
    print(password.strip())
    #结果:
    #123456
    #7890
    #中间的空格和换行符不去掉
    • 不传内容,默认去掉空格和换行符,传入内容,就会去掉传入的内容
    password='.jpg123456.jpg'
    print(password.strip('.jpg'))
    #结果:
    #123456 

    2、.lstrip()方法

    • 只去掉左边的空格和换行

    3、.rstrip()方法

    • 只去掉右边的空格和换行

    4、.upper()方法

    • 使字符串全部转成大写
    password='.jpg123456.jpg'
    print(password.upper())
    #结果:
    #.JPG123456.JPG

    5、.lower()方法

    • 使字符串全部转成小写
    password='.JPG123456.jpg'
    print(password.lower())
    #结果:
    #.jpg123456.jpg

    6、.capitalize()方法

    • 使字符串首字母转成大写
    password='agcPG123456.jpg'
    print(password.capitalize())
    #结果:
    #Agcpg123456.jpg

    7、.count()方法

    • 统计内容在字符串里出现的次数
    password='agcPG123456.jpg'
    print(password.count('g'))
    #结果:
    #2

    8、.replace()方法

    • 将旧内容替换为新内容
    password='agcPG123456.jpg'
    print(password.replace('12345','上山打老虎'))  #12345替换为:上山打老虎
    #结果:
    #agcPG上山打老虎6.jpg
    • 如果旧内容不存在,使用该方法也不报错,还是之前的字符串
    password='agcPG123456.jpg'
    print(password.replace('hhh','上山打老虎'))
    #结果:
    #agcPG123456.jpg

    去掉字符串中间的空格,可以使用该方法:

    names='小红 小军 小黄    小兰'
    print(names.replace(' ',''))
    #结果:
    #小红小军小黄小兰

    9、.endswith()方法

    • 判断是否以内容为结尾
    • 当内容存在时,返回为True;不存在时,返回为False
    password='agcPG123456.jpg'
    print(password.endswith('jpg'))
    #结果:
    #True
    print(password.endswith('mp3'))
    #结果:
    #False

    例子:

    filename='a.mp4'
    if filename.endswith('.mp3'):
        pass
    else:
        print('不以.mp3结尾')
    #结果:
    #不以.mp3结尾

    10、.startswith()方法

    • 判断是否以内容为开头 
    password='agcPG123456.jpg'
    print(password.startswith('.'))
    #结果:
    #False 

    11、.format()方法

    • 格式化输出,用{}包裹,可将内容输出
    print('{name},{age}'.format(name='lrx',age=18))
    #结果:
    #lrx,18

    12、.split()方法

    • 以内容为分隔符进行分割,分割后是list里的每一个元素
    • 将字符串变成list
    • 默认是按照空格分隔
    names='小红,小军,小黄,小兰'
    print(names.split(','))
    #结果:
    #['小红,小军,小黄,小兰']
    • 如果分隔符不存在,仍然把字符串变成list,整个字符串是list里的一个元素
    names='小红 小军 小黄    小兰'
    print(names.split(','))
    #结果:
    #['小红 小军 小黄    小兰'] 

    13、.join()方法

    • 将list转成字符串
    • 以规定的内容为分隔符进行连接
    • 只要是循环的,都可以使用该方法,比如:字符串、列表、元组
    • 必须类型全部是字符串,其中有其他的类型不可以
    user=['abc','123','&*^']
    res='.'.join(user)
    print(res)
    #结果:
    #abc.123.&*^

    14、.zfill()方法

    • 自动补零:比如内容里写3,则个位数前补2个零,十位数前补1个零
    a=1
    b=80
    a1=str(a).zfill(3)
    b1=str(b).zfill(3)
    print('a1='+a1+',b1='+b1)
    list1= [1,2,3,4,5,]
    for i in list1:
        print(str(i).zfill(2))
    
    #结果:
    01
    02
    03
    04
    05

    15、.find()方法

    • 找下标
    • 如果无此内容时,使用该方法不会报错,会返回-1

    16、.index()方法

    • 找下标
    • 如果无此内容时,使用该方法会报错
    s='abcadef'
    print(s.find('a'))
    print(s.index('a',2)) #可以指定位置开始找
    print(s.find('g'))
    #结果:
    #0
    #0
    #-1
    print(s.index('g'))
    #结果:
    #ValueError: substring not found

    17、.isdigit()方法

    • 判断字符串是否是正整数,是正整数返回True,不是返回False(负整数是判断不了)
    n='123.243'
    n2='-123'
    n3='123'
    print(n.isdigit())
    print(n2.isdigit())
    print(n3.isdigit())
    #结果:
    #False
    #False
    #True

    18、.islower()方法

    • 判断字符串是否都是小写字母

    19、.isupper()方法

    • 判断字符串是否都是大写字母
    s='abCdef'
    print(s.isupper())
    print(s.islower())
    s1='AGSDGS'
    s2='sdsdg'
    print(s1.isupper())
    print(s2.islower())
    print(s1.islower())
    print(s2.isupper())
    #结果:
    # False
    # False
    # True
    # True
    # False
    # False

    20、.isalpha()方法

    • 判断字符串中是否只有字母,如果只有字母,返回True,否则返回False

    21、.isalnum()方法

    • 判断字符串中是否有字母或者数字
    print('abcd123'.isalpha()) #判断字符串里面是否只有英文
    print('abc23454'.isalnum()) #判断字符串是否里面有英文或者由数字
    print('abc'.isalnum())
    print('124'.isalpha())
    # False
    # True
    # True
    # True

     22、.isspace()方法

    • 判断字符串是否是空格,只包含空格
    print('sdfs '.isspace())
    print(' '.isspace())
    #结果:
    # False
    # True

    23、.splitlines()方法

    • 以换行符分割字符串
    s='abdc
    sdfsd'
    print(s)
    print(s.splitlines()) #以换行符分割字符串
    
    #结果
    abdc
    sdfsd
    ['abdc', 'sdfsd']

    24、string模块

    (1)string.ascii_letters:所有的大写、小写字母

    (2)string.ascii_uppercase:所有的大写字母

    (3)string.ascii_lowercase:所有的小写字母

    (4)string.digits:所有的数字

    (5)string.punctuation:所有的符号

    import string
    print(string.ascii_letters)
    print(string.ascii_uppercase)
    print(string.ascii_lowercase)
    print(string.digits)
    print(string.punctuation)
    #结果:
    # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    # ABCDEFGHIJKLMNOPQRSTUVWXYZ
    # abcdefghijklmnopqrstuvwxyz
    # 0123456789
    # !"#$%&'()*+,-./:;<=>?@[]^_`{|}~

    三、字符串操作

    1、字符串循环

    • 利用元素下标进行循环

    words='中秋节要上课'
    
    for w in words :
        print('每次打印的:',w)
    
    #结果:
    每次打印的: 中
    每次打印的: 秋
    每次打印的: 节
    每次打印的: 要
    每次打印的: 上
    每次打印的: 课

    Python中的循环内置了下标,因此只用一个变量p就可以,p就是每次取下标时对应的元素值。

    • 使用enumerate()枚举函数

    使用enumerate()函数,会自动将字符串的下标和元素都显示出来:words='中秋节要上课'

    for index,w in enumerate(words):
    print('每次打印的:',index,w)
    #结果:

    每次打印的: 0 中
    每次打印的: 1 秋
    每次打印的: 2 节
    每次打印的: 3 要
    每次打印的: 4 上
    每次打印的: 5 课

    2、切片

    字符串也有下标,使用上跟在列表中一致:

    words='中秋节要上课'
    print(words[0])
    print(words[::-1]) #-1代表取值到最后一个元素,不填写,默认从第一个开始取值,两个:加上-1 从后边开始取值
    
    #结果:
     中
     课上要节秋中

    3、存址方式

    1)现象:

    a='baizi'
    b=a
    a='niuniu'
    print(b)#结果为baizi
    print(a)#结果为niuniu

    2)原因:

    • 字符串是直接开辟新的内存空间,不会共用一块内存空间,因此修改了a的内容后,b不会变。

    四、面试题

    #判断一个字符串是否是回文,即:字符串和它反转后的字符串是否相等,如果相等就是回文。
    s='上海自来水来自海上'
    # 1232321
    # 1111
    # 回文算法,反过来倒过去都一样
    
    for i in range(10):
        s = input('请输入一个字符串:')
        if len(s)<2:
            print('字符串长度必须大于2')
        elif s==s[::-1]:
            print('是回文')
        else:
            print('不是回文')

    任何付出都是值得的,会越来越好

  • 相关阅读:
    CSS
    js
    js
    js
    JS
    Service Worker 学习笔记
    JS JavaScript模块化(ES Module/CommonJS/AMD/CMD)
    前端开发 JavaScript 规范文档
    HTML HTML5 新特性
    JS 设计模式九 -- 装饰器模式
  • 原文地址:https://www.cnblogs.com/brf-test/p/12350372.html
Copyright © 2020-2023  润新知