《Python编程快速上手》读书笔记6:字符串操作(一)

本系列笔记只记录python3和C语言的差异之处

1 处理字符串

1.1 字符串字面量
正常情况下字符串以单引号开始单引号结束,那如果要在字符串中输入单引号呢?比如:‘that is Alice’s cat’。这就需要其它几种方法来输入字符串。

>>> 'that is Alice's cat'
SyntaxError: invalid syntax

1.2 双引号
也可以在用双引号输入字符串,这样就可以在字符串中使用单引号,而不会引起歧义。

>>> "that is Alice's cat"
"that is Alice's cat"

那如果字符串中双引号和单引号都需要呢?那就需要用到转义字符。
1.3 转义字符
这一点和C语言无差异。对于python中有特殊含义的字符,可以使用倒斜杠(\)取得它的本来含义。

>>> 'that is Alice\'s cat'
"that is Alice's cat"

1.4 原始字符串
可以在字符串前面添加r,使其成为原始字符串,忽略所有的转义字符,这个在正则表达式中常用。

>>> print(r'that is Alice\'s cat')
that is Alice\'s cat

1.5 用三重引号的多行字符串
多行字符串的起止可以是三个连续的单引号或双引号,三重引号之间的所有引号、制表符或换行,都会被认为是字符串的一部分,且python的代码缩进规则不适用于多行字符串。
下面这两段代码的执行效果是一样的

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat burglary, and extortion.\n\nSincerely,\nBob')

执行效果

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob

1.6 多行注释
python中可以用三重引号来做多行注释,对应C语言中的/*和*/

''' this is a test python program
    written by XXX
'''
print('hello world!')

1.7 字符串下标和切片
1.8 字符串的in和not in操作符
这两小节已经在前面的列表中记录过了。
《Python编程快速上手》读书笔记4:列表(二)

2 有用的字符串方法

2.1 upper()、lower()、isupper()和islower()

  • upper():将字符串中的所有字母转化为大写,返回一个新的字符串
  • lower();将字符串中的所有字母转化为小写,返回一个新的字符串
  • isupper():判断字符串中的字母是否全是大写字母,返回布尔值
  • islower():判断字符串中的字母是否全是小写字母,返回布尔值
>>> print('Han Chen'.upper())
HAN CHEN
>>> print('Han Chen'.lower())
han chen
>>> print('Han Chen'.upper().lower())
han chen
>>> print('Han Chen 1'.upper())
HAN CHEN 1
>>> 'Han Chen'.isupper()
False
>>> 'Han Chen'.upper().isupper()
True
>>> 'Han Chen'.islower()
False
>>> 'Han Chen'.lower().islower()
True
>>> 'abcd1234'.islower()
True

2.2 is系列方法

  • isalpha():如果字符串只包含字母,并且非空,返回True
  • isalnum():如果字符串只包含字母和数字,并且非空,返回True
  • isdecimal():如果字符串只包含数字字符,并且非空,返回True
  • isspace():如果字符串只包含空格、制表符和换行,并且非空,返回True
  • istitle():如果字符串只包含以大写字母开头,后面都是小写字母的单词,返回True
>>> 'hanchenchen'.isalpha()
True
>>> 'hanchenchen123'.isalnum()
True
>>> '123456'.isdecimal()
True
>>> ' '.isspace()
True
>>> 'This Is Cat Case'.istitle()
True
>>> 'This Is Cat case'.istitle()
False

用is系列方法验证用户输入

while True:
    age = input('Enter your age:')
    if age.isdecimal():
        break
    print('please enter a number for your age')
while True:
    password = input('select a new password(letters and numbers only):')
    if password.isalnum():
        break
    print('password can only have letters and numbers only')

执行效果
在这里插入图片描述
2.3 startswith()和endswith()
startswith()和endswith(),如果所调用的字符串以传入的字符串为开始或结尾,返回True

>>> 'han chen chen!'.startswith('han')
True
>>> 'han chen chen!'.startswith('chen')
False
>>> 'han chen chen!'.endswith('chen!')
True
>>> 'han'.startswith('han')
True
>>> 'han'.endswith('han')
True

2.4 join()和split()

  • join():将一个字符串列表用调用对象连接起来
  • split():将调用对象用入参分割成字符串列表,默认以空白字符分割
>>> ','.join(['my', 'name', 'is', 'chen'])
'my,name,is,chen'
>>> ' '.join(['my', 'name', 'is', 'chen'])
'my name is chen'
>>> '#'.join(['my', 'name', 'is', 'chen'])
'my#name#is#chen'
>>> 'my,name,is,chen'.split(',')
['my', 'name', 'is', 'chen']
>>> 'my name is chen'.split()
['my', 'name', 'is', 'chen']
>>> 'my#name#is#chen'.split('#')
['my', 'name', 'is', 'chen']

2.5 对齐文本
用rjust()、ljust()和center()方法将调用字符串右对齐、左对齐和中心对齐,第一个参数为长度,第二个参数为填充字符,默认为空格

>>> 'hanchen'.rjust(10)
'   hanchen'
>>> 'hanchen'.rjust(10, '#')
'###hanchen'
>>> 
KeyboardInterrupt
>>> 'hanchen'.ljust(20, '#')
'hanchen#############'
>>> 'hanchen'.center(20, '#')
'######hanchen#######'

2.6 删除空白字符
用strip()、rstrip()和lstrip()方法删除两边、右边和左边的空白字符(空格、制表符和换行符),也可以以可选参数删除,可选参数可为多个字符,不关注顺序

>>> spam = '    hanchen    '
>>> spam.strip()
'hanchen'
>>> spam.rstrip()
'    hanchen'
>>> spam.lstrip()
'hanchen    '
>>> spam = '###hanchen###'
>>> spam.strip('#')
'hanchen'
>>> spam = '#132*hanchen**12'
>>> spam.strip('123#*')
'hanchen'

2.7 用pyperclip()模块拷贝粘贴字符串
pyperclip模块不是python自带,需要单独安装。可以在命令行中用pip命令安装pyperclip,国内上pip默认源可能会有点慢,建议安装时带-i参数换成清华大学的pip源,是官网pypi的镜像,每5分钟更新一次。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyperclip

在这里插入图片描述

  • copy():向剪贴板发送一段内容
  • paste():接受剪贴板的内容
>>> import pyperclip
>>> pyperclip.copy('hanchenchen')
>>> pyperclip.paste()
'hanchenchen'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值