python字符串,列表,字典,函数,文件操作

字符串常用操作

#字符串常见操作
lyric = "想带你一起看大海"
myStr = "hello world itcast and hahaitcastcpp hello world itcast and hahaitcastcpp"
print(1,myStr.find("dongge"))  #查找:没找到返回-1,找到返回第一个开始下标
print(2,myStr.find("world"))
print(3,myStr.index("world"))  #查找:没找到报错,找到返回第一个开始下标
print(4,myStr.rfind("dongge"))  #查找:从右向左找
print(5,myStr.rfind("world"))
print(6,myStr.rindex("world"))  #查找:从右向左找
print(7,myStr.count("itcast"))  #计数:没有返回0
print(8,myStr.replace("hello","HELLO"))  #全部替换,不改变原来myStr
print(9,myStr.replace("hello","HELLO",1))  #只替换一个
print(10,myStr.split(" "))  #切割
print(11,myStr.capitalize())  #首字母大写,不改变myStr
print(12,myStr.title())  #首字母大写,不改变myStr
print(13,myStr.startswith("hello"))  #判断起始位置
print(14,myStr.endswith("cpp"))  #判断结尾位置
print(15,myStr.upper())  #全部为大写,不改变myStr
print(16,myStr.lower())  #全部为小写,不改变myStr
print(17,lyric.center(50))  #居中
print(18,lyric.ljust(50))  #左对齐
print(19,lyric.rjust(50))  #左对齐
test = lyric.center(50)
print(20,test.lstrip())  #切左边
print(21,test.rstrip())  #切右边
print(22,test.strip())  #前后都切
print(23,myStr.partition("and"))  #分割为str前,str,str后
print(24,myStr.rpartition("and"))  #从右切,分割为str前,str,str后
file_content = "123123\n33333\nijsg;iaj\naa"
print(25,file_content.splitlines())  #将文件里面每一行分隔为列表
a = "abc"
print(26,a.isalpha())  #判断是不是为字母
a = "123"
print(27,a.isdigit())  #判断是不是为数字
a = "abc123"
print(28,a.isalnum())  #判断是不是只有字母数字
name = ["aaa","bbb","ccc"]
print(29,"_".join(name))  #字符串拼接
content = "las、\n  djf  lka \t\t\t  j sd l kf j la ksdjf"
print(30,content.split())  #默认为不可见的字符,都可以切


结果
1 -1
2 6
3 6
4 -1
5 43
6 43
7 4
8 HELLO world itcast and hahaitcastcpp HELLO world itcast and hahaitcastcpp
9 HELLO world itcast and hahaitcastcpp hello world itcast and hahaitcastcpp
10 ['hello', 'world', 'itcast', 'and', 'hahaitcastcpp', 'hello', 'world', 'itcast', 'and', 'hahaitcastcpp']
11 Hello world itcast and hahaitcastcpp hello world itcast and hahaitcastcpp
12 Hello World Itcast And Hahaitcastcpp Hello World Itcast And Hahaitcastcpp
13 True
14 True
15 HELLO WORLD ITCAST AND HAHAITCASTCPP HELLO WORLD ITCAST AND HAHAITCASTCPP
16 hello world itcast and hahaitcastcpp hello world itcast and hahaitcastcpp
17                      想带你一起看大海                     
18 想带你一起看大海                                          
19                                           想带你一起看大海
20 想带你一起看大海                     
21                      想带你一起看大海
22 想带你一起看大海
23 ('hello world itcast ', 'and', ' hahaitcastcpp hello world itcast and hahaitcastcpp')
24 ('hello world itcast and hahaitcastcpp hello world itcast ', 'and', ' hahaitcastcpp')
25 ['123123', '33333', 'ijsg;iaj', 'aa']
26 True
27 True
28 True
29 aaa_bbb_ccc
30 ['las、', 'djf', 'lka', 'j', 'sd', 'l', 'kf', 'j', 'la', 'ksdjf']

切片

name = "abcdefABCDEF"
print(name[-1:])
print(name[-1:0:-1])
print(name[-1::-1])
print(name[::-1])


结果
F
FEDCBAfedcb
FEDCBAfedcba
FEDCBAfedcba

列表

增删改查

#增
name = ["孙悟空", "猪八戒", "沙僧"]
name.append("唐僧")  #添加一个元素
print(name)
name.insert(4, "孙悟空")  #在索引位置插入
print(name)
name.extend(name)  #合并列表
print(name)
#删
name.pop()  #删除最后一个
print(name)
name.remove("孙悟空")  #删除第一个
print(name)
del name[0]  #根据下标删除
print(name)
#改
name[0:1] = "abcd"
print(name)
#查
if "唐僧" in name:
    print("yes")

结果
['孙悟空', '猪八戒', '沙僧', '唐僧']
['孙悟空', '猪八戒', '沙僧', '唐僧', '孙悟空']
['孙悟空', '猪八戒', '沙僧', '唐僧', '孙悟空', '孙悟空', '猪八戒', '沙僧', '唐僧', '孙悟空']
['孙悟空', '猪八戒', '沙僧', '唐僧', '孙悟空', '孙悟空', '猪八戒', '沙僧', '唐僧']
['猪八戒', '沙僧', '唐僧', '孙悟空', '孙悟空', '猪八戒', '沙僧', '唐僧']
['沙僧', '唐僧', '孙悟空', '孙悟空', '猪八戒', '沙僧', '唐僧']
['a', 'b', 'c', 'd', '唐僧', '孙悟空', '孙悟空', '猪八戒', '沙僧', '唐僧']
yes


