美文网首页
python笔记(五)数据类型 - 字符串

python笔记(五)数据类型 - 字符串

作者: 艺术家可达鸭 | 来源:发表于2018-12-15 19:15 被阅读0次
'hello'*3 # 重复 hello 三次
'hello' + 'world' # 连接字符串

('hello'  # 字符串分行
'world')
str(obj)  # 调用对象的 __str__ 方法,返回一个字符串

原始字符串

ASCII 中的字符和 RE 中的特殊字符可能出现冲突,比如\b在ASCII中表示退格,在 RE 中表示单词边界。
为了让 python 不将\b作为退格,RE 中使用\\b\\\转化为普通字符,这样 python 就不会去转义字符 b 了,而 RE 就会来解释这个\b
所以 RE 中表示一个普通\,需要使用\\\\
原始字符串就是希望 python 不解释\,所有\都是普通字符,而这个普通字符会被 RE 解释。
r'\\'表示两个 ASCII 中的普通字符\

有一个情况很奇怪,如果我希望字符串中的所有\都是普通字符,r'C:\Users\kinux\Music\music\',这是有问题的。最后一个\会转义',不清楚为什么。所以正确的写法是C:\\Users\\kinux\\Music\\music\\,不使用原始字符串。

字符串格式化与拼接

C语言风格的格式化

虽然这种风格已经不推荐使用了,但是在别的语言中还会遇到,而且我不熟练,所以记一下

# 只需要记得常用的 %d,%s,%f 即可,这里用 %s 举例
# 保留小数点后 4 位,不够的用 0 补足,超过的话就四舍五入
print("%.*f" % (4, 1.2))
# 保留小数点后 4 位;字符串总长度 10,不够在左边用空格补足,超过的话不会截断
print("%10.4f" % (1.234567))

rjust/ljust/center

# 把字符创扩充到 20 个字符,不够的用 = 补足,超过的话不会截断;原字符串位于新子串的右边
'hello'.rjust(20,'=')
# '===============hello'

format方法格式化

format 可以接受任意类型的参数,但返回的一定是字符串
两个{,两个%,可以用来转义,比如{{表示一个没有特殊意义的{

# 简单用法
name='Jerry'
age=12
print('{},{}'.format(name,age))
print('{0[1]},{0[2]}'.format([name,age]))
print('{name},{age}'.format(name=name,age=age))

# 数字精度与进制
print('{:.2f}'.format(31.31412))
# 以二进制的形式打印
# 如果不加#,字符串开头就不会有 0b
print('{:#b}'.format(23))
# 八进制、十进制、十六进制分别是 o、d、x

# 对齐
# 中间对其,字符串总长度 10
print('{:^10}'.format('abc'))
# 左对齐,用 =,而不是空白来填充
print('{0:=<10}'.format(1.234))

# 其它
# 给数字加千位分隔符,每三个数字加一个逗号,用在表示金额的数字上
print('{:,}'.format(123456789))
# 转换成百分比,保留四位小数
print('{:.4%}'.format(0.1))

字符串拼接

  • +:用于最简单的字符串连接
  • join(seq) 方法:以指定字符串作为分隔符,将 seq 中所有的元素合并为一个新的字符串
  • format 方法

字符串搜索与替换

这些方法都不支持正则表达式

endswith(suffix, beg=0, end=len(string)) # 返回的是一个 bool
startswith(str, beg=0,end=len(string))
find(str, beg=0 end=len(string)) # 存在则返回下标,不存在返回 -1
rfind(str, beg=0,end=len(string)) # 同上,但是是从右边开始搜索
index(str, beg=0, end=len(string)) # 同上,但是不存在则抛出异常
rindex( str, beg=0, end=len(string))
count(str, beg= 0,end=len(string)) # 返回指定字符串出现的次数
replace(old, new [, max])

字符串判断与转换

# 这些判断都要求字符串长度大于 0,否则直接返回 False
isspace()
islower()
isupper()
isalpha() # 字母
isdigit() # 数字
isalnum() # 字母或数字

split(str="", maxsplit=-1) # maxsplit表示要做几次分割,比如做一次,则会把原字符串切成两个
# 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
splitlines([keepends])
upper()
lower()
strip()  # 去字符串首尾空格
lstrip()
rstrip()

encode('utf8') # 用 utf8 把字符串编码成字节(Bytes 类型对象)
# 用 Bytes 类型对象的 decode 方法可还原

相关文章

  • Python源码剖析笔记4-内建数据类型

    Python源码剖析笔记4-内建数据类型 Python内建数据类型包括整数对象PyIntObject,字符串对象P...

  • 6.Python基础数据类型之字符串

    Python基础数据类型之字符串 字符串(str)字符串是 Python 中最常用的数据类型。使用引号('或")来...

  • python基础知识

    Python有五个标准的数据类型: Numbers(数字),String(字符串),List(列表),Tuple(...

  • Python变量

    Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(...

  • python随手整理

    Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(...

  • Python相关题-字符串

    数据类型 - 字符串 19. 列举Python中的基本数据类型? 答:Python3中有六个标准的数据类型:字符串...

  • Json

    json.loads() :将字符串转换为Python数据类型json.dumps() :将Python数据类型转...

  • Python控制流

    最近几周学习了Python的数据类型,今天就来说说Python的控制流 回顾:Python数据类型 字符串 数字 ...

  • python基础-列表 元组 集合 字典区别和用法

    1 python数据类型 Python中有六个标准的数据类型:Number(数字),String(字符串),Lis...

  • Python 学习总结——字符串

    1 Python 字符串的 CRUD 操作 1.1 创建字符串 字符串是 Python 中最常用的数据类型。我们可...

网友评论

      本文标题:python笔记(五)数据类型 - 字符串

      本文链接:https://www.haomeiwen.com/subject/cnoahqtx.html