Python之第六章 字符串操作

目录

处理字符串

如何在字符串中输入单引号

1、双引号 

 2、转义字符

3、原始字符串

 用三重引号的多行字符串

 多行注释 

 字符串下标和切片

 字符串的in和not in 操作符

 有用的字符串方法

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

upper()和lower()方法

 islower()、isupper()检测字符串是否全为小写、大写

 isX字符串方法

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

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

join()方法:

split()方法:

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

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

 项目练习:密码保管箱

项目练习:在wiki标记中添加无序列表


处理字符串

Python提供写入、打印和访问字符串的一些方法

如何在字符串中输入单引号

字符串以单引号开始和结束,但是如何在字符串中内使用单引号呢?

可以看到直接在字符串中使用单引号会报错,可使用如下方法在字符串中使用单引号:

1、双引号 

 2、转义字符

\'     单引号

\"     双引号

\n    换行符

\t     制表符

\\    反斜杠

3、原始字符串

在字符串引号之前加r,就表示原始字符串,原始字符串忽略有所的转义,打印出字符串内所有的内容。

 用三重引号的多行字符串

使用换行符可以使字符串进行换行,但是使用多行字符串换行更加直观、容易。

 必须加转义字符\n才能达到相同的效果

 否则就会报错呀

多行注释 

三重引号也可以用作多行注释

# 表示一行注释

字符串下标和切片

 spam[0:5] 包含spam[0]到spam[4]的全部内容

字符串切片并没有修改原来的字符串,但可以将切片保存在另一个变量里面

 字符串的in和not in 操作符

用in和not in连接两个字符串得到的表达式,将求值为布尔值True或False。

 有用的字符串方法

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

upper()和lower()方法

1、返回一个新的字符串,不改变原来的字符串

2、将原来字符串中所有的字母转换成大小写

3、非字母字符不变

 作用:用户输入的时候,有写用户输入大写、有些输入小写,使用upper()和lower()方法就可以同一大小写,然后带入程序进行比对。

没有加大小写转换,运行就报错

 加入大小写转换

print('How are you?')
answer=input()
if answer.lower()=='great':
    print('I feel great too')
else:
    print('I hope you happly,if you can play computergame')

 islower()、isupper()检测字符串是否全为小写、大写

1、字符串至少有一个字母

2、全为大写、小写才会返回True

大小写混合为假

 没有字母也返回False

 全大写、全小写为真

 isX字符串方法

isalpha():字符串只包含字母,非空

isalnum():只包含字母和数字,非空

isdecimal():只包含数字,非空
isspace():只包含空格、制表符、换行,非空

istitle():字符串仅包含以大写字母开头、后面都是小写字母的单词。

 作用:验证用户输入

while True:
    print('please input age')
    age=input()
    if str(age).isdecimal():
        break
    print('please input age again')
while True:
    print('please input password')
    password=input()
    if password.isalnum():
        break
    print('password can only have letters and numbers.')

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

 判断字符串开头是啥、结尾是啥

print('hello world'.startswith('hell'))
print('hello world!'.endswith('world!'))
print('abc123'.startswith('abc'))
print('abc123'.endswith('3'))
print('hello world'.startswith('hello world'))

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

join()方法:

1、在字符串上调用

2、参数是一个字符串列表

3、返回一个字符串,返回的字符串由传入的列表中每个字符串连接而成

a=['123','abc','456','def']
print('.'.join(a))
print('----'.join(a))
print('- —— -'.join(a))
print('ABC'.join(a))

split()方法:

1、针对一个字符串调用

2、返回一个字符串列表

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

就是左对齐、右对齐、居中对齐,在Word里面对齐都是空格,在Python里面可以自定义对齐填充的字符。

左对齐在字符串右面填充字符:

由于字符串a长度为11,因此会填充19个-,和9个*,本人亲数

 右对齐:

 居中对齐:

 作用:打印表格式数据,可以留出正确的空格。也可以使输出更加好看。

def printPicnic(itemsDict,l,r):
    for k,v in itemsDict.items():
        print(k.ljust(l,'.')+str(v).rjust(r))
picnicItems={'apples':4,'banana':7,'cups':9}
printPicnic(picnicItems,20,2)

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

删除字符串左边、右边或两边的空白字符(空格、制表符\t、换行符\n)

strip()返回一个新的字符串

rstrip()和lstrip()在原字符串上操作,删除左边或右边的空白字符

 这些方法有个可选的字符串参数,指定两边的那些字符应该删除。

可以看到删除了字符串两边的123,也可以看到,与传入的字符串的顺序无关。

 用pyperclip模块拷贝粘贴字符串

 pyperclip模块有copy()和paste()函数,就是电脑上的复制粘贴,可以向计算机的剪贴板发送文本,或者从剪贴板接收文本。

如果程序之外的某个程序改变了剪贴板的内容,paste()函数就会返回它。我直接在电脑上复制一段话,调用paste()方法,就会直接返回复制的话:

 

 项目练习:密码保管箱

#! python3
# pw.py -An insecure password locker program
import sys,pyperclip
PASSWORD={'email':'123456','blog':'shy014','luggage':'qwer1234'}
if len(sys.argv)<2:
	print('Usage:py -3 pw.py [account] - copy account password')
	sys.exit()

account=sys.argv[1]

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

 注意:1、sys.argv[0]是程序的名称,在这个程序中就是pw.py

项目练习:在wiki标记中添加无序列表

就是将你复制下的东西,变成无序列表(每行前面加*号),然后再复制到剪贴板中。

#! python3
# bulletPonitAdder.py - Adds * in every line heads

import pyperclip
text=pyperclip.paste()

lines=text.split('\n')
for i in range(len(lines)):
	lines[i]='*'+lines[i]
text='\n'.join(lines)
print(text)
pyperclip.copy(text)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值