Python之字符串

Python之字符串

字符串创建

字符串类型是Python里面最常见的类型
可以简单地通过在引号间(单引号/双引号/三引号)包含字符的方式创建它
在这里插入图片描述

三重引号的作用

作用一:进行多行注释

"""

这是多行注释第一行

多行注释第二行
多行注释第三行
"""

作用二:定义多行字符串

print('''hello
python
world''')

测试结果

hello
python
world

字符串删除

字符串是不可变的,只能通过赋一个空字符串或者使用del语句来清空或者删除一个字符串。但是没有必要显示的删除字符串,定义这个字符串的代码结束时会自动释放这些字符串。

>>> string="I love python"
>>> string
'I love python'
>>> del string
>>> string
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'string' is not defined

(出现error是因为此时string已经被删除)

连接操作符(’+’)

从原有字符串获得一个新的字符串

print('hello'+'world')
print('hello '+' world')

测试

helloworld
hello  world

重复操作符

创建一个包含了原有字符串的多个拷贝的新串

print('&'*10 + '学生管理系统' + '&'*10)
print ('$'*30+'hello')

测试

&&&&&&&&&&学生管理系统&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$hello

计算长度

astring='hello '
print(len(astring))

字符串的索引

索引(s[i] ):获取特定偏移的元素(str[0]即为偏移为0位,即第一个元素)

  1. 正向索引
  2. 反向索引
str='abd sdjfn lkdn'
print(str[0])
print(str[3])
print(str[5])
print(str[-1])

测试

6
a
 
d
n

字符串的切片

  1. 切片S[i:j]提取对应的部分作为一个序列:
  2. 如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;
    扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
  3. s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法;
  4. s[::-1]是实现字符串反转的一种方法;
# 切片(获取多个值)=====range(start,end) 从start开始到end-1结束
str='abcd hello world jjj'
print(str[0:2])  # 获取前2个元素
print(str[:2])  # 获取前2个元素, 如果start没有指定, 默认从头开始
print(str[0:3])  # 获取前3个元素
print(str[:3])  # 获取前3个元素

print(str[2:4])  # 获取除了前2个元素
print(str[2:])  # 获取除了前2个元素, 如果end没有指定, 则到末尾

#
print(id(str))
copyStr = str[:]
print(id(copyStr))

print(str[::2])     # 间隔为2显示字符串
print(str[::-1])    # 翻转字符串

测试

ab
ab
abc
abc
cd
cd hello world jjj
4538571704
4538571704
ac el ol j
jjj dlrow olleh dcba

成员操作符

成员操作符用于判断一个字符或者一个子串(中的字符)是否出现在另一个字符串中。出现则返回 True,否则返回 False.

# 成员操作符
print('he' in 'hello')   # True
print('ho' in 'hello')  # False
print('ho' not in 'hello')  # True
print('he' not in 'hello')

字符串的判断

str='Wnndsf11'
print(str.isalnum())#True
print(str.isnumeric())#False
print(str.isalpha())#False
print(str.istitle())#True
print(str.islower())#False
print(str.isdigit())#False

字符串的转换

str="hEkjsbj ag"
print(str.capitalize())
print(str.title())
print(str.upper())
print(str.lower())
print(str.swapcase())

测试

Hekjsbj ag
Hekjsbj Ag
HEKJSBJ AG
hekjsbj ag
HeKJSBJ AG

字符串的开头和结尾匹配

url1="file:///mnt"
url2="ftp:///..."
url3="http:///..."

if url1.startswith("http://"):
    print("爬取网页。。。")
else:
    print("不爬取网页")

if url3.startswith(("http://")):
    print("success")
else:
    print("fail")

测试

不爬取网页
success

字符串的数据清洗

str=' i love python '
print(str.strip())#去除字符串两边的空格
print(str.lstrip())#去除字符串左边的空格
print(str.rstrip())#去除字符串右边的空格
print(str.replace("python","C"))#字符串替换
print(str.replace(" ",""))#去除字符串中所有空格

测试

i love python
i love python 
 i love python
 i love C 
ilovepython

字符串的搜索&统计

  • find
s='I love Python this summer'
print(s.find('6'))#find中如果不包括索引值,返回-1
print(s.find('P',6))#find返回的都是索引值
print(s.find('s',4))
print(s.find('s',18))

测试

-1
7
17
19
  • index
s='I love Python this summer'
print(s.index('6'))

print(s.index('P',6))

测试

ValueError: substring not found

7
  • count
print(s.count("o")

测试

2

字符串的分离

# 分割
ip = '172.25.254.250'
# 以.为分隔符进行分割;
print(ip.split('.'))  # ['172', '25', '254', '250']
#  以.为分隔符进行分割;最多切割1次;
print(ip.split('.', maxsplit=1))    # ['172', '25.254.250']

filename = 'hello.py'
print(filename.split('.'))

# 按行进行分割
info = """

user1: user1
user2: user2
user3: user3
user4: user4
"""
# 以空格(\t, \n, \ )进行分割
print(info.split())
# 以\n进行分割;
print(info.splitlines())

测试

['172', '25', '254', '250']
['172', '25.254.250']
['hello', 'py']
['user1:', 'user1', 'user2:', 'user2', 'user3:', 'user3', 'user4:', 'user4']
['', '', 'user1: user1', 'user2: user2', 'user3: user3', 'user4: user4']

字符串的拼接

# 组合
ips = ['172', '25', '254', '250']
# 将ips里面的每个元素拼接在一起, 拼接符为.print(".".join(ips))
print("-".join(ips))

测试

172.25.254.250
172-25-254-250
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值