zoukankan      html  css  js  c++  java
  • Python3笔记022

    第5章 字符串及正则表达式

    5.1 字符串常用操作

    5.1.1 拼接字符串

    使用+运算符可完成多个字符串的拼接,产生一个新的字符串对象。

    str1 = "2020年07月06日是"
    str2 = "星期一"
    print(str1+ "-" + str2)
    

    字符串不允许直接与其他类型的数据拼接,非字符串须转换为字符串。

    # 字符串拼接的例子
    str1 = "2020年07月06日是7月第"
    str2 = "天"
    num1 = 6
    print(str1 + str(num1) + str2)
    

    5.1.2 计算字符串的长度

    python默认UTF-8编码,一个汉字占3个字节,一个字母占1个字节,一个数字占一个字节。

    len(string.encode())
    
    str1 = "2020"
    str2 = "星期三"
    str3 = "Wednesday"
    print(len(str1.encode()))
    print(len(str2.encode()))
    print(len(str3.encode()))
    

    5.1.3 截取字符串

    string[start : end : step]
    
    # 去掉星期两字
    str1 = "星期一星期二星期三星期四星期五星期六星期日"
    print(str1[2:len(str1):3])
    

    5.1.4 分割、合并字符串

    1、分割

    str.split(sep, maxsplit)
    参数说明
    sep:分隔符,默认为所有的空字符。
    maxsplit:分割次数.默认为 -1, 即分隔所有。
    
    str1 = "Google#Runoob#Taobao#Facebook"
    # 第二个参数为2,分割2次,返回两个参数列表
    strnew = str1.split("#", 2)
    print(strnew)
    输出:['Google', 'Runoob', 'Taobao', 'Facebook']
    
    str1 = "星期一#星期二#星期三#星期四#Sunday"
    # 第二个参数为2,分割2次,返回两个参数列表
    strnew = str1.split("#", 20)
    print(strnew)
    输出:['星期一', '星期二', '星期三', '星期四', 'Sunday']
    

    2、合并字符串

    strnew = string.join(iterable)
    参数说明
    string:指定的字符
    iterable:可迭代的一个序列
    
    string = '-'
    iterable = 'python'
    strnew = string.join(iterable)
    print(strnew)
    输出:p-y-t-h-o-n
    

    5.1.5 检索字符串

    1、count()方法

    list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
    print(list1.count("Tuesday"))
    output:
    1
    

    2、find()方法

    str1 = "星期一星期二星期三星期四星期五星期六星期日"
    print(str1.find("星期六"))
    output:
    15
    # 如果查找的字符串不存在,将输出-1
    str1 = "星期一星期二星期三星期四星期五星期六星期日"
    print(str1.index("星期八"))
    output:
    -1
    

    3、index()方法

    str1 = "星期一星期二星期三星期四星期五星期六星期日"
    print(str1.index("星期六"))
    output:
    15
    # 如果查找的字符串不存在,将会产生异常
    str1 = "星期一星期二星期三星期四星期五星期六星期日"
    print(str1.index("星期八"))
    output:
    ValueError: substring not found
    

    4、startswith()方法

    str.startswith(prefix[, start[, end]])
    
    str1 = "#星期一星期二星期三星期四星期五星期六星期日"
    print(str1.startswith("#"))
    output:
    True
    

    5、endswith()方法

    str.endswith(suffix[, start[, end]])
    
    str1 = "#星期一星期二星期三星期四星期五星期六星期日"
    print(str1.endswith("日"))
    output:
    True
    

    5.1.6 字母的大小写转换

    1、lower()方法

    str.lower()
    
    str1 = "Monday"
    print(str1.lower())
    输出:monday
    

    2、upper()方法

    str.upper()
    
    str1 = "Monday"
    print(str1.upper())
    输出:MONDAY
    

    5.1.7 去除字符串中的空格和特殊字符

    1、strip()方法

    strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

    str.strip([chars])
    chars:移除字符串头尾指定的字符序列
    
    str1 = "                      M o n da  y               "
    print(str1.strip())
    output:M o n da  y
    

    2、lstrip()方法

    lstrip() 方法用于截掉字符串左边的空格或指定字符

    str.lstrip([chars])
    
    str1 = "                      M o n da  y               "
    print(str1.lstrip())
    M o n da  y               
    

    3、rstrip()方法

    rstrip() 删除 string 字符串末尾的指定字符(默认为空格)

    str.rstrip([chars])
    
    str1 = "                      M o n da  y               "
    print(str1.rstrip())
    output:                      M o n da  y
    

    5.1.8 格式化字符串

    1、使用%操作符---放弃使用

    '%[-][+][0][m][.n]格式化字符'%exp
    

    2、使用字符串对象的format()方法---建议使用

    str.format(args)
    str:用于指定字符串的显示样式(即模板)
    args:用于指定要转换的项,如果有多项,逗号分隔
    

    创建模板

    {[index][:[[fill]align][sign][#][width][.precision][type]]}
    

    format()方法中常用的格式化

    格式化字符 说明
    s 对字符串类型
    d
    c 将十进制整数自动转换成对应的Unicode字符
    e或者 转换为科学计数法表示再
    g或者 自动在e和f或者EF中切换
    b 将十进制整数自动转换成二进制表示再
    o 将十进制整数自动转换成八进制表示再格式化
    x或者 将十进制整数自动转换成十六进制表示再格式化
    f或者 转换为浮点数再格式化
    % 显示
    template = '今天的日期是{:s},星期{:s}'
    date = template.format('20200706','一')
    print(date)
    output:
    今天的日期是2020706,星期一
    

    5.1.9 字符串转字节

    # python3添加了bytes字节类型
    s = "apple"
    print(bytes(s,encoding='utf-8'))
    output:
    b'apple'
    
  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/infuture/p/13237585.html
Copyright © 2011-2022 走看看