python普通函数&内置函数
1.自定义函数:
#!/usr/bin/env python3 #encoding:utf-8 #___________________________________________函数多个默认值传参______________________________________________ def chen(a,b,c='chen',d='520'): print('c=',c) print('d',d) return c+d #多个默认值传参,不按顺序就需要指定对应变量,否则不会识别 print(chen(10,10,d='99999999999')) ####_____________________________________________函数嵌套____________________________________________________ def lazy_sum(*args):# *同正则表达式的* def sum(): ax = 0 for n in args:#n表示循环*args值 ax = ax + n return ax return sum f = lazy_sum(1, 3, 5, 7)#调用后f=sum print(f())#f()等价于sum() ###_____________________________________________闭包函数____________________________________________________ ###闭包定义:当一个函数定义在另一个函数内,且使用到了外部函数的参数,整个代码块称为闭包. def lazy_sum(*args):# *同正则表达式的* args__len=len(args) def sum(): ax = 0 for n in range(args__len):#args__len应用外部变量 ax = ax + args[n] return ax*2 return sum f = lazy_sum(1, 3, 5, 7)#调用后f=sum print(f())#f()等价于sum() ###__________________________________检查序列中的任一元素是否为True___________________________________________ #备注:#元素都为空、0、false,则返回false, 否则返回true aa=['wei','',0] bb=[0,'',False] print(any(aa)) #返回True print(any(bb)) #返回False ###_______________________________检查序列中的所有元素是否为True______________________________________________ aa=['wei','',0] bb=[2,'chen','hallo'] print(all(aa)) #返回False print(all(bb)) #返回True c=list(a % 4 for a in range(0,10)) print(all(c)) #返回False ###_________________________________列表int类型排序_____________________________________________________________ a = [1, 2, -3, 5] print('从小到大排序',sorted(a)) print('从大到小排序',sorted(a,reverse=True)) #倒序 ###_________________________________________推倒式______________________________________________________________ ##list推倒式 m = [x ** 2 for x in range(5)] ##set推倒式 m = {x ** 2 for x in range(5)} ##dict推倒式 m = {x: x ** 2 for x in range(5)} ###_______________________________把嵌套list拆分成一个list______________________________________________________ # a = [[1, 2], [3, 4], [5, 6]] # a_list=list(itertools.chain.from_iterable(a)) ###_______________________________________生成uid_______________________________________________________________ import uuid user_id = uuid.uuid4() #______________________________________________split()分割和 join()合并__________________________________________ a = "to be or not to be" b=a.split()#字符串分割成list print(b) c=a.split('be')#过滤指定字符串 print(c) a = ['sxt','sxt100','sxt200'] b='*'.join(a)#把list合并成字符串,并用*连接(可以为空) print(b) #__________________________________________调用函数带等号传参________________________________________________________________ def chen(name,age): print(name) print(age) chen(name='chenwei',age=255) #_______________________________________________________函数标注______________________________________________________________ ''' -> 常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型,也可以理解为给函数添加注解 这里面,元数据表明了函数的返回值为int类型。 Python解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。 ''' def add(x:int, y:int) -> float: '''表示接受x、y为int类型,返回float类型''' return x + y
2.常用的内置函数:
#____________________________________数据转换_________________________________________ print(list((1,2,3,4,5,6))) #tuple转list print(tuple(['chen','test','123'])) ##list转tuple print(str(['chen','test','123'])) ##list转字符串(注意任何类型都可转为字符串) #___________________________________进制转换__________________________________________ print(bin(10)) # 二进制:0b1010 print(hex(10)) # 十六进制:0xa print(oct(10)) # 八进制:0o12 #______________________________________数学运算_______________________________________ print(abs(-2)) # 绝对值:2 print(divmod(20,3)) # 求商和余数:(6,2) print(round(4.50)) # 五舍六入:4 print(round(4.51)) #5 print(pow(10,2,3)) # 如果给了第三个参数. 表示最后取余:1 print(sum([1,2,3,4,5,6,7,8,9,10])) # 求和:55 print(min(5,3,9,12,7,2)) #求最小值:2 print(max(7,3,15,9,4,13)) #求最大值:15 #___________________________________字符串____________________________________________ s = "hello world!" print(format(s, "^20")) #剧中 print(format(s, "<20")) #左对齐 print(format(s, ">20")) #右对齐 print(format(97, 'c' )) # 转换成unicode字符:a print(format(11, 'o' )) # 八进制:13 print(format(11, 'x' )) # 十六进制(⼩写字母):b print(format(11, 'X' )) # 十六进制(大写字母):B print(format(1.23456789, 'f' )) # 小数点计数法. 保留6位小数:1.234568 print(format(1.23456789, '0.2f' )) # 小数点计数法. 保留2位小数:1.23 print(format(1.23456789, '0.10f')) # 小数点计数法. 保留10位小数:1.2345678900 s = "今天\n吃了%s顿\t饭" % 3 print(s)#今天# 吃了3顿 饭 print(repr(s)) # 原样输出,过滤掉转义字符 \n \t \r 不管百分号% #______________________________列表相关________________________________________________ lst = "你好啊" it = reversed(lst) # 不会改变原列表. 返回一个迭代器, 设计上的一个规则 print(list(it)) #['啊', '好', '你'] lst = [1, 2, 3, 4, 5, 6, 7] print(lst[1:3:1]) #[2,3] s = slice(1, 3, 1) # 切片用的 print(lst[s]) #[2,3] #元素排序 lst = [5,7,6,12,1,13,9,18,5] lst.sort() # sort是list里面的排序 print(lst) #[1, 5, 5, 6, 7, 9, 12, 13, 18] #元素排序-顺序 ll = sorted(lst) # 内置函数. 返回给你一个新列表 新列表是被排序的 print(ll) #[1, 5, 5, 6, 7, 9, 12, 13, 18] #元素排序-倒序 l2 = sorted(lst,reverse=True) #倒序 print(l2) #[18, 13, 12, 9, 7, 6, 5, 5, 1] #根据字符串长度给列表排序 lst = ['one', 'two', 'three', 'four', 'five', 'six'] def f(s): return len(s) l1 = sorted(lst, key=f, ) print(l1) #['one', 'two', 'six', 'four', 'five', 'three'] #all() 可迭代对象中全部是True, 结果才是True print(all([1,'hello',True,9])) #True #any() 可迭代对象中有一个是True, 结果就是True print(any([0,0,0,False,1,'good'])) #True #查看内置属性 print(dir(tuple)) #查看元组的方法 #___________________________________________整数相关______________________________________________ print(divmod(20,3))#取商和余 #_________________________________________获取变量的类型____________________________________________ a=['123','test'] print(isinstance(a,str)) print(isinstance('chenwei',str)) print(isinstance(a,list)) b=True print(isinstance(b,bool)) print(isinstance(b,dict))
3.使用exec和eval()函数执行语句
#!/usr/bin/python # -*- coding: UTF-8 -*- ###______________________获取文件、并执行包含python代码的字符串__________________________ import time with open('test123.txt', 'r', encoding='utf-8') as f: code = f.read() # print("文件的内容:",code) #使用exec函数执行字符串(字符串包含python代码会自动执行), exec可以执行任何Python代码 exec(code) ###______________________________通过字符串执行函数_____________________________________ # def exec_code(): # LOC = """ # def factorial(num): # fact=1 # for i in range(num): # fact += i # return fact # print(factorial(5)) # """ # exec(LOC) # exec_code() ###__________________________直接使用exec函数执行字符串____________________________________ LOC = """ fact=1 for i in range(11): fact += i print("1累计到10结果:",fact) """ print(exec(LOC)) ###_____________________使用eval()执行字符串______________________________________________ x = 5 y = 10 result = eval("x * y + 2") print(result) # 输出:52 """ eval() 和exec() 函数的功能是相似的,都可以执行一个字符串形式的Python 代码(代码以字符串的形式提供),相当于一个Python 的解释器。 二者不同之处在于,eval() 执行完要返回结果,而exec() 执行完不返回结果 """
test123.txt文件内容:
""" 》》》》》》》》》》文件开始处(开始和结尾需要多行注释,不然会报错的)》》》》》》》》》》》》》》》》 众所周知,自我介绍是日常工作中与陌生人建立关系、打开局面的一种非常重要的手段, 因此,让自己通过自我介绍或得到对方的认识甚至认可,一种非常重要的职场技术。 我是一名应届毕业生,来自湖北武汉。农村生活铸就了我淳朴、诚实、善良的性格,培养了我不怕困难挫折,不服输的奋斗精神; """ "》》》》》》》》》准备执行-获取时间戳》》》》》》》》》" _time=int(time.time()) print("当前时间戳:",_time) "》》》》》》》》》》python代码(计算1累加到10的和)》》》》》》》》》》》" def factorial(num): fact=1 for i in range(num): fact += i return fact print(factorial(11))
常用字符串函数连接:
https://blog.csdn.net/weixin_43158056/article/details/92798114 ............python字符串常用方法及汇总
https://mp.weixin.qq.com/s/wthDrdfrcHiQReHksxCcsw .....................................Python3的62个高级用法
https://www.jb51.net/article/244070.htm ..........................................................常用的内置函数