Python数据结构-字符串

  • 字符串是python中非常常见的一种数据类型,字符串是由单独的字符组成的一个序列,通常用‘’,“”,“”“ ”“”,来扩起来,当然这三种写法的方式都是一样的,
  • python中常用 反斜杠 \ 作为转义字符,通常\' \" \n \t ,其中 \n  是换行符,表示一个字符,所以下面示例中字符串长度是6

Python数据结构-字符串_第1张图片

  • 字符串的常用操作

可以将字符串看作是单个字符组成的数组,所以python字符串支持 索引、切片、步长切片 和遍历操作,但是python的字符串是不可变的数据类型,所以不能改变字符串内部的元素

Python数据结构-字符串_第2张图片

  • python字符串拼接

python字符串是不可变数据类型,但是要想改变python字符串,可以通过拼接+、或者join函数来实现,这样的实现方式是重新创建了一个新的字符串,而不是对原来字符串做了改变

Python数据结构-字符串_第3张图片

Python数据结构-字符串_第4张图片

  • python 字符串操作

‘sep’ . join(number)    

       将字符串、列表、元祖、字典中的元素按照指定的分隔符 sep 连接返回一个新的字符串 string,其中,字符串中的每一个元素是单个字符,列表、元祖的单个元素是逗号隔开的元素,字典是以key值作为连接

       分隔符 sep 可以为空

os.path.join(num1,num2,num3)

   其中:windows上默认会用\连接 ,linux 、mac 上默认会用 / 连接

Python数据结构-字符串_第5张图片

string.split(str,num) ,拆分字符串,使用指定的分隔符对字符串进行切片,并返回分割之后的字符串列表 list

     str表示分隔符,默认为空格,但是不能为空(‘’),若字符串中没有分隔符,将把整个字符串当做列表中的一个元素

    num表示分隔的次数,默认分隔0次

os.path.split(),按照路径(/--linux, \ --windows),将路径和文件名分隔开

Python数据结构-字符串_第6张图片

str.strip()    去除字符串前后的空格

str.lstrip()   去除字符串左边的空格

str.rstrip()   去除字符串右边的空格

Python数据结构-字符串_第7张图片

  • python运算符

% 取余

// 取整

Python数据结构-字符串_第8张图片


字符串是不可变的序列数据类型,不能直接修改字符串本身,

虽然字符串本身不可变,但可以像列表序列一样,通过方括号加下标的方式,访问或者获取它的子串,当然也包括切片操作。这一切都不会修改字符串本身,当然也符合字符串不可变的原则。

>>> a = "haha"
>>> a[1] = "z"
Traceback (most recent call last):
  File "", line 1, in 
    a[1] = "z"
TypeError: 'str' object does not support item assignment

类型错误:字符串类型不支持元素(项目)赋值
  • 字符串常见运算

下表实例变量a值为字符串 "Hello",b变量值为 "Python"Python数据结构-字符串_第9张图片

  • 字符串常用内置方法
*  string.encode() # 编码成bytes类型
* string.find() # 查找子串
* string.index() # 获取下标
* string.replace() # 替换子串
* len(string) # 返回字符串长度,Python内置方法,非字符串方法。
* string.lower() # 小写字符
* string.upper() # 大写字符
* string.split() # 分割字符串
* string.strip() # 去除两端的指定符号
* string.startswith() # 字符串是否以xxx开头
* string.endswith() # 字符串是否以xxx结尾
*  string.isalnum()	如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回
False
*  string.isalpha()	如果 string 至少有一个字符并且所有字符都是字母则返回True,否则返回False
*  string.isdigit()	如果 string 只包含数字则返回 True 否则返回 False.



>>> m
'abc'
>>> m
'abc'
>>> m.encode()
b'abc'
>>> m.find('a')
0
>>> m.find('c')
2
>>> m.index('c')
2
>>> m.replace('a','A')
'Abc'
>>> len(m)
3
>>> m.upper()
'ABC'
>>> m.lower()
'abc'
>>> m.startswith('a')
True
>>> m.endswith('c')
True
>>> m.strip()
'abc'
>>> m.split()
['abc']
>>> n="abc123"
>>> n.isalnum()
True
>>> n.isalpha()
False
>>> m.isalpha()
True
>>> m.isdigit()
False
  • 字符串格式化
简单的format格式化方法基本有两类:

1.{0}、{1}、{2}:这一类是位置参数,引用必须按顺序,不能随意调整,否则就乱了。例如:

tpl = "i am {0}, age {1}, really {0}".format("seven", 18)

2.{name}、{age}、{gender}:这一类是关键字参数,引用时必须以键值对的方式,可以随意调整顺序。例如:

tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
  • python字符编码
  • 1、ASCII编码:早期专门为英语语系编码,只有255个字符,每个字符需要8位也就是1个字节。不兼容汉字。

  • 2、Unicode编码:又称万国码,国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。用2个字节来表示汉字。

  • 3、UTF-8编码:为了节省字节数,在Unicode的基础上进行优化的编码。用1个字节表示英文字符,3个字符表示汉字。天生兼容ASCII编码,所以最为流行。

  • 操作系统运行时,在内存中,统一使用的都是Unicode编码,当需要将数据保存到硬盘或者网络传输的时候,就转换为UTF-8编码,进行保存和传输。

  • 用文本编辑器的时候,从文件系统或者说硬盘上读取的UTF-8编码字符被转换为Unicode字符到内存里,供程序或者操作系统使用。编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

  • 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8传输到客户的浏览器。


 

你可能感兴趣的:(python3)