《Python编程快速上手》(六)Python字符串操作

第六章   字符串操作

6.1 处理字符串

6.1.1 字符串字面量

6.1.2 双引号

  • 在字符串中既要使用单引号又要使用双引号时,就要使用转义字符

6.1.3 转义字符

表 6-1   转义字符

转义字符

打印

\’

单引号

\”

双引号

\t

制表符

\n

换行符

\\

倒斜杠

6.1.4 原始字符串

  • 在字符串开始的引号前加上r,使其成为原始字符串
  • 原始字符串将忽略全部转义字符

6.1.5 用三重引号的多行字符串

  • 多行字符串的起止是3个单引号或3个双引号
  • “三重引号”之间的所有引号、制表符和换行,都被认为是该字符串的一部分
  • Python代码块缩进规则不适用于多行字符串

《Python编程快速上手》(六)Python字符串操作_第1张图片

6.1.6 多行注释

#打印出单词"Hello World"
print("Hello World")
'''
这是注释
'''
print("Hello Python")
 
"""
这也是注释
"""

  • 注释不能写在代码行的后面,会报语法错误。可跨行但开始时应独立成行书写。这一点与C不同。以上写法中,只有第三种正确。

  • 但如果采用#的注释方法,则可以在代码行后直接注释。但此时并不支持跨行注释。

6.1.7 字符串下标和切片

  • 应用:求子串

《Python编程快速上手》(六)Python字符串操作_第2张图片

6.1.8 字符串的 in 和 not in 操作符

  • 测试第一个字符串(精准匹配,区分大小写)是否在第二个字符串中

《Python编程快速上手》(六)Python字符串操作_第3张图片


6.2 有用的字符串方法

6.2.1 字符串方法upper()、lower()、isupper() 和 islower()

  • upper()、lower() 将返回一个新字符串(不改变原有字符串),所有字母被转换为大写或小写,非字母字符保持不变
  • 若字符串至少有一个字母,并且所有字母都是大写或小写,isupper() 和 islower() 将返回相应的True。否则,返回False。

《Python编程快速上手》(六)Python字符串操作_第4张图片

6.2.2 isX 字符串方法

  • isalpha() 返回 True,如果字符串只包含字母,且非空
  • isalnum() 返回 True,如果字符串只包含字母和数字,且非空
  • isdecimal() 返回 True,如果字符串只包含数字,且非空
  • isspace() 返回 True,如果字符串只包含空格、制表符和换行,且非空
  • istitle() 返回 True,如果字符串只包含以大写字母开头、后面全是小写字母的单词

《Python编程快速上手》(六)Python字符串操作_第5张图片

6.2.3 字符串方法 startswith() 和 endswith()

《Python编程快速上手》(六)Python字符串操作_第6张图片

  • startswith() 和 endswith()返回True,如果它们所调用的字符串以该方法传入的参数(字符串)为开始或结束,否则,返回False

6.2.4 字符串方法 join() 和 split()

  • join() 在一个字符串上调用参数是一个字符串列表返回由参数中每个字符串连接而成的字符串
  • 调用 join() 的字符串被插入到列表参数的每个字符串中间

《Python编程快速上手》(六)Python字符串操作_第7张图片

  • split() 针对一个字符串调用返回字符串列表
  • 默认情况下,调用split()的字符串按照各种空白符号(空格、制表符、换行符)分割,空白符号并不包含在返回的字符串列表中
  • 可向split()传入一个分割字符串

《Python编程快速上手》(六)Python字符串操作_第8张图片

6.2.5 用 rjust()、ljust() 和 center() 方法对齐文本

  • rjust() 右对齐,左边为填充字符,          参数1:总长度       参数2:填充字符,取代空格
  • ljust() 左对齐,右边为填充字符,          参数1:总长度       参数2:填充字符,取代空格
  • center() 居中对齐,两边为填充字符,   参数1:总长度       参数2:填充字符,取代空格

《Python编程快速上手》(六)Python字符串操作_第9张图片

def printPic(item,leftWid,rightWid):
    print('PICNIC ITEMS'.center(leftWid+rightWid,'-'))
    for i,j in item.items():
        print(i.ljust(leftWid,'.')+str(j).rjust(rightWid,'.'))

picItems = {'sandwiches':4,'apple':12,'cup':4,'cookies':800}
printPic(picItems,12,5)
printPic(picItems,20,10)

《Python编程快速上手》(六)Python字符串操作_第10张图片

6.2.6 用 strip()、rstrip() 和 lstrip() 删除空白字符

  • strip():删除两边(开头和结尾)   rstrip() :删除右边     lstrip() :删除左边
  • 可选字符串参数:指定删除那些字符(与顺序无关,不是字符串)

《Python编程快速上手》(六)Python字符串操作_第11张图片

《Python编程快速上手》(六)Python字符串操作_第12张图片

6.2.7 用 pyperclip 模块拷贝粘贴字符串


《Python编程快速上手》(六)Python字符串操作_第13张图片

《Python编程快速上手》(六)Python字符串操作_第14张图片

《Python编程快速上手》(六)Python字符串操作_第15张图片

6.3 项目:口令保管箱

第1步:程序设计和数据结构

第2步:处理命令行参数

第3步:复制正确的口令

#! python3
# pw.py - An insecure password locker program.

PASSWORD = {'email':'uefbjwuyr487u348wahe829efaiui',
	    'blog':'fwiuehq89q2euj920qeioqw',
	    'luggage':'12345'}
import sys
if len(sys.argv) < 2:
	print('Usage: python pw.py [account] - copy account password')
	sys.exit()
account = sys.argv[1]

if account in PASSWORD:
	pyperclip.copy(PASSWORD[account])
	print('Password for '+account+' copied to clipboard.')
else:
	print('There is no account named '+account)

6.4 项目:在 Wiki 标记中添加无序列表

第1步:从剪贴板中复制和粘贴

第2步:分离文本中的行,并添加星号

第3步:连接修改过的行

#! python3

import pyperclip
text = pyperclip.paste()

lines = text.split('\n')
for i in range(len(lines)):
    lines[i] = '* ' + lines[i]
text = '\n'.join(lines)
pyperclip.copy(text)
  • 复制以下内容:

第六章   字符串操作

6.1 处理字符串

6.1.1 字符串字面量

6.1.2 双引号

  • 运行Python脚本:

  • 粘贴得到结果:

* 第六章   字符串操作

* 6.1 处理字符串

* 6.1.1 字符串字面量

* 6.1.2 双引号


6.5 小结

6.6 习题

《Python编程快速上手》(六)Python字符串操作_第16张图片

《Python编程快速上手》(六)Python字符串操作_第17张图片


6.7 项目实践

表格打印

 

 

你可能感兴趣的:(OpenCV-Python)