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 条评论
登录 后参与评论

相关文章

来自专栏移动开发

java split()

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

1091
来自专栏数据之美

Python FAQ(常见问题解答)(1)

声明:转载需署名出处,严禁用于商业用途! 1、python的帮助: help(str) 可以查看str字符类的帮助信息。 2、python没有括号来表明...

2858
来自专栏企鹅号快讯

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

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

2100
来自专栏nnngu

014 Java的反射机制

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

2583
来自专栏老九学堂

【超全】C语言小白最容易犯的17种错误,你中了几个?

C编译的程序对语法检查并不像其它高级语言那么严格,这就给编程大佬们留下了“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对刚刚接触C语言的人来...

4175
来自专栏对角另一面

读 Zepto 源码之集合元素查找

这篇依然是跟 dom 相关的方法,侧重点是跟集合元素查找相关的方法。 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zept...

2310
来自专栏HTML5学堂

JavaScript 运行机制之执行顺序详解

1、代码块 定义:JavaScript中的代码块是指由<script>标签分割的代码段。 示例: <script> 代码块一 </script> <scr...

30511
来自专栏猿人谷

《C++ primer》--第11章

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

2015
来自专栏生信宝典

18式优雅你的Python

文章授权转载自 Python与算法之美,粗体文字为生信宝典的修改和补充。文后有生信宝典原创的系列Python学习教程(Python2和Python3)。

1912
来自专栏Google Dart

Dart语言指南(二) 顶

Dart是一种面向对象的语言 包含类和基于 mixin 的继承两部分。每个对象是一个类的实例, 并且 Object.是所有类的父类。 基于 mixin 的继承指...

2541

扫码关注云+社区

领取腾讯云代金券