Python 字符串,python字符串,未经作者许可,禁止转载!
Python 字符串,python字符串,未经作者许可,禁止转载!
本文作者: 编橙之家 - Yusheng 。未经作者许可,禁止转载!欢迎加入编橙之家 专栏作者。
所有用过 Python (2&3)的人应该都看过下面两行错误信息:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte
这就是 Python 界的”锟斤拷”!
今天和接下来几期的内容将主要关注 Python 中的字符串(str
)、字节(bytes
)及两者之间的相互转换(encode
/decode
)。也许不能让你突然间解决所有乱码问题,但希望可以帮助你迅速找到问题所在。
定义
Python 中对字符串的定义如下:
Textual data in Python is handled with
str
objects, or strings. Strings are immutable sequences of Unicode code points.
Python 3.5 中字符串是由一系列 Unicode 码位(code point)所组成的不可变序列:
Python('S' 'T' 'R' 'I' 'N' 'G')
'STRING'
不可变是指无法对字符串本身进行更改操作:
s = 'Hello' print(s[3]) s[3] = 'o'
l --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in () 1 s = 'Hello' 2 print(s[3]) ----> 3 s[3] = 'o' TypeError: 'str' object does not support item assignment
而序列(sequence)则是指字符串继承序列类型(list/tuple/range
)的通用操作:
[i.upper() for i in "hello"]
['H', 'E', 'L', 'L', 'O']
至于 Unicode 暂时可以看作一张非常大的地图,这张地图里面记录了世界上所有的符号,而码位则是每个符号所对应的坐标(具体内容将在后面的几期介绍)。
s = '雨' print(s) print(len(s)) print(s.encode())
雨 1 b'xe9x9bxa8'
常用操作
len
:字符串长度;split
&join
find
&index
strip
upper
&lower
&swapcase
&title
&capitalize
endswith
&startswith
&is*
zfill
# split
Hello,world! ['https:', '', 'github.com/rainyear/pytips']
s = "coffee" print(s.find('f')) # 从左至右搜索,返回第一个下标 print(s.rfind('f')) # 从右至左搜索,返回第一个下表 print(s.find('a')) # 若不存在则返回 -1 print(s.index('a')) # 若不存在则抛出 ValueError,其余与 find 相同
2 3 -1 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) in () 4 5 print(s.find('a')) # 若不存在则返回 -1 ----> 6 print(s.index('a')) # 若不存在则抛出 ValueError,其余与 find 相同 ValueError: substring not found
print(" hello world ".strip()) print("helloworld".strip("heo")) print("["+" i ".lstrip() +"]") print("["+" i ".rstrip() +"]")
hello world lloworld [i ] [ i]
print("{}n{}n{}n{}n{}".format( "hello, WORLD".upper(), "hello, WORLD".lower(), "hello, WORLD".swapcase(), "hello, WORLD".capitalize(), "hello, WORLD".title()))
HELLO, WORLD hello, world HELLO, world Hello, world Hello, World
print(""" {}|{} {}|{} {}|{} {}|{} {}|{} {}|{} """.format( "Python".startswith("P"),"Python".startswith("y"), "Python".endswith("n"),"Python".endswith("o"), "i23o6".isalnum(),"1 2 3 0 6".isalnum(), "isalpha".isalpha(),"isa1pha".isalpha(), "python".islower(),"Python".islower(), "PYTHON".isupper(),"Python".isupper(), ))
True|False True|False True|False True|False True|False True|False
"101".zfill(8)
'00000101'
format
/ encode
格式化输出 format
是非常有用的工具,将会单独进行介绍;encode
会在 bytes-decode-Unicode-encode-bytes
中详细介绍。
打赏支持我写出更多好文章,谢谢!
打赏作者
打赏支持我写出更多好文章,谢谢!
相关内容
- Python 字符串的格式化,python字符串,未经作者许可,禁
- 探索 Python(3): 探索 Python 类型的层次结构 —— 使用
- Python 字符编码实例,python编码实例,[Python]代码#c
- python将字符串转换为字节数组,python数组,#!/usr/bin/p
- python使用rstrip()函数移除行末空白字符,pythonrstrip,pyt
- python判断字符串中是否只有ASCII编码字符,pythonascii,下
- python用多个分隔符拆分字符串,python分隔符,如下代码,
- python常见的字符串操作,python字符串,下面列出了常用的
- python字符串方法总结,python字符串总结,python的字符串模
- python实现substring截取子字符串,pythonsubstring,python中没有
评论关闭