zoukankan      html  css  js  c++  java
  • 字符串方法详解

    字符串方法详解

    字符串方法有很多,本节课只讨论一些常用的,使用万能的点操作字符串的方法。

    因为字符串是不可变数据类型,所以字符串方法不会在字符串本身进行修改,而是将修改后的新字符串作为返回值返回。故而若要使用字符串方法,需要使用变量来接收才行。

    .upper() 方法

    .upper() 方法可以将字符串中的所有小写字母转换为大写字母:

    name = "alex"
    name1 = name.upper()  # 全部大写
    print(name)
    print(name1)
    

    输出的结果为:

    alex
    ALEX
    

    .lower() 方法

    .lower() 方法与 .upper() 方法刚好相反,是将字符串中所有的大写字母转换为小写字母:

    name = "ALEX"
    name1 = name.lower()  # 全部小写
    print(name)
    print(name1)
    

    输出的结果为:

    ALEX
    alex
    

    .upper().lower 方法的一个很常见的应用场景是一些不需要区分大小写的情况,比如输入验证码或用户名时:

    yzm = "0G8k"
    my_yzm = input("请输入验证码:[0G8k]")
    if yzm.lower() == my_yzm.lower():
        print("ok")
    else:
        print("滚")
    

    .startswith() 方法

    .startswith() 方法用来判断字符串是否以指定的参数开头,返回的是布尔值:

    name = 'alex'
    print(name.startswith('a'))
    
    返回的结果是: True
    

    .startswith() 方法还支持字符串的 切片,判断切片后的字符串是否是以相应的参数开头:

    name = 'alex'
    print(name.startswith('l', 1, 3))
    
    返回的结果是: True
    

    .endswith() 方法

    .endswith() 的用法跟 startswith() 十分相似。不同的是,它是用来判断字符串是否以指定的字符串结尾,返回的同样是布尔值。.endswith() 方法同样支持切片操作。

    name = 'alex'
    print(name.endswith('x'))
    
    返回的结果是: True
    

    .count() 方法

    .count() 方法用来统计输入的参数在字符串中出现的次数,例如:

    name = "meet_alex"
    print(name.count("e"))
    
    返回的结果是: 3
    

    .strip() 方法

    补充知识: 换行符,也就是键盘上的 回车 键; 制表符,也就是键盘上的 Tab 键:

    print("你
    好")    # 换行就是键盘上的回车键
    print("你	好")    # 制表符就是键盘上的 Tab
    

    输出的结果为:

    你
    好
    你	好
    

    .strip() 方法用来去除字符串两端的空格、换行符和制表符:

    name = '   
    alex   	   '
    print(name.strip())
    

    输出的结果为:

    alex
    

    .strip() 方法也可以通过设定参数来指定去除头尾两端的内容:

    name = 'aaaaa aelx  
    aa	a
    aaaaa'
    print(name.strip('a'))
    

    输出的结果为:

     aelx
    aa      a
    
    

    需要注意的是,当指定参数后,将不会清除空格、换行符和制表符。

    .strip() 方法的应用场景是当输入账号密码时,忽视首位无意间输入的或者复制粘贴过来的空格:

    user = input("账号:").strip()
    pwd = input("密码:").strip()
    if user == "alex" and pwd == "alex123":
        print("ok")
    else:
        print("滚")
    

    另外,int() 内部封装了 .strip() 方法。故而当使用 int() 函数将字符串转换为整型时,不需要额外的 .strip() 操作:

    num = ' 	 23 
     '
    print(int(num))
    

    .split() 方法

    .split() 方法用来分割字符串。默认按照空格、换行符和制表符来进行分割。分割后,空格、换行符和制表符将不存在。.split() 方法输出的是列表:

    a = "alex alex123"
    lst = a.split()
    print(lst)
    

    输出的结果为:

    ['alex', 'alex123']
    

    空格、换行符和制表符都有同样的结果:

    name = "alex
    meet"
    print(name.split())
    name = "alex	meet"
    print(name.split())
    name = "alex meet"
    print(name.split())
    

    .split() 方法可以指定参数,通过特定的内容进行分割:

    a = "alex:alex123"
    lst = a.split(":")
    print(lst)
    
    
    

    输出的结果同样是:

    ['alex', 'alex123']
    

    .replace() 方法

    .replace() 方法可以替换字符串中的旧内容为新内容。.replace() 有三个参数:参数 1 为旧值,参数 2 为新值,参数 3 为替换次数(默认全部替换)。例如:

    name = 'alexmeet'
    name = name.replace('e', 's', 2)
    print(name)
    
    输出的结果是:alsxmset
    

    is 系列方法(判断系列)

    is 系列方法有很多,主要用到的是四个:

    • name.isalnum():用来判断是不是由字母、中文或数字组成,返回的是布尔值
    • name.isalpha():用来判断是否由字母或中文组成,返回布尔值
    • name.isdigit():用来判断是否由阿拉伯数字组成,返回布尔值。有一个 bug 是,像 ⑤ 这样的字符也会被认作阿拉伯数字
    • name.isdecimal():用来判断是不是由十进制组成,返回的是布尔值
  • 相关阅读:
    利用HttpClient进行带参数的http文件上传
    使用mysqlproxy 快速实现mysql 集群 读写分离 [转]
    SQL Server Express 自动备份方法
    screen 配置文件
    linux启动DHCP
    dynamic table_name in cursor
    LogMiner and supplemental logging
    RAC 规划配置网络环境
    RAC prepare OS and installation media
    一次导数据流程
  • 原文地址:https://www.cnblogs.com/shuoliuchina/p/12426568.html
Copyright © 2011-2022 走看看