python学习之旅-02字符串

青旅半醒 2023-02-14 01:40 151阅读 0赞

字符串

所谓字符串,就是由零个或多个字符组成的有限序列,一般记为。在Python程序中,如果我们把单个或多个字符用单引号或者双引号包围起来,就可以表示一个字符串。

  1. s1 = 'hello, world!'
  2. s2 = "hello, world!"
  3. # 以三个双引号或单引号开头的字符串可以折行
  4. s3 = """
  5. hello,
  6. world!
  7. """
  8. print(s1, s2, s3, end='')

可以在字符串中使用\(反斜杠)来表示转义,也就是说\后面的字符不再是它原来的意义,例如:\n不是代表反斜杠和字符n,而是表示换行;而\t也不是代表反斜杠和字符t,而是表示制表符。所以如果想在字符串中表示'要写成\',同理想表示\要写成\\。可以运行下面的代码看看会输出什么。

  1. s1 = '\'hello, world!\''
  2. s2 = '\n\\hello, world!\\\n'
  3. print(s1, s2, end='')

\后面还可以跟一个八进制或者十六进制数来表示字符,例如\141\x61都代表小写字母a,前者是八进制的表示法,后者是十六进制的表示法。也可以在\后面跟Unicode字符编码来表示字符。

  1. s1 = '\141\142\143\x61\x62\x63'
  2. s2 = '\u9a86\u660a'
  3. print(s1, s2)

如果不希望字符串中的\表示转义,我们可以通过在字符串的最前面加上字母r来加以说明,再看看下面的代码又会输出什么。

  1. s1 = r'\'hello, world!\''
  2. s2 = r'\n\\hello, world!\\\n'
  3. print(s1, s2, end='')

字符串运算

Python为字符串类型提供了非常丰富的运算符,我们可以使用+运算符来实现字符串的拼接,可以使用*运算符来重复一个字符串的内容,可以使用innot in来判断一个字符串是否包含另外一个字符串(成员运算),我们也可以用[][:]运算符从字符串取出某个字符或某些字符(切片运算),代码如下所示。

  1. s1 = 'hello ' * 3
  2. print(s1) # hello hello hello
  3. s2 = 'world'
  4. s1 += s2
  5. print(s1) # hello hello hello world
  6. print('ll' in s1) # True
  7. print('good' in s1) # False
  8. str2 = 'abc123456'
  9. # 从字符串中取出指定位置的字符(下标运算)
  10. print(str2[2]) # c
  11. # 字符串切片(从指定的开始索引到指定的结束索引)
  12. print(str2[2:5]) # c12
  13. print(str2[2:]) # c123456
  14. print(str2[2::2]) # c246
  15. print(str2[::2]) # ac246
  16. print(str2[::-1]) # 654321cba
  17. print(str2[-3:-1]) # 45

常用字符串函数

  1. str1 = 'hello, world!'
  2. # 通过内置函数len计算字符串的长度
  3. print(len(str1)) # 13
  4. # 获得字符串首字母大写的拷贝
  5. print(str1.capitalize()) # Hello, world!
  6. # 获得字符串每个单词首字母大写的拷贝
  7. print(str1.title()) # Hello, World!
  8. # 获得字符串变大写后的拷贝
  9. print(str1.upper()) # HELLO, WORLD!
  10. # 从字符串中查找子串所在位置
  11. print(str1.find('or')) # 8
  12. print(str1.find('shit')) # -1
  13. # 与find类似但找不到子串时会引发异常
  14. # print(str1.index('or'))
  15. # print(str1.index('shit'))
  16. # 检查字符串是否以指定的字符串开头
  17. print(str1.startswith('He')) # False
  18. print(str1.startswith('hel')) # True
  19. # 检查字符串是否以指定的字符串结尾
  20. print(str1.endswith('!')) # True
  21. # 将字符串以指定的宽度居中并在两侧填充指定的字符
  22. print(str1.center(50, '*'))
  23. # 将字符串以指定的宽度靠右放置左侧填充指定的字符
  24. print(str1.rjust(50, ' '))
  25. str2 = 'abc123456'
  26. # 检查字符串是否由数字构成
  27. print(str2.isdigit()) # False
  28. # 检查字符串是否以字母构成
  29. print(str2.isalpha()) # False
  30. # 检查字符串是否以数字和字母构成
  31. print(str2.isalnum()) # True
  32. str3 = ' jackfrued@126.com '
  33. print(str3)
  34. # 获得字符串修剪左右两侧空格之后的拷贝
  35. print(str3.strip())

格式化输出字符串

  1. a, b = 5, 10
  2. print('%d * %d = %d' % (a, b, a * b))

当然,我们也可以用字符串提供的方法来完成字符串的格式,代码如下所示。

  1. a, b = 5, 10
  2. print('{0} * {1} = {2}'.format(a, b, a * b))

Python 3.6以后,格式化字符串还有更为简洁的书写方式,就是在字符串前加上字母f,我们可以使用下面的语法糖来简化上面的代码。

  1. a, b = 5, 10
  2. print(f'{a} * {b} = {a * b}')

发表评论

表情:
评论列表 (有 0 条评论,151人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python学习-02字符串

    字符串 所谓字符串,就是由零个或多个字符组成的有限序列,一般记为。在Python程序中,如果我们把单个或多个字符用单引号或者双引号包围起来,就可以表示一个字符串。