day5-python-典型字符串中的一些魔法

expandtabs 断句魔法

test = "username\temail\tpassword\nxuli\[email protected]\t123\nxuli\[email protected]\t123\nxuli\[email protected]\t123"
v = test.expandtabs(20)
print(v)
运行程序后得到
username            email               password
xuli                [email protected]         123
xuli                [email protected]         123
xuli                [email protected]         123

括号里面的20表示遇到\t后就空格20,由于username不到20个字符,但是此时遇到了\t,前面username占8个位置,后面空白处补齐12个位置,同样email那里也是这样子的,password那里由于不需要空格了,直接用\n就是切换到下一行(换行),这种魔法可以用来做表格等等



isalpha 是检测字符串的文字的
test = "ashhued"
v = test.isalpha()
print(v)

运行结果为
ture  

如果此时我将"ashhued"变为"ashhue23d"运行结果变为false 因为这个魔法只能去检测字母、汉子但是不能检测数字




isidentifier 魔法为字母、下划线、数字的标识符
test = "ashhued"
v = test.isidentifier()
print(v)
运行输出结果为true



isdecimal 魔法和 isdigit魔法是用来判定字符串是否为数字

运行结果如果字符串为数字输出true,反之为false




islower 魔法为判断是否为小写
isnumeric 魔法为判断是否为小写 可以支持二这种中文数字、123这种数字、②③这种数字 


isprintable  魔法为判断是否存在不可显示的字符,比如说"husdasdsgu"运行后九尾true,但是如果将其变为"hu\tsdasdsgu加入了\t,此时运行后输出的结果就是false,因为\t(制表符)不能被输出,为不可见的;"


isspace   魔法 判断是否全部为空格,如果字符和字符之间有空格,输出也为false




istitle魔法 判断是否为标题 (标题的话不能判断中文,只能判断英文,英文的判断标准是首字母是否为大写),第二个魔法也可以用来将不是标题的转换为标题

test = "Welcome to my workhouse"
v1 = test.istitle()
print(v1)  
v2 = test.title()
print(v2)
v3 = v2.istitle()
print(v3)  

False 判断"Welcome to my workhouse"不是标题
Welcome To My Workhouse  将"Welcome to my workhouse"转换为标题
True 判断"Welcome to my workhouse"是标题 所以为true



join 魔法为将字符串中的每一个元素按照指定分隔符进行拼接   这个魔法非常重要!!!!!一定要记住哦 
test = "你是风儿我是沙"
print(test)
t = ' '
v = t.join(test)
print(v)

输出结果你是风儿我是沙
你 是 风 儿 我 是 沙

我们发现这个中文之间出现了空格 

我们也可以这样来
test = "你是风儿我是沙"
print(test)
v = ' '.join(test)
print(v)
直接不用把t写出来
输出结果还是为

你是风儿我是沙
你 是 风 儿 我 是 沙

那如果我们不想要空格,我们来一个下划线,我们看一下
test = "你是风儿我是沙"
print(test)
v = '_ '.join(test)
print(v)
输出结果变为
你是风儿我是沙
你_ 是_ 风_ 儿_ 我_ 是_ 沙




ljust魔法,
test = "alex"
v = test.ljust(20,"*")
print(v)
运行程序后得到结果
alex****************

我们可以看在alex的右边出现了20个*,同样我们将ljust换成rjust,然后运行上面的这个小程序得到结果
****************alex
 同样我们将rjust换位center,得到居中的结果,如下:
********alex********


islower 和 lower的魔法

test = "Alex"
v1 = test.islower()
v2 = test.lower()
print(v1,v2)

输出后得到结果
False alex

说明 islower是判断是否为小写,lower是将大写转换为小写;




isupper 和 upper 的魔法

test = "Alex"
v1 = test.isupper()
v2 = test.upper()
print(v1,v2)


输出后得到结果 
False ALEX

说明 isupper 是来判断是否全部为大写,而upper 是用来将小写转变为大写



lstrip 
rstrip
strip 
统一的魔法:  去除空白  \t  \n也可以去掉  还可以移除指定字符   优先最多匹配





maketrans的魔法是进行替换
v = "adheub;dexhyaas;hsuwsw"
m = str.maketrans("aeiou","12345")
new= v.translate(m)
print(new)

输出结果得到
1dh25b;d2xhy11s;hs5wsw



partition的魔法是进行分割,记住只能分割成为三份

test = "testjxisndgdgy"
v = test.partition('s')
print(v)
输出后得到结果
('te', 's', 'tjxisndgdgy')

rpartition的魔法也是进行分割,记住只能分割成为三份

test = "testjxisndgdgy"
v = test.rpartition('s')
print(v)
输出后得到结果
('testjxi', 's', 'ndgdgy')



split 的魔法是进行分割 
test = "testjxisndsdgsgdgy"
v = test.split('s')
print(v)

输出后结果为 
['te', 'tjxi', 'nd', 'dg', 'gdgy']
这个结果完全按照出现s的地方记性了分开 
  
test = "testjxisndsdgsgdgy"
v = test.split('s',2)
print(v)

输出结果为
['te', 'tjxi', 'ndsdgsgdgy']

我们可以看到在‘s’的后面加了2 ,输出就将原始的字符自行分割了两次,并且分割后拿不到原来的s,我也可以随意的制定数字13456等等

 
同样的rsplit的魔法为从右边进行开始分割



splitlines的魔法是进行分割,后面加True,False,意思是是否保留换行

test = "testjx\nisn\ndsdgsg\ndgy"
v = test.splitlines(False)
print(v)
输出的结果为
['testjx', 'isn', 'dsdgsg', 'dgy']

换位True了以后
test = "testjx\nisn\ndsdgsg\ndgy"
v = test.splitlines(True)
print(v)

输出的结果为
['testjx\n', 'isn\n', 'dsdgsg\n', 'dgy']


startswit的魔法是判断是以什么开头
test = "backed1.1.1.1.1"
v = test.startswith('ba')
print(v)

输出的结果为
True


test = "backed1.1.1.1.1"
v = test.startswith('a')
print(v)
输出的结果变为
False



同理 endiwith是用来判断用什么结尾 
test = "backed1.1.1.1.1"
v = test.endswith('1')
print(v)
输出结果为 
True


swapcase的魔法为大小写转换
test = "alEx"
v = test.swapcase()
print(v)

输出结果为ALeX
















所有的str类型,按住Ctrl,就能看到他的魔法,可以进行尝试


  

猜你喜欢

转载自www.cnblogs.com/python-lili/p/9745799.html