• 字符串类型


    字符串类型是编程语言里非常重要的数据类型,因为几乎所有的程序主要做的事情就是处理字符串,这个随着大家的学习会有深入的体会。

    字符串的定义

    python中字符串(str)是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息。

    >>> a = 'a'		# 单引号
    >>> b = "bc"	# 双引号
    >>> print(type(a), type(b))
    <class 'str'> <class 'str'>
    

    使用单引号和双引号进行字符串定义没有任何区别。

    当单引号是字符串的一部分时用双引号定义字符串,反之亦然。

    但个人建议一般情况下使用单引号定义字符串,因为不需要按shift键,方便。当然用双引号也没有什么不好,但尽量保持一致。

    >>> print('我最近看了"平凡的世界"')
    我最近看了"平凡的世界"
    >>> print("我最近看了'平凡的世界'")
    我最近看了'平凡的世界'
    

    一对单引号或双引号只能定义单行字符串,三引号可以用来创建多行表示的字符串。

    >>> content = '''窗前明月光,疑是地上霜;
    举头望明月,低头思故乡。'''
    >>> print(content)
    窗前明月光,疑是地上霜;
    举头望明月,低头思故乡。
    

    三单引号和三双引号也没有本质区别。三双引号一般用来做多行注释,函数,类定义时的说明文档。

    """
    我是多行注释
    函数,类定义的说明文档
    后面我们再说
    """
    

    字符串还有一个很重要的概念空字符串,表示字符串中没有任何字符,定义如下:

    >>> a = ''
    >>> print(a)
    
    

    直接写两个引号,中间没有空格,打印时没有任何显示。空字符串的概念非常重要,用来表示文本输出为空。

    字符串的索引

    序列类型中的元素都用索引来表示它在序列中的位置。

    单个字符在字符串中的位置叫索引,也叫下标

    1659343896765

    索引是从0开始的整数序列,0表示字符串的第一个位置,以此类推。

    通过索引可以获取字符串中的单个字符,语法如下:

    str[index]
    
    >>> s = 'Hello,world!'
    >>> print(s[0])
    H
    

    索引还可以使用负数表示,-1表示倒数第一个字符,-2表示倒数第二个字符,以此类推。

    >>> s = 'Hello,world!'
    >>> print(s[-1])
    !
    >>> print(s[-2])
    d
    

    字符串的切片

    获取序列中的子序列叫切片。

    字符串的切片就是获取字符串的子串。字符串切片的语法如下:

    str[start:end:step]
    
    • start表示切片的开始索引,在切片的结果中包含开始索引的字符
    • end表示结束索引,在切片的结果中不包含结束索引的字符
    • step是步长,表示每隔几个字符切片,当步长为1是可以省略。

    看下面的案例:

    >>> s = '012345678'
    >>> print(s[1:5])   # 包头不包尾
    1234
    

    从头开始切片可以省略start

    >>> print(s[:5])
    01234
    

    切到末尾包含末尾可以省略end

    >>> print(s[1:])
    12345678
    

    当步长不为1时

    >>> print(s[1::2])
    13579
    

    特别的,当步长为负数时,表示反向切片,切片会从后往前进行,例如:

    >>> print(s[1::-1])
    10
    >>> print(s[9::-1])
    876543210
    

    字符串拼接

    python中序列可以进行加法运算实现拼接。所以字符串可以通过+进行拼接:

    >>> a = 'hello'
    >>> b = ' '
    >>> c = 'world!'
    >>> print(a+b+c)
    hello world!
    

    既然可以加法运算,那么一般也可以和整数进行乘法运算,实现重复拼接的效果:

    >>> print('*' * 10)
    **********
    

    字符串和数值的相互转化

    1'1'不同,1.2'1.2'也不相同,但是它们可以相互转化。

    整数和字符串之间的转化

    >>> int('1')	# 整数字符串转化为整数
    1
    >>> str(1)		# 整数转化为字符串
    '1'
    

    浮点数和字符串之间的转化

    >>> float('1.2')
    1.2
    >>> str(1.2)
    '1.2'
    

    将数值字符串转化为对应的数值类型时,格式一定要正确,否则会抛出异常

    >>> int('1.2')   # '1.2'不是整数字符串运行会抛出异常
    Traceback (most recent call last):
      File "", line 1, in 
    ValueError: invalid literal for int() with base 10: '1.2'
    

    注意:如果你用print函数打印整数和整数字符串输出形式是一样的。

    >>> print(1)
    1
    >>> print('1')
    1
    

    转义符

    除了可见字符外,还有很多不可见的特殊字符,例如回车,换行,制表符等。这些字符是通过反斜杠\和其他字符组合来表示,称为转义,所以\也称为转义符。常见的转义字符如下表:

    组合 符号
    \\ 反斜杠符号
    \' 单引号
    \" 双引号
    \a 响铃
    \n 换行
    \t 横向制表符
    \r 回车
    \f 换页
    >>> print('窗前明月光,\n疑是地上霜。')  # 输出换行
    窗前明月光,
    疑是地上霜。
    >>> print('\'')      # 输出单引号本身
    '
    

    其他的转义字符大家可以自行练习。

    可以通过前导符r,强制不转义将字符串原样输出:

    >>> print(r'窗前明月光,\n疑是地上霜。')  # 不转义
    窗前明月光,\n疑是地上霜。
    
    再给大家分享一个学习小技巧,我以前分不清正斜杠和反斜杠。直到有一天,撇`/`就是正,捺`\`就是反。
    是不是秒记。
    嘿嘿,不用谢!
    
  • 相关阅读:
    HTML中的<!DOCTYPE html>和JavaScript中的strict mode
    【Java】封装
    面试总结之微服务篇
    微服务效率工具 goctl 深度解析(上)
    音视频编解码:——YUV格式思维导图
    基于nodejs+vue云旅青城系统
    R语言柱状图直方图 histogram
    springboot毕设项目大学实验中心教学管理系统的设计马实现 yabss(java+VUE+Mybatis+Maven+Mysql)
    maven常用插件详解
    【深入浅出Spring原理及实战】「源码调试分析」深入源码探索Spring底层框架的的refresh方法所出现的问题和异常
  • 原文地址:https://www.cnblogs.com/superwuchaofan/p/16557273.html