知识点1

num+=num不等同于num=num+num

a = [100]
def test(num):
    num = num+num  #不等同于num+=num
    print(num)
test(a)
print(a)

结果
[100, 100]
[100]

字典

增删改查

info = {"name":"老王"}
#增
info["age"] = 30
print(info)
#删
del info["age"]
print(info)
#改
info["name"] = "老李"
print(info)
#查
print(info.get("name"))

结果
{'name': '老王', 'age': 30}
{'name': '老王'}
{'name': '老李'}
老李

字典的键值只能是不可变类型

字典遍历

info = {"name":"老王", "age":18,}
print(len(info))
print(info.keys())
print(info.values())
for key,value in info.items():
    print(key,value)


结果
dict_keys(['name', 'age'])
dict_values(['老王', 18])
name 老王
age 18

函数

返回多个return

def test():
    a = 11
    b = 22
    c = 33
    return a,b,c  #多个returun只返回第一个,默认返回元组
    return b
    return c

num = test()
print(num)

修改全局变量

num = [1,2,3,4]
num1 = 6
num2 = "abc"
def test():
    global num1  #修改全局变量,需要加global,列表和字典不需要
    num1 = 7
    num.append(5)
    num2 = "666"
    print(num, num1, num2)
test()
print(num, num1, num2)


结果
[1, 2, 3, 4, 5] 7 666
[1, 2, 3, 4, 5] 7 abc

不定长参数

def sum(a,b,c=33,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)
sum(11,22,33,44,55,name="wang",age=18)  #不定长参数
A = (77,88,99)
B = {"name":"zhao","age":20}
sum(55,66,77,*A,**B)  #拆包,传递元组和字典


结果
11
22
(44, 55)
{'name': 'wang', 'age': 18}
55
66
(77, 88, 99)
{'name': 'zhao', 'age': 20}

可变类型,不可变类型

可变类型:列表,字典

不可变类型:数字,字符串,元组

匿名函数

#匿名函数
func = lambda a,b:a+b
print(func(11,22))

infos = [{"name":"laowang","age":21},{"name":"wangwu","age":30},{"name":"zhangsan","age":20}]
infos.sort(key=lambda x:x["age"])
print(infos)

def test(a,b,func):
    result = func(a,b)
    print(result)
test(11,22,lambda x,y:x+y)

def test(a,b,func):
    result = func(a,b)
    print(result)
func_new = input("请输入匿名函数:")
func_new = eval(func_new)  #将字符串转换为语句
test(11,22,func_new)

结果
33
[{'name': 'zhangsan', 'age': 20}, {'name': 'laowang', 'age': 21}, {'name': 'wangwu', 'age': 30}]
33
请输入匿名函数:lambda x,y:x+y
33

文件操作

f = open("haha.txt","w")
f.write("haha")  #写
f.close()

f1 = open("haha.txt","r")
print(f1.read())  #读
f1.close()

访问模式

r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w	打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a	打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb	以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb	以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+	打开一个文件用于读写。文件指针将会放在文件的开头。
w+	打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+	打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+	以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+	以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 readlines和readline

f2 = open("haha.txt","r")
print(f2.readlines())  #生成列表
f2.close()

f2 = open("haha.txt","r")
print(f2.readline())  #读每一行
print(f2.readline())
print(f2.readline())
print(f2.readline())
print(f2.readline())
f2.close()

结果
['haha\n', 'haha1\n', 'haha2\n', 'haha3\n', 'haha4\n', 'haha5']
haha

haha1

haha2

haha3

haha4

文件的定位读写

seek(offse,from)定位到某个位置
offse:偏移量
from:方向 0(文件开头);1(当前位置);2(文件末尾)

如果文件操作时又写又读,写完之后光标是在最后,这时读取是空的,必须使用seek定位到某个位置,再读取

f2 = open("haha.txt","r")
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.read(1))
print(f2.tell())
f2.seek(0,0)  #定位到开头
print(f2.read())
f2.close()

结果
h
a
h
a


h
a
h
9
haha
haha1
haha2
haha3
haha4
haha5

 文件相关操作

import os
os.rename("haha.txt","test.txt")  #修改文件名称
os.remove("test1.txt")  #删除文件
os.mkdir("haha")  #创建目录
print(os.getcwd())  #获取当前目录
os.chdir("haha")   #改变默认目录
print(os.getcwd())
print(os.listdir("./"))  #获取目录列表,生成一个列表
os.rmdir("haha")  #删除目录
#批量修改文件名

folder_name = input("请输入文件夹:")
file_names = os.listdir(folder_name)
for name in file_names:
    old_file_name = "./"+folder_name+"/"+name
    new_file_name = "./"+folder_name+"/"+"京东出品"+name
    os.rename(old_file_name,new_file_name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值