Python高效编程(三)

实际编程和面试都会遇到的典型问题。

图片来源于网络

如何判断字符串a是否已字符串b开头或者结尾

#遍历以'.py'和'.sh'结尾的文件,改为可执行权限
import os, stat

s = 'test.py'
s.endswith(('.py','.sh'))#参数只能是tuple

#文件权限
oct(os.stat('test.sh').st_mode)
os.chmod('test.sh',os.stat('test.sh').st_mode|stat.S_IXUSR)

for name in os.listdir():
    if name.endswith(('.py','.sh')):
        os.chmod(name,os.stat(name).st_mode|stat.S_IXUSR)

如何调整字符串中的文本格式

'''
2017-10-09adasdasdasd
2017-11-12dsfsfsdfsdfsd
将其中的日期(yyyy-MM-dd)改为(MM/dd/YYYY)格式
'''
import re

s = '2017-10-09adasdasdasd\n2017-11-12dsfsfsdfsdfsd'
re.sub('(\d{4})-(\d{2})-(\d{2})',r'\2/\3/\1',s)
re.sub('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',r'\g<month>/\g<day>/\g<year>',s)

如何将多个小字符串拼接成一个大字符串

#第一种(拼接项少) +
#第二种(拼接项多) ''.join()
list1 = ['abc','123','23','sdsa','xyz']
''.join(list1)

list2 = ['abc',123,'23',4654,'xyz']
''.join(str(x) for x in list2)

如何对字符串进行左,右,居中对齐

s = 'abc'
#第一种 ljust() rjust() center()
s.ljust(20)
s.rjust(20,'!')
s.center(20,"-")

#第二种 format
format(s,'<20')
format(s,'>20')
format(s,'^20')

如何去掉字符串中不需要的字符

#1 去掉字符串两端的字符 strip() lstrip() rstrip()
s = '   aac 123  '
s.strip()
s = '!!!!asdasd+++++'
s.strip('!+')

#2 删除单个固定位置字符,可以使用切片+拼接
s = 'abc::123'
s[:3]+s[5:]

#3 字符串的replace()方法或正则表达式re.sub()删除任意位置字符
s = '\tabc\r\t123\txyz'
s.replace('\t','')#只能替换一种
import re
re.sub('[\t,\r]','',s)#支持同时替换多种

#4 字符串translate()方法.可以同时删除多种不同字符
s = 'abc234456xyz'
s.translate(str.maketrans('abcxyz','xyzabc'))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)

这一串代码描述是这样子,我们要绕过A-Za-z0-9这些常规数字、字母字符串的传参,将非字母、数字的字符经过各种变换,最后能构造出 a-z 中任意一个字符,并且...

882
来自专栏猿人谷

《C++ primer》--第11章

习题11.1 algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。编写...

1835
来自专栏重庆的技术分享区

关于eslint使用规则,和各种报错对应规则

3185
来自专栏Nian糕的私人厨房

Type Script 的基本概念及常用语法

TypeScript 是一种由微软开发的自由和开源的编程语言,它作为 JavaScript 的一个超集,扩展了JavaScript 的语法,而且本质上向这个语言...

1033
来自专栏python百例

117-可变与不可变对象的效率

python是一种解释型的语言,执行效率要比C这样的编译型语言差得多,但是也应该注意它的效率。 python的各种数据类型,按更新模型可以分为可变类型(如列表...

611
来自专栏企鹅号快讯

10分钟就能学会写代码 你不信 看完这篇文章就能当Python工程师

Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。 ? ...

1970
来自专栏移动开发

java split()

java提供了split根据传入的分隔符,返回数组的方法.但是对于一些特殊字符我们要注意下,以防获取的不是我们想要的结果. 如想要根据”竖线”分隔:

651
来自专栏nnngu

014 Java的反射机制

这篇文章要总结java的反射机制,将从以下几点进行总结: 一、什么是反射机制 二、哪里用到反射机制 三、反射机制的优点与缺点 四、利用反射机制能获得什么信息 五...

2433
来自专栏Java帮帮-微信公众号-技术文章全总结

shell编程基础入门

shell编程基础入门 文章最后有下载shell学习指南电子书链接。 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bi...

3194
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-11总结Eclipse使用,API,Object类

1:Eclipse的概述使用(掌握) 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 ...

3346

扫码关注云+社区