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))
View Code

 

 

 

 

 

常用字符串函数连接:

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 ..........................................................常用的内置函数

 

posted on 2018-01-24 14:54  chen_2987  阅读(92)  评论(0编辑  收藏  举报

导航