• 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)


      如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她

      任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串。

      官方文档:https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str

      字符串也成为字符序列,

    一、表现形式

    1.1 基本表现形式

      字符串可以用单引号、双引号、三引号引起来,特点如下:

    • 单引号和双引号相似,内部如果还要使用则需要用斜杠进行转义
    • 三引号是三个单引号或双引号,可以进行换行,也就是说包含所有字面的符号
    'yiwangzhibujian'
    "yiwangzhibujian"
    '''yiwangzhibujian'''
    """yiwangzhibujian"""

      上面的形式都是一样的,同样可以使用字符串类来创建字符串,字符串类为str

    name=str('yiwangzhibujian')
    print(name)

      这种方法了解即可。 

    1.2 其他表现形式

      待续

    二、常用方法

      字符串的所有方法,详见官方文档:https://docs.python.org/3/library/stdtypes.html#string-methods。只说使用频率最高的几个。

    2.1 常用方法

    str.center(width[, fillchar])

      主要用来格式化字符串,如果width小于字符串长度,返回原始字符串,大于字符串长度,则字符串居中,两侧用fillchar填充,fillchar默认为空格

    str.count(sub[, start[, end]])

      :返回指定字符串出现的次数

    str.encode(encoding="utf-8", errors="strict")

      转换成字节数组

    str.endswith(suffix[, start[, end]])

      判读字符串是否以指定字符串结尾

    str.find(sub[, start[, end]])

      返回指定字符串所在的索引,没有返回-1

    str.join(iterable):

      使用该字符串来连接可迭代对象

    str.lower():

      转换小写

    str.replace(old, new[, count]):

      字符串替换,count为替换出现的前几个,默认为所以

    str.rfind(sub[, start[, end]]):

      返回字符串最后一次出现的位置

    str.split(sep=None, maxsplit=-1):

      使用指定字符进行分割,若指定次数则从左侧开始计算

    str.splitlines([keepends]):

      按照换行符进行分割,换行符不包含其中,换行符包括车

    str.startswith(prefix[, start[, end]]):

      判断字符是否以指定字符开始

    str.strip([chars]):

      去除前后指定字符,默认为空格

    str.upper():

      将所有字符转换成大写

    2.2 全局方法

      也有一些全局方法可以作用在字符串上:

    len():

      获得字符串的长度

      这个方法还是比较常用的。

    2.3 不常用方法

      不常用方法也有很多,大致了解即可,以后有个需求再来看,如下:

    • str.capitalize():返回字符串首字母大写形式
    • str.casefold():返回字符串的casefolded形式(???)
    • str.expandtabs(tabsize=8):将制表符用空格进行替换
    • str.format(*args, **kwargs):格式化字符串
    • str.format_map(mapping):类似于str.format
    • str.index(sub[, start[, end]]):类似于find但是未找到会报错
    • str.isalnum():是否全部为数字或者字母
    • str.isalpha():是否都是字母
    • str.isdecimal():是否都是数字
    • str.isdigit():是否都是数字
    • str.isidentifier():???
    • str.islower():是否都是小写
    • str.isnumeric():是否都是数字
    • str.isprintable():是否都是可打印字符
    • str.isspace():是否是空格
    • str.istitle():是否是标题
    • str.isupper():是否都是大写
    • str.ljust(width[, fillchar]):类似于str.center(width[, fillchar]),左填充
    • str.lstrip([chars]):删除左侧指定字符,默认为空格
    • static str.maketrans(x[, y[, z]]):???
    • str.partition(sep):分割指定字符串首次出现的位置
    • str.rindex(sub[, start[, end]]):类似于str.rfind(sub[, start[, end]]),但是找不到会报错
    • str.rjust(width[, fillchar]):和str.ljust(width[, fillchar])一个性质,右侧填充
    • str.rpartition(sep):和str.partition(sep)一个性质,分割字符串最后一次出现的地方
    • str.rsplit(sep=None, maxsplit=-1):按指定字符进行分割,若指定数量则从最右边开始
    • str.rstrip([chars]):同str.lstrip([chars])一个性质,删除右侧
    • str.swapcase():将大小写进行互转
    • str.title():将每个单词大首字母进行大写
    • str.translate(table):字符映射使用???
    • str.zfill(width):???

     2.4 字符串运算

      字符串也有一些简单的运算方法:

    • +:连接两个字符串,仅限字符串
    • *:重复输出字符串
    • []:通过索引下标获得字符串的字符
    • in:判断字符是否在字符串中
    • not in:和in相反
    • %:字符串格式化,下面讲到

    三、字符串格式化

      字符串格式化的一个用处就是避免拼接字符串的麻烦。先看一个简单的例子:

    print ("hello %s,My name is %s!" % ('laizhezhikezhui', 'yiwangzhibujian'))

      程序会输出:

    hello laizhezhikezhui,My name is yiwangzhibujian!

      %s 代表一个字符串的占位符,其他还有:

     符   号描述
          %c  格式化字符及其ASCII码
          %s  格式化字符串
          %d  格式化整数
          %u  格式化无符号整型
          %o  格式化无符号八进制数
          %x  格式化无符号十六进制数
          %X  格式化无符号十六进制数(大写)
          %f  格式化浮点数字,可指定小数点后的精度
          %e  用科学计数法格式化浮点数
          %E  作用同%e,用科学计数法格式化浮点数
          %g  %f和%e的简写
          %G  %f 和 %E 的简写
          %p  用十六进制数格式化变量的地址

       当然还有一些辅助指令:

    符号功能
    * 定义宽度或者小数点精度
    - 用做左对齐
    + 在正数前面显示加号( + )
    <sp> 在正数前面显示空格
    # 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
    0 显示的数字前面填充'0'而不是默认的空格
    % '%%'输出一个单一的'%'
    (var) 映射变量(字典参数)
    m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

    四、字符串其他知识

    4.1 字符串的本质

      简单来说是有序的字符的集合。因此所有可应用于集合的方法都可应用于字符串:

    name='yiwangzhibujian'
    print('k' in name)
    print('w' in name)
    for i in name:
        print(i)
    ========控制台输出========
    False
    True
    y
    i
    w
    a
    n
    g
    z
    h
    i
    b
    u
    j
    i
    a
    n
    View Code

      字符串和Java一样不可变。

    4.2 字符串下标

       字符串也可以支持下标访问,从0开始,还有一个特性就是可以使用负数,-1代表最后一个,以此类推:

    name='yiwangzhibujian'
    print(name[0])
    print(name[-1])
    ========控制台输出========
    y
    n

      注意使用的时候防止下标越界。

    4.3 字符串切片

      切片不只应用于字符串,也应用list、tuple等集合,功能强大,使用简单,要掌握用法,基本语法如下:

    str[i:j]
    • 包含下边界,不包含上边界
    • 下边界默认为0
    • 上边界默认为字符串长度

      另外分片还引入第三个值,步进,因此默认不用的时候步进为1,若步进为负数,表示倒叙进行分片。

    4.4 字符串拼接

      字符串使用+号拼接算是一种常见的用法,但是字符串和数字拼接是会报错的,必需将数字提前进行转换,str()来完成转换

  • 相关阅读:
    Datesheet 参数手册
    2017.10.23 Arduino Atmel EFM32低功耗监测
    New Concept English three(21)
    The disadvantage for manager has a part-time job as a trainer
    New Concept English three(20)
    Python+Qt学习随笔:PyQt中常用的事件处理函数
    Python+Qt学习随笔:PyQt图形界面应用的事件处理流程
    PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?
    PyQt学习随笔:PyQt中捕获键盘事件后获取具体按键值的方法
    PyQt学习随笔:重写组件的event方法捕获组件的事件
  • 原文地址:https://www.cnblogs.com/yiwangzhibujian/p/6985807.html
Copyright © 2020-2023  润新知