赞
踩
目录
python中,检查s = 'jack love rose,im rose'中是否有rose
s = 'asahdshgaahahjuahaudajhduaaa'
对比
Java中字符串的搜索 正向indexof 反向lastIndexOf
检测某个子串是否包含在这个字符串中,如果在 则返回这个子串开始的位置下标,否则返回-1
语法:字符串序列.find(子串,开始位置,结束位置)。开始位置和结束位置可以省略不
# 数组中是否存在某个元素 ns=[1,2,3,4,5,6] print(6 in ns)控制台返回True
# 正向 print(s.find('rose'))控制台返回下标 10
和find()功能相同,但是查找方向为右侧开始
# 反向 print(s.rfind('rose'))控制台返回下标 18
print(s.find('marry'))控制台返回 -1
检测某个子串是否包含在这个字符串中,如果在 则返回这个子串开始的位置下标,否则报异常
语法:字符串序列.index(子串,开始位置,结束位置)。开始位置和结束位置可以省略不写
# 正向
print(s.index('rose'))
控制台返回 10
和index()功能相同,但是查找方向为右侧开始
# 反向 print(s.rindex('rose'))控制台返回18
print(s.index('marry'))
返回某个子串在字符串中出现的次数
语法:字符串序列.count(子串,开始位置,结束位置)。开始位置和结束位置可以省略不写
s = 'asahdshgaahahjuahaudajhduaaa'
count为0,先用find找到第一个a的下标,count+1,开始位置为n+1,每找到下一个a的位置,count+1,直到找到数组的最后一位,循环结束
n = s.find('a') # n得到的是下标 count = 0 while n != -1: # n+1如果位置不加一,那么就又找了自己 n = s.find('a',n+1) count += 1 print(count)控制台输出 11
count为0,先用index找到第一个a的下标,count+1,开始位置为n+1,每找到下一个a的位置,count+1,直到找到数组的最后一位,循环结束
count=0 try:#抓错 n = s.index('a') while True: count+=1 n=s.index('a',n+1) except Exception: print(count)控制台输出 11
print(s.count('a'))控制台输出 11
s2相当于把字符串中的a截掉了,因此s的长度减去s2的长度就是a的长度,即个数
s2=s.replace("a",'')#s2是没有a的 # 输出s2的长度 print(len(s)-len(s2))控制台输出 11
替换,语法:字符串序列.replace(旧子串,新子串,替换次数)
注意:不会改变原有的字符串数据,需要给调用的方法重新赋值给一个新的字符串变量
s='吃完蛋糕,玩一下乐高' print(s) print(s.replace('乐高', '积木', 1))控制台输出 吃完蛋糕,玩一下乐高
吃完蛋糕,玩一下积木
按照指定字符分隔字符串,语法:字符串序列.split(分隔字符,num)
ns="1,2,3,4,5,6,7,8,9" 求和1,先切割再求和
方法一
ns=ns.split(',')#ns返回数组 String类型 sum=0 for i in ns: # sum+=i #会报错,i遍历的是ns,ns是str类型,因此i也是str类型,这里的+只能用在str类型里,而sum是int类型,用在int类型里,那么 i也得是int类型,需要对i进行强转 sum += int(i) print(sum)方法二:使用reduce回调函数
print(reduce(lambda a, b: int(a) + int(b), ns))2,不切割,使用切片求和
#只要是数组或者集合,就可以使用切片(倒着来-2) for i in ns[::2]: print(i)控制台输出 45
用一个字符或子串合并字符串,即是将多个字符串合并成为一个新的字符串,常用在传递数据时
语法:字符或子串.join(多字符串组成的序列)
ns=['1001','1002','1003','1004']把数组转化成数据库需要的格式 where id in (1,2,3,4,5,6,7)使用jion print(','.join(ns)) 使用reduce回调函数 print(reduce(lambda a, b: f'{a},{b}', ns))控制台输出 1001,1002,1003,1004
1001,1002,1003,1004
将字符串第一个字符转换成大写
# 语义化处理 # 首字母大写 大写 小写 print('hELlo world'.capitalize())控制台输出 Hello world
注意:非首字母的大写字母会转成小写
将字符串每个单词首字母转换成大写
print('hELlo world'.title())控制台输出 Hello World
注意:非首字母的大写字母会转成小写
将字符串所有字母都转成大写
print('hello world'.upper())
控制台输出 HELLO WORLD
将字符串所有字母都转成小写
print('Hello World'.lower())
控制台输出 hello world
返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
语法:字符串序列.ljust(长度,填充字符)
print('12345678901'.ljust(30, '.'))控制台输出 12345678901.................
返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
语法:字符串序列.rjust(长度,填充字符)
print('12345678901'.rjust(30, '.'))控制台输出 .................12345678901
返回一个原字符串中间对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
语法:字符串序列.center(长度,填充字符)
print('12345678901'.center(30, '.'))控制台输出 .........12345678901..........
注意:填充字符可以省略不写,默认是空格
删除字符串左侧空白字符串,相当于 ltrip
print(' 16673579976 '.lstrip())控制台输出 16673579976
删除字符串右侧空白字符串,相当于 rtrip
print(' 16673579976 '.rstrip())控制台输出 16673579976
删除字符串两侧空白字符串,相当于 trip
print(' 16673579976 '.strip())控制台输出 16673579976
检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始位置和结束
位置下标,则在指定范围内检查
语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)
print('test.aa.py.java'.startswith('test'))# 判断是否以test开头 返回True
检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始位置和结束
位置下标,则在指定范围内检查
语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)
print('aa.py.java'.endswith('.java')) #判断是否是Java文件 返回True
如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
print('asgcbja'.isalpha()) 返回 True print('asgc123a'.isalpha()) 返回 False
如果字符串只包含数字则返回True否则返回False
print('123456'.isdigit()) 返回 True
如果字符串至少有一个字符并且所有字符都是字母或数字或组合则返回True,否则返回False
print('asgc123a'.isalnum()) 返回 Trueprint(''.isalnum()) 返回 False
如果字符串中只包含空白,则返回True,否则返回False
print(' '.isspace()) # 判断是否是空格 返回True
from os import * import os
os.rename(原文件名,新文件名)
os.rename('./a.mp4','./b.mp4')
os.remove(文件名)
os.remove('b.mp4')
os.mkdir(文件夹名)
os.mkdir('tempA') #创建文件夹tempA os.mkdir('tempA/tempB') #在文件夹tempA下面创建文件夹tempB
os.rmdir(文件夹名)
os.rmdir('tempA/tempB') #删除文件夹tempA下面的文件夹tempB
os.getcwd()
print(os.getcwd())控制台输出 D:\python demo\p8
注:linux里面的命令 pwd显示当前的所在位置
os.chdir(目录)
os.chdir('./tempA') #控制台输出 D:\python demo\p8\tempA
os.listdir(),获取当前目录下的所有文件列表
print(os.listdir())控制台输出 ['.idea', 'a.mp4', 'main.py', 'tempA', 'test.py', 'test2.py', 'venv']
os.listdir(目录),获取指定目录下的所有文件列表
print(os.listdir('tempA'))控制台输出 ['tempB']
对文件夹进行遍历并且判断
for f in os.listdir():
os.path.isdir() #.isabs .isfile .islink .ismount 等
os.rename(原文件夹名,新文件夹名)
os.rename('tempA','tempC')
os.removedirs
# os是不支持删除非空文件的 # 自己写递归删除 os.removedirs('tempC')
shutil.rmtree('./tempC') #tempC以及目录下的文件夹都被删除
注:相当于Linux里的rm-rf
from datetime import datetime #导入 模块print(datetime.now())控制台输出 2022-03-11 20:40:00.397863
from datetime import datetime #导入 模块print(datetime.now())控制台输出 2022-03-11 20:40:00.397863
转化字符串为datetime
datetime.strptime('2022/03/11',format('%Y/%m/%d'))
datetime.strptime('22/03/11',format('%y-%m-%d'))
控制台输出 2022-03-11 00:00:00
2022-03-11 00:00:00
注意:Y表示四位数年份,y表示两位数年份
转化datetime为字符串
print(datetime.strftime(datetime.now(), '%Y/%m/%d'))控制台输出 2022/03/11
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。