目录
系列文章目录
一. 字符串操作
二. 格式化输出
三. dict常用操作
四. list操作
五. 迭代器
六. 元组
七. 变量
八. 偏导函数
九. 装饰器
十. 模块导入
十一. 程序入口
第一章:python常见报错及解决方案
第二章:编写python函数常用技巧代码(一)
第三章:编写python函数常用技巧代码(二)
1)大小写转换
my_str = "j2hdksil mk"
res = my_str.upper()
print(res)
my_str = "J2HDKSIL MK"
res = my_str.lower()
print(res)
my_str = "j2hdksil mk"
res = my_str.capitalize()
print(res)
my_str = "j2hdksil mk"
res = my_str.title()
print(res)
my_str = "I love I"
res = my_str.swapcase()
print(res)
2)字符串的切分
# 2对应参数位置 表示的是切分几次
my_str = "j2hdksil mk"
res = my_str.split(" ",2)
print(res)
3)去掉左右侧指定字符
my_str = "I love I"
l_res = my_str.lstrip("I")
print(res)
去掉右侧指定字符
my_str = "I love I"
r_res = my_str.rstrip("I")
print(res)
同时去掉两侧的字符
my_str = "I love I"
res= my_str.strip('I')
print(res)
4)字符串连接
my_str = "I love I"
res = "+".join(my_str)
print(res)
5)对齐
my_str = "we"
res = my_str.ljust(4, '‐')
print(res)
my_str = "we"
res = my_str.rjust(4, '+')
print(res)
# 注意当指定位数小于字符串长度 使用的是字符串长度本身
my_str = "we"
res = my_str.zfill(3)
print(res)
6)居中
my_str = "w"
res = my_str.center(5, "i")
print(res)
7)字符串的替换
replace('你要替换的字符串’, ‘用什么替换’, '替换多少个')
my_str = "I love I"
res = my_str.replace("I",'8')
print(res)
res1 = my_str.replace('I', '8', 1)
print(res1)
# ‘I’ 是我要替换的 用‘8’来替换, 1说的是替换的个数
8)切分
按照第一个匹配的字符去切分 保留指定切分的切分字符,变成元组,元组第一项是切分字符左侧的内容 第二项是你指定切分字符 第三项是切分字符右侧的内容
my_str = "I love I"
res = my_str.partition("o")
print(res)
9)统计字符出现的个数
count(统计的字符,起始值,结束值)
my_str = "I love I"
res = my_str.count("I", 0, 7)
print(res)
age = 18
money = 100000000
print("我的年纪是%d" % age)
# 多个值的情况 “字符串%d呵呵呵%d” % (age, money)
print("我的年纪是%d,我的存款%d津巴布韦币" % (money, money))
%后的变量是依次赋值给你的占位符
- %d 整数
- 2 %f float类型 默认输出小数部分是6位 如果想保留自己制定长度 那么使用%.位数
- 3 %s 字符串
name = "张三"
age = 30
weight = 80.2
print("我叫{}, 我今年{}岁, 我体重是{}kg".format(name, age, weight))
1)字典生成式 :
a = [(1,2),("name","kobe")]
res = {key:value for key,value in a}
print(res)
2)clear():
清空字典
my_dict = {"name":"lucy","age":20}
print(my_dict.clear())
3)frokeys():
生成一个新的字典 第一个参数 是指定你的key序列,第二个参数是字典对应的value
my_dict = {"name":"lucy","age":20}
res = my_dict.fromkeys([1,2,3], "j")
print(res)
4)items():
将字典转成列表嵌套元组的形式
my_dict = {"name":"lucy","age":20}
res = res = my_dict.items()
print(res)
5)key():
获取字典所有的键
my_dict = {"name":"lucy","age":20}
res = res = my_dict.keys()
print(res)
6)values():
获取字典所有的值
my_dict = {"name":"lucy","age":20}
res = res = my_dict.values()
print(res)
7)pop(key):
弹出一个key对应的value值, 原来字典将会删除掉对应的键值对
my_dict = {"name":"lucy","age":20}
res = res = my_dict.pop("name")
print(res)
print(my_dict)
8)popitem():
弹出字典的一项 然后原来的字典 将会移除掉对应键值对
my_dict = {"name":"lucy","age":20}
res = res = my_dict.popitem()
print(res)
print(my_dict)
9)setdefault(key, value):
在原来字典的基础上 添加一个键值对 如果key 存在将不会设置成功, 如果key不存在 那么才生效, 函数操作的返回结果 如果key存在是 原来这个key对应value 否则返回的是你设置的value
my_dict = {"name":"lucy","age":20}
res = my_dict.setdefault("name", 'lili')
print(res)
print(my_dict)
10)update(字典):
在原来字典的基础上追加新的键值对,如果key有相同的那么更新原来字典key所对应的value
my_dict = {"name":"lucy","age":20}
my_dict2 = {"money":10, "hobby":[1,2,34], 'name':"bob"}
my_dict.update(my_dict2)
print(my_dict)
11)sorted ():
dict_data = {"语文":59, "数学": 79, "化学":90, "物理":30, "python": 100}
res = sorted(dict_data.items(), key=lambda item:item[1])
print(res)
1)列表生成式:
res = [i for i in range(0,10,2) if i %2 ==0]
print(res)
2)count():
计数,来统计列表元素出现的次数
list = ["abc", "abcd", "e", "as", "abc"]
print(list.count('abc'))
3)extend():
将另一个 list 追加到调用列表后边
list = ["abc", "abcd", "e", "as", "abc"]
temp = [1,2,4]
list.extend(temp)
print(list)
4)index(要找的元素,找的起始值,找的末位值):
返回你要查找元素的下标(返回的是匹配到的第一个元素),如果元素不在列表里,那么他将会报一个ValueError
list = ["abc", "abcd", "e", "as", "abc"]
print(list.index("abc",2, len(list)))
5)insert(要插入的位置,要插入的元素):
当给定的index较大的时候 那么追加到数组的最后
list = ["abc", "abcd", "e", "as", "abc"]
list.insert(10002, "9")
print(list)
6)pop(需要弹出的下标):
返回弹出的元素 在原来的列表删除对应的下标元素
list = ["abc", "abcd", "e", "as", "abc"]
print(list.pop(0))
print(list)
7)remove(要移除的元素):
不返回删除的元素(删除的是他匹配的第一个)
如果要移除的元素没在列表里 那么将会报 ValueError异常
list = ["abc", "abcd", "e", "as", "abc"]
print(list.remove("abc"))
print(list)
8)reverse() :
将列表反转、逆序,没有返回值 ,而是直接影响原字符串
list = ["abc", "abcd", "e", "as", "abc"]
list.reverse()
print(list)
9)sort(key, reverse):
排序,默认是对数组里的元素的ascll码比较如果指定了key参数(排序规则),就使用新的规则,reverse来设置是不是降序排列,默认False是升序
# 指定排序的规则
def str_len(my_str):
return len(my_str)
# 排序
list = ["abc", "bcda", "e", "cs", "abc"]
list.sort((key=str_len, reverse=True)
print(list)
1)可迭代对象
通俗的讲,就是 for可以直接遍历的字符串(list dict set tuple)isinstance(object, classinfo ):如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。功能:帮助我们判断变量是不是这个类名的实例
2)迭代器
python 给我们提供了迭代器来优化此问题:不浪费内存,当你使用的时候 他才给你计算拿出来声明:1 将列表生成式的中括号变成小括号2 函数与 yield 关键字组合形成一个迭代器yield 与 return 区别:return 结束函数而 yield 只是停止了迭代器(函数)的调用都可以返回值访问:使用内置 next ( 迭代器对象 ) 函数当我们的迭代器对象为空的时候 报错
- 当我们直接使用括号表示一个元组的时候,如果只有一个元素,为防止歧义,要在元素后加一个逗号操作;
- 元组不可以修改,但可以使用+或*,可以通过下标访问;
- count(元素): 统计元素在元组里出现的次数;
- index(元素): 查找第一个匹配到的元素下标,如果不在元组,会报错。
1)global:
在函数内用于global修饰的变量是全局变量
a = 10
def fun1():
global a
a = 6
fun1()
print(a)
2)nonlocal:
闭包中 如果内部函数想去修改外部函数的变量,那我们就需要使用 nonlocal 来修饰我们想要修改的变量。
def fun3():
b = 10
def inner():
nonlocal b
b = 5
inner()
print(b)
return inner
fun3()
作用:帮我们 ’ 冻结 ‘ 函数的参数,然后得到新的函数,在调用得到的新的函数时,之需要写剩余的参数就可以
from functools import partial
print_new = partial(print, end="!", sep="+")
print_new("sjs", "jj")
def out(装饰器需要的参数):
def dec_two(fun):
def inner(*args):
if 装饰器参数 写一些逻辑:
fun(*args)
else:
print("权限不够")
return inner
return dec_two
from xxx import 成员 as 别名
当 from xxx import * 的时候,如果 xxx里的一些成员不想被外部使用,那么可以使用__all__ = [ ' 放你想暴露的成员 ' ]
表示我们程序运行的开始位置__name__ 在主文件,打印结果是__main__,如: if __name__ == "__main__" :在非主文件(模块文件),打印的时候是模块的名字