• python中的字符串(str)操作


    字符串是python中数据类型。一般就单引号(‘’)或双引号(“”)引起来的内容就是字符串。

    例如:下面两个都是定义字符串

    str1 = "hello world"
    str2 = 'Hello World' 

    1、索引:就是下标,从0开始。默认是从左往右数;当索引为负数时,表示从右往左数。通过索引得到的内容还是一个字符串。

    如上面例子str1中字符 'h' 的索引为0。即str1[0] 的值是'h' 

    字符串是不可变的对象,所以任何操作对字符串是没有影响的。如下面的例子,通过切片对字符串str1进行操作之后,str1的值没有发生改变

    2、切片:可以对字符串进行截取 

    语法:

     

    s[起始位置:结束位置]  ==》结束位置取不到
    
    s[起始位置:]  ==》表示从起始位置截到末尾
    
    s[起始位置:结束位置:步长]
    
    起始位置省略时,表示从0开始;结束位置省略时,表示到末尾;如果步长为负数,则反向来数【默认从左往右截】 

     

     

    >>> str1 = "Hello World"
    >>> str1[1:6]
    'ello '
    >>> str1[6:]
    'World'
    >>> str1[1:6:2]
    'el '
    >>> str1  #str1的值没有发生改变,仍然还是"Hello World" 所以说字符串是不可变的对象,任何操作对字符串是没有影响的。
    'Hello World'

    3、常用操作

    1capitalize() 使字符串的首字母大写

     

    >>> str2 = "hello world"
    >>> str2.capitalize()
    'Hello world'

    2upper()lower() 使字符串中的字母大写(小写)

     

    >>> str2 = "HelloWorld"
    >>> str2.upper()
    'HELLOWORLD'
    >>> str2.lower()
    'helloworld'

    3)swapcase()  大小写转换,即把大写的变成小写,把小写的变成大写

    >>> str3 = "Hello World"
    >>> str3.swapcase()
    'hELLO wORLD'

    4)casefold() 转换成小写【不常用】,和lower()的功能一样。lower()对一些字符支持不够友好,但是casefold()对所有字符都支持,包括东欧的一些字母

     

    >>> str4 = "геёжз"#俄文字符
    >>> str4.casefold()
    'геёжз'

    5)title 把每一个特殊字符隔开的首字母大写(中文被认为特殊字符)

     

    >>> str5 = "hello_world_你好_tanxu"
    >>> str5.title()
    'Hello_World_你好_Tanxu'

    6)center(字符串长度) 使得一个字符串在规定的长度内居中

     

    >>> str6 = "hello"
    >>> str6.center(20)
    '       hello        '

    7)strip():参数为空时默认去两端的空格【一般用于登录时输入用户名和密码】;参数不为空时,去掉左右两端的内容

     

    >>> str7 = "    hello    "
    >>> str7.strip()
    'hello'
    >>> str8 = "aaaaaa哈哈哈哈aaaaaa"
    >>> str8.strip("a")
    '哈哈哈哈'
    

     

     例子:

    username = input("请输入用户名:").strip()  #有些不友好的用户会在用户名和密码两端输入多余的空格
    password = input("请输入密码:").strip()
    if username == "Tanxu"  and password == "123456":
          print("登录成功!")
    else:
          print("登录失败!")
    

     执行结果:

    请输入用户名:       Tanxu
    请输入密码:             123456
    登录成功!
    

      I、lstrip()没有参数时,默认去掉字符串左边的空格;有参数时,去掉左边的内容

      II、rstrip()没有参数时,默认去掉字符串右边的空格;有参数时,去掉右边的内容

    >>> str8.lstrip("a")
    '哈哈哈哈aaaaaa'
    >>> str8.rstrip("a")
    'aaaaaa哈哈哈哈'

    8)replace(原字符串,目标字符串,替换个数)  字符串替换

     

     

     

    >>> str9 = "Tanxu_is_a_good_girl"
    >>> str9.replace("_"," ")#把所有下划线(_)换成空格,第三个参数省略,默认全部替换
    'Tanxu is a good girl'
    
    >>> str10 = "Tanxu is a good girl"
    >>> str10.replace("a","e",2)#把字符a换成字符e  换两个
    'Tenxu is e good girl'

    9split(切割的内容) 按照括号内的参数切割,如果是字符串切割后放在一个列表中

     

    >>> str11 = "Tan_xu_is_a_good_girl"
    >>> str11.split("_")
    ['Tan', 'xu', 'is', 'a', 'good', 'girl']#切割后存在列表中
    

     

      如果切割的内容在字符的两端会产生空格

    >>> str11.split("Tan")
    ['', '_xu_is_a_good_girl']#左边会产生一个空格
    >>> str11.split("girl")
    ['Tan_xu_is_a_good_', '']#右边会产生一个空格
    

      

    4、字符串中常用的查找操作:

    ret = "字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串"
    print(ret.startswith("字符串"))#判断字符串是否以“字符串”开头,如果是,返回True,否则,返回False
    print(ret.endswith("字符串"))#判断字符串是否以“字符串”结束,如果是,返回True,否则,返回False
    print(ret.count("的"))#计算字符串中“的”的出现次数
    print(ret.find("Python"))#判断字符串中是否有“Python”字符串,如果有返回出现的位置
    print(ret.find("Python1"))#如果没有,返回-1
    print(ret.find("Python",1,10))#索引查找
    print(ret.index("Python"))#返回字符串“Python”的索引,如果没有该字符串,程序会报错
    

      执行结果:

    True
    True
    1
    5
    -1
    -1
    5
    

      

    5、计算字符串的长度:len(字符串)

    >>> str12 = "Tanxu"
    >>> len(str12)
    5
    

     

    6、条件判断

    str13 = "123.456"
    str14 = "Tanxu"
    str15 = "_Tan_xu_"
    #是否由字母和数字组成,如果字符串至少有一个字符并且所有字符都是字母或数字返回True,否则返回False
    print(str13.isalnum())
    print(str14.isalnum())
    print(str15.isalnum())
    
    #是否由字母组成,如果字符串中至少有一个字符并且所有字符都是字母则返回True,否则返回False
    print(str13.isalpha())
    print(str14.isalpha())
    print(str15.isalpha())
    
    #是否由数字组成,不包括小数点;如果字符串中只包含数字,则返回True,否则,返回False
    print(str13.isdigit())
    print(str14.isdigit())
    print(str15.isdigit())
    
    #检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
    print(str14.isdecimal())
    
    #isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。
    print(str13.isnumeric())
    

      

     

     

     

     

     

     

  • 相关阅读:
    计算机算法设计与分析之棋盘覆盖问题
    在uboot里面加入环境变量使用run来运行
    软件project师的属性与发展
    Oracle 表三种连接方式(sql优化)
    POJ 1700 cross river (数学模拟)
    八:Java之I/O
    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
    WebBot
    WebBrowserProgramming
    Skulpt
  • 原文地址:https://www.cnblogs.com/tanxu05/p/9885969.html
Copyright © 2020-2023  润新知