字符串——python基础篇

什么是字符串

字符串是容器型数据类型,将引号或者双引号作、三单(双)引号为容器的标志,元素不需要用逗号隔开:'元素1元素2...'

字符串是不可变(不支持增删改),有序的(支持下标操作)

字符串中的元素:只能是文本符号(所有计算机能表达出的符号都可以作为字符串的元素),一个符号对应一个元素。

字符串中每个独立的元素又叫字符,python中只有字符的概念,没有对应的数据类型。

  • 空串

    str1=''

    str2=""

    str3=''''''

    str4=""""""

  • 非空字符串

    str1='s'

    str2="ss"

    str3='''sss'''

    str4="""ssss"""

  • 字符串中的字符分两种:普通字符、转义字符

    • 普通字符 - 除了转义字符串一位的字符。

    • 转义字符 - 在指定符号前加\,用来表示一些特殊功能和特殊意义的符号 。

      转义字符 描述
      \\ 反斜杠符号
      \' 单引号
      \" 双引号
      \a 响铃
      \b 退格(Backspace)
      \n 换行
      \t 横向制表符
      \r 回车

      注意:计算字符串长度的时候,一个转义字符的长度为1

    • 阻止转义:在字符串的最前面加r/R,那么这个字符串中的所有转义字符都无效。

      • 应用一:windows路径
      • 应用二:正则表达式

字符编码

什么是字符编码

计算机在存储数据的时候只能存数字,而且存的是数字的补码。

为了能够让计算机存储文本数据,给每个字符关联一个固定的数字,用来对这个字符进行存储,每个字符关联的哪个数字就是这个字符这个字符的编码值。

编码表

  • ASCII码表:用1个字节来对字符进行编码(码值范围:0~127)
    • 数字在字母的前面
    • 大写字母在小写字母的前面

  • Unicode编码表:是对ASCII的扩展(Unicode编码表中包含了ASCII表中所有的字符)
  • Unicode编码表中几乎包含了世界上所有国家所有民族的字符。
  • Python提供的编码函数:
    • chr(编码) - 获取指定编码值对应的字符
    • ord(字符) - 获取指定字符的编码值

获取字符串中的元素

字符串获取元素和列表获取元素的语法一样。

# 查
# 获取单个元素
print('=' * 10, '获取单个元素', '=' * 10)
str1 = "how are you"
print(str1[2])
print(str1[-1])
s = str1[-7]
print(s)
# 切片
print('=' * 10, '切片', '=' * 10)
str_ = str1[1:5]
print(str_)
print(str1[-3:-1])
# 遍历
print('=' * 10, '遍历1', '=' * 10)
for i in str1:
    print(i)

print('=' * 10, '遍历2', '=' * 10)
for i in range(len(str1)):
    print(str1[i])

运算符的相关操作

# + *
print('xxx' * 3)
print('111'+'222')

比较两个字符串的大小:比较的是第一组不相等的字符的编码值的大小,比不出来,依次比较其他组。

str3 = 'zABC'
str4 = 'z1bcd'
print(str3 > str4)     # True

应用:

  • 判断是否是数字字符: '0' <= char <= '9'
  • 判断是否是小写字母:'a' <= char <= 'z'
  • 判断是否是大写字母:'A' <= char <= 'Z'
  • 判断是否是字母:'a' <= char <= 'z' or 'A' <= char <= 'Z'
  • 判断是否是中文字符: '\u4e00' <= char <= '\u9fa5'

相关的函数

max、min、sorted、reversed等,这些函数都适用于字符串

len(字符串) - 求字符串长度
str(数据) - 将指定数据转换成字符串。(任何类型都能转换为字符串)

相关的方法

  1. 空格处理:
    • 字符串.center():产生一个新的字符串;长度是指定的长度,原字符串在新字符串的中间,左右用指定字符填充
    • 字符串.rjust():产生一个新的字符串,长度是指定的长度,原字符串在新字符串的右边,左边用指定字符填充
    • 字符串.ljust():产生一个新的字符串,长度是指定的长度,原字符串在新字符串的左边,右边用指定字符填充
    • 字符串.zfill()==字符串.rjust(长度,'0')
    • 字符串.strip():删除两断的空白字符
    • 字符串.rstrip():删除 字符串右边的空白字符
    • 字符串.lstrip():删除 字符串左边的空白字符
  2. 替换 - 字符串.replace(old,new):将原字符串中指定的字符串替换,返回一个新的字符串。如果原字符串中不存在指定字符串,不替换
  3. 切割:
    • split() :没有指定分隔符,默认使用空格,换行等空白字符进行分隔,放回一个列表
    • split(str): 以 str为分隔符 ,str为此字符串中的元素,字符串中没有str,则不分割
    • split(str,num):以str为分割,最多分割成num+1分
    • rsplit():用法和split基本一致,只不过是从右往左分隔
    • splitlines():按照行分隔('\n',返回一个包含各行作为元素的列表。
    • partition(str):把字符串以str分割成三部分,str前,str和str后,三部分组成一个元组
    • rpartition(str): 类似于 partition()函数,不过是从右边开始
  4. 修改大小写:都是返回新的字符串
    • capitalize():首字母大写
    • titile(): 每个单词大写
    • upper():所有字母大写
    • lower():所有字母小写
  5. 计算出现次数 - count(str) :统计传入的str,在原字符串中出现了几次。
  6. 判断
    • startswith(str):检查字符串是否以 obj 开始,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
    • endswith(suffix, beg=0, end=len(string)):检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
    • isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
    • isdigit():如果字符串只包含数字则返回 True 否则返回 False
    • isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
    • isspace():如果字符串中只包含空白,则返回 True,否则返回 False
    • islower():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
  7. 查找内容
    • find(str, beg=0, end=len(string)):检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
    • index(str, beg=0, end=len(string)):跟find()方法一样,如果str不在字符串中会报错
    • rfind(str, beg=0,end=len(string)):类似于 find()函数,不过是从右边开始查找
    • rindex( str, beg=0, end=len(string)):类似于 index(),不过是从右边开始
  8. 字符串拼接 - join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

猜你喜欢

转载自www.cnblogs.com/nongma-reddy/p/13160635.html