python文本序列类型str
str简介
Textual data in Python is handled with
strobjects, or strings. Strings are immutable sequences of Unicode code points. String literals are written in a variety of ways:
- Single quotes:
'allows embedded "double" quotes'- Double quotes:
"allows embedded 'single' quotes".- Triple quoted:
'''Three single quotes''',"""Three double quotes"""Triple quoted strings may span multiple lines - all associated whitespace will be included in the string literal.
Python中的文本数据使用str对象或字符串来处理。字符串是Unicode编码的不可变序列。字符串文本有多种写法
- 单引号:允许嵌套双引号
- 双引号:允许嵌套单引号
- 三引号:‘’‘ 三单引号’‘’ 或 “”“三双引号”“”
三重引号的字符串可以跨多行—-所有相关的空格都将包含在字符串文本中。
一些简单的实例
单引号里可以嵌套双引号,双引号里可以嵌套单引号,三引号有个功能:可以保留你多行编辑的格式
1 | |

单引号里嵌套单引号或双引号里嵌套双引号需要转义(程序需要知道边界):如下
1 | |

三引号还可以作为多行注释,如果它不出现在赋值号的右边。但显然那不是今天的重点!
转义
转义序列通常有两种功能。第一个是编码一个句法上的实体,如设备命令或者无法被字母表直接表示的特殊数据。第二种功能,也叫字符引用,用于表示无法在当前上下文中被键盘录入的字符(如字符串中的回车符),或者在当前上下文中会有不期望的含义的字符(如C语言字符串中的双引号字符”,不能直接出现,必须用转义序列表示)。
—-百度百科
常见的一些,不常用或生僻的可查用:
| 转义字符 | 意义 |
|---|---|
| \r | 光标回到行首 |
| \n | 换行 |
| \a | 响铃 |
| \\ | 代表一个反斜杠”\“ |
| \t | 水平制表(跳到下一个Tab位置) |
强制类型转换
在python中,使用 str(obj) 可以将大多数序列类型转化并得到文本序列类型str
class
str(object=’’)class
str(object=b’’, encoding=’utf-8’, errors=’strict’)Return a string version of object. If object is not provided, returns the empty string. Otherwise, the behavior of
str()depends on whether encoding or errors is given, as follows.If neither encoding nor errors is given,str(object)returnsobject.__str__(), which is the “informal” or nicely printable string representation of object. For string objects, this is the string itself. If object does not have a__str__()method, thenstr()falls back to returningrepr(object).
如上意思是str是一个类,但它可以当作函数调用,如果传过去了一个对象,就返回这个对象的字符串版本(return obj.–str–()),如果这个对象没有被提供,就返回一个空的字符串对象。
而如果传过去的对象没有字符串版本,即类中没有object.–str–() 的魔术方法,调用str(obj)就返回repr(obj)
注:repr() 函数将对象转化为供解释器读取的形式。
实例1
1 | |

可以看到想把一个对象转化并得到一个字符串来使用,但是对象没有字符串的版本,所以得到了一个生硬的repr()的返回值
1 | |

自己定义了这个对象的字符串版本(写了它的str的魔术方法),就可以转化为较友好的字符串类型,也可以直接打印大狗子这个对象,print(obj) 和 print(str(obj))的效果是一样的。
面向对象的内容本站博客持续更新,敬请期待。
实例2:伪装列表对象
有了上面的基础,结合之前喜欢用print()方法来判断一个对象的类型,决心让自己长长记性,于是决心自定义一个类,伪装下列表
1 | |

成功被蒙骗! 再确认一下吧
1 | |

原来是个自定义类的实例!
str封装的一些方法
str类里面封装了很多的方法,遍及字符串的查找,替换,读取,切片,格式等等,多使用这些str自带的方法,可以使我们的编程效率大大提升!
| 方法 | 解释 |
|---|---|
| str.capitalize() | 返回字符串的副本,其中第一个字符大写,其余字符小写 |
| str.title() | 返回字符串的标题化版本,其中单词以大写字母开头,其余字符为小写字母 |
| str.istitle() | 返回结果是布尔类型,判断字符串是否是title()的模式 |
| str.upper() | 返回字符串的副本,所有字符大写 |
| str.lower() | 返回字符串的副本,所有字符小写 |
| str.find(sub[, start[, end]]) | 返回sub在str[start:end]中匹配位置的最低索引,如果没有找到sub,返回-1 |
| str.rfind(sub[, start[, end]]) | 与find类似,返回最高索引,相当于从右侧开始查找,故障返回-1 |
| str.index(sub[, start[, end]]) | 类似于find(),只不过找不到会报一个异常 |
| str.replace(old, new[, count]) | 把字符串中的old替换为new, 如果count指定,则替换不超过count次 |
| str.encode(encoding=”utf-8”, errors=”strict”) | 以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是’ignore‘或’replace‘ |
| str.endswith(suffix[, start[, end]]) | 如果字符串以指定的后缀结尾,则返回True,否则返回False。后缀也可以是要查找的后缀元组。使用可选的start,测试从该位置开始,在可选位置结束时,停止在该位置进行比较。start和end对应str的位置,这一方法判断扩展名十分有效 |
| str.isalnum() | 如果字符串中的所有字符都是字母数字,并且至少有一个字符,则返回True,否则返回False |
| str.isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False |
| str.isdigit() | 如果字符串中的所有字符都是数字并且至少有一个字符,则返回True, 否则返回False.数字包括十进制字符和一些需要特殊处理的数字 |
| str.islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些区分大小写的字符都是小写,则返回True,否则返回 False |
| str.isnumeric() | 判断是否只包含数字字符 |
| str.isspace() | 判断字符串中是否只包含空白 |
| str.isupper() | 与islower()类似,判断大写 |
| str.strip([chars]) | 返回一个删除了前导和尾随字符的字符串副本。chars参数是一个字符串,指定要删除的字符集。如果省略或没有,chars默认是空格。chars参数不是前缀或后缀,相反,它的所有值的组合都被剥离;此方法在开发时的表单提交上频繁出现;相同逻辑,还有rstrip()和lstrip(),分别只剥离一边 |
| str.join(iterable) | iterable是一个可迭代的对象,此对象可以是列表(元素必须是字符或字符串)或字符串或其它,str是需要被加入在每次迭代所得元素之间来形成新的字符串的字符或字符串 |
| str.ljust(width[, fillchar]) | 返回一个原字符串的左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格;同理也有 str.rjust(width[, fillchar]) |
| str.count(sub[, start[, end]]) | 返回范围[start,end]中子字符串的非重叠出现次数,start,end为可选参数 |
暂时只列出了字符串的这些常用的一些方法,看了这个你会明白python为何开发效率如此之高了。
序列通用的方法和性质
序列通用:切片或下标取值等方法是序列类型通用的一些方法,还有一些内建函数(built-in)可以在序列类型中通用
相关内容将会在本站博客相继发布,敬请期待! 在分类”Python”中可便捷找到。