python中str用法,跟运维组学Python基础day04
python中str用法,跟运维组学Python基础day04s = 'ZanaoTMDsb'not in 不在在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。成员运算in 在
内容回顾
跟运维组学Python基础 day03
格式化输出 %s
name = input('Pleases input your name: ') # Zanao
print('My name is %s'%(name))
# My name is Zanao
%是占位符 s指的是str 就是用str字符串来进行替换 位置一一对应
逻辑运算
在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
成员运算
in 在
not in 不在
s = 'ZanaoTMDsb'
print('TMD'not in s) # 判断TMD不在s中
# 输出结果
False
比较运算
等于 == 不等于 != 大于 > 小于 < 大于等于 >= 小于等于 <=
编码
GBK国标 英文: 1个字节 中文: 2个字节
Unicode万国码 英文: 2个字节 中文: 4个字节
UTF-8 英文: 1个字节 欧洲: 2个字节 亚洲: 3个字节
今日内容
str字符型的索引(重点)1. 索引:
索引就是下标. 切记 下标从0开始。
起始位置下标是0(从左到右),-1(从右到左)
name = 'zanao'
左 ➡️右 01234
name = 'z a n a o'
左 ⬅️右-5-4-3-2-1
从左到右:z的索引位0 a的索引位1 n的索引位2
从右到左:z的索引位-5 a的索引位-4 n的索引位-3 。。。 o的索引位-1 切记:右到左是从-1开始
print(name[2])
结果:n
print(name[-3])
结果:n
2.切片:
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串
原则:顾头不顾尾
语法:str[start:end]
name = 'hello'
name1 = name[:3]
print(name1) #输出结果:hel 根据顾头不顾尾原则后面的l被丢弃
2.1按着顺序切(从左到右 或 从右到左)
2.2跳着截取
步长: 如果是整数 则从左往右取. 如果是负数. 则从右往左取. 默认是1
切片语法:
Str[start:end:step]
Start:起始位置 end:结束位置 step:步长
识记点
- 切片如果终止位置超出了范围不报错print(name[0:100])不报错
- 索引取值的时候超出了索引的范围会报错print(name[100])报错原因:取不到100索引的值
- 字符串,列表,元组 -- 都是有索引(下标)
- 索引是准确的定位某个元素
- 从左向右 0 1 2 3
- 从右向左 -1,-2,-3,-4
- 支持索引的都支持切片 [索引]
4.2字符串的操作
upper (全部大写)
name = "zanao"
name1 = name.upper()
print(name1)
# 输出结果
# ZANAO
lower (全部小写)
name = "ZANAO"
name1 = name.lower()
print(name1)
# 输出结果
# zanao
id (获取内存地址)
name = 'zanao'
print(id(name))
# 输出结果
# 4543793504
startswith (以什么开头)
name = "zanao"
print(name.startswith('z'))
# 判断name变量是以z开的头的
# 输出结果
# True
endswith (以什么结尾)
name = "zanao"
print(name.endswith("i"))
# 判断name就是以i结尾
# False
count (统计)
name = "zanao"
print(name.count("a"))
# 查询某个内容出现的次数
# 2
replace (替换) 重要!!!
str.replace('n' 's') 前面是要被替换的内容 后面是新的
name = "zanao"
name1 = name.replace('a' 's') # 替换 前面是老的 后面是新的
name1 = name.replace('a' 's' 1) # 替换 前面是老的 后面是新的 1是替换的次数
# print(name1)
# zsnso
# zsnao
strip (除去头尾两边的空格/换行符) 重要!!!
name = " zanao "
name1 = name.strip() # 可以写想要去掉的内容
print(name1)
if name == "zanao": # 这里判断两边的值是否相等用两个“=”表示,一个“=”表示判断内存地址是否一样
print(666)
name = " zanao "
print(name.strip())
结果:zanao
split (分割) 重要!!!
name = 'Zanao Joe'
print(name.split(" "))
# ['Zanao' 'Joe']
# 默认是以空格分割 也可以自己制定分割
# 切记:分割后返回的内容是一个列表
1. 无参数的情况
a="my name is john"
b="my\nname\nis\john"
c="my\tname\tis\john"
a=a.split()
b=b.split()
c=c.split()
print(a)
print(b)
print(c)
输出:
['my' 'name' 'is' 'john']
['my' 'name' 'is' 'john']
['my' 'name' 'is' 'john']
2. 有参数的情况
d="my name is john"
e="my;name;is;john"
f="my-name-is-john"
d=d.split(" ")
e=e.split(";")
f=f.split("-")
print(d)
print(e)
print(f)
输出:
['my' 'name' 'is' 'john']
['my' 'name' 'is' 'john']
['my' 'name' 'is' 'john']
3. 当具有两个参数的情况
a="My name is john and I am a student"
b1=a.split(" " 1)
b2=a.split(" " 2)
b8=a.split(" " 8)
b9=a.split(" " 9)
print(b1)
print(b2)
print(b8)
print(b9)
输出:
['My' 'name is john and I am a student']
['My' 'name' 'is john and I am a student']
['My' 'name' 'is' 'john' 'and' 'I' 'am' 'a' 'student']
['My' 'name' 'is' 'john' 'and' 'I' 'am' 'a' 'student']
本节完~
如果对您有帮助请关注 咋闹运维组