python函数进阶

函数进阶

匿名函数

函数一般适用于创建一些临时性的,小巧的函数
lambda 参数:表达式   
print((lambda x: x * 2)(9))     #18
###############
def func(x,y):
    return x+y
result1= (func(10, 2))
print(result1)  #12
#lambda不需要return
func2=lambda x,y:x+y
result2=func2(2,4)
print(result2)      #6
###############
#g传入的是lambda x:x+1函数,arr传入的是[1,2,3,4]数组 
def func(g, arr):
   return [g(x) for x in arr]
arr = func(lambda x: x + 1, [1, 2, 3, 4])
print(arr)

内置函数

open

f=open("xxxx",mode='rb',encoding='utf-8')
result=f.read()
f.close()

len

v1=[1,2,3,4]
v2='hellow world'
len(v1)
len(v2)

range

v1=range(10)
第一组(4个)

abs,绝对值

v1=abs(-10)
print(v1)   #10

pow,次方

v1=pow(2,5)计算2的5次方
pritn(v1)
v2=2**5
pritn(v2)

sum,求和

data=[11,22,33,44]
result=sum(data)
print(result)   #111

divmod,两数相除得到商和余数

v1,v2=divmod(100,7)
print(v1,v2)    #14 2

round,保留小数点后几位

v1=round(3.1415926,2)
print(v1)
第二组(3个)

min,取最小值 ,max最大值

v1=[11,22,33]
print(min(v1))  #11
print(max(v1))  #33

all,检测元素是否全部是True

v1=[11,22,33]
res=all(v1)
print(res)
​
#判断用户输入是否为空
name=input("请输入名字")
passwd=input("请输入密码")
kong=all([name,passwd])
if kong:
    print("用户名输入正确")
else:
    print("输入为空,请检查")
    
any,检查只要有True,就返回True
list_num=[1,2,3,0]
tr=any(list_num)
print(tr)   #返回True
第三组(2个)

bytes

r=bytes("杨振浩",encoding='utf-8')
print(r)    #b'\xe6\x9d\xa8\xe6\x8c\xaf\xe6\xb5\xa9'

float

a=12
print(float(a)) #12.0

join

#join用于将序列中的元素按照指定方法拼接起来
#join方法默认只接收字符串类型的元素,所以在将列表的元素连接为字符串时,需要保证列表的元素都是字符串类型。
str1='swd'
str2='aeee'
res='######'.join([str1,str2])  #只能传入一个字符串,但是可以把两个字符串加入到一个列表中
print(res)
​

第四组(2)

ord

v1=ord('A')
print(v1)   #65

chr

v1=chr(65)
print(v1)   #A

练习

随机生成数字验证码

import random
data=randon.randint(1000,9999)
print(data) #3213

随机生成字母(大写)加数字验证码

import random
new_list=[]
for i in range(5):
    data = random.randint(65, 90)
    char=chr(data)
    new_list.append(char)
res=''.join(new_list)
print(res).

随机汉字生成

import random
new_list=[]
for i in range(5):
    data = random.randint(20208, 20495) 
    char=chr(data)
    new_list.append(char)
res=''.join(new_list)
print(res)  #伾伯佹佯係
​
第五组(10)
len
print
input
open
range
hash,计算一个值的哈希值,参数可以是任何不可变的Python对象,如数字、字符串、元组等
type,查看数据类型
    v1='jsdjad'
    print(type(v1)==str)    #True
#callable,判断是否可执行
v1='jsdjad'
res=callable(v1)
print(res)      #False
def fun():
    pass
res1=callable(fun)
print(res1)     #True
#############
def fun():
    print(999)
new_list=[11,22,fun]
for i in new_list:
    if callable(i):
        i()
    else:
        print(i)
#11
#22
#999
enumerate,
goods=['手机','电脑','飞机']          
for i in range(len(goods)):
    print(i+1,goods[i],)
1 手机
2 电脑
3 飞机    
##############
goods=['手机','电脑','飞机']
for i,j in enumerate(goods,1):
    print(i,j)
1 手机
2 电脑
3 飞机    

sorted,排序

goods=[1,12,13,1,3,43,232,52,24]
print(sorted(goods))    #[1, 1, 3, 12, 13, 24, 43, 52, 232]
v1=sorted(goods,reverse=True)
print(v1)               #[232, 52, 43, 24, 13, 12, 3, 1, 1]
#如果排序的时字符串如'上海','河南',则根据字符在unicode编码中出现的先后顺序排序
goods=['河南','上海']
print(sorted(goods))
print(ord('上'))
print(ord('河'))
##########
goods=['2','10','1']
print(sorted(goods))        #['1', '10', '2']
##########
goods=['1.txt','2.txt','3.txt','10.txt']
def v1(x):
    return int(x.split('.')[0])
v2=sorted(goods,key=v1)         #key对应一个函数
print(v2)                   #['1.txt', '2.txt', '3.txt', '10.txt']
#优化,使用lambda函数
goods=['1.txt','2.txt','3.txt','10.txt']
v1=sorted(goods,key=lambda x: int(x.split('.')[0]))
print(v1)                   #['1.txt', '2.txt', '3.txt', '10.txt']

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值