python 函数参数枚举_测开3&4 - python(模块、函数、补充枚举函数)

1⃣️ 模块

a. random

1 importrandom2

3 num = random.randint(1,999) #生成一个1~999的随机整数

4 ran_list = random.sample('0123456789',6) #随机取几个(6),返回的是一个list,前面是一个字符串

5

6 l=[1,2,3,4,5,6,7]7 random.shuffle(l) #洗牌功能,改变原有的值

8 print(random.choice(string.digits)) #随机取一个值

9 print(random.uniform(1,999999))#随机小数

三个功能,一个 random.randint, random.sample, random.shuffle。应用在生成随机码时很好用。除此之外 random.choice 和 random.uniform 可以用。

b. string

1 importstring2

3 print(string.digits) #所有的整数

4 print(string.ascii_lowercase)#小写字母

5 print(string.ascii_uppercase) #大写字母

6 print(string.ascii_letters)#大写字母+小写字母

7 print(string.punctuation) #所有的特殊符号

返回的是一个字符串,结合 random 的方法在生成随机码时好用。

2⃣️ 函数

为避免代码的重复性,可以把实现某一功能的一堆代码定义为一个函数,使用时只需要调用函数。

涉及概念:

- 形式参数:定义函数时定义的参数,但有的函数也不需要传参

- 实际参数:实际调用函数时传入的参数

- 返回值:函数有返回值时,调用函数后需要有一个变量来接收这个返回值;函数一旦遇到 return,立即结束。返回值有多个时,要么一个变量接收(一个接收时,返回的是元组),要么接收个数同返回值个数。

- 局部变量:在函数里定义的变量都是局部变量,只能用在函数里

- 默认值参数:def register(name,sex='女')  这里,name 是必须要传的参数,sex 就是一个默认值参数,调用函数时如果没给这个值,那就是默认给‘女’

练习:写一个函数,用来判断传入的数字是否是小数

1 defis_float(num):2 num =str(num)3 if num.count('.') == 1:4 left,right = num.split('.')5 if right.isdigit() andleft.isdigit():6 returnTrue7 elif left.startswith('-') and left[1:0].isdigit() andright.isdigit():8 returnTrue9 returnFalse10

11 whileTrue:12 num = input('输入一个小数:')13 ifis_float(num):14 print('是小数')15 else:16 print('不是小数')

上面只是大体介绍了函数,下面具体写一下函数里面的东西

1. 函数的参数类型:

- 必填参数:没有默认值,不填会报错

- 默认值参数:设置默认值,不填会使用默认值

- 可变参数:*agrs,即不定长参数,不是必填参数,函数有时候不确定会有多少入参(比如一个求和函数),这时使用 *args 即可

- 关键字参数:**kwargs ,不是必填参数,输入的效果相当于字典,格式为:

def info(name,age,**kwargs):passinfo('jiaolf',18,'口红':3,'面膜':5) #相当于调用时给参数备注了具体信息

在调用函数时,如果前面带有函数定义时用的形式参数的名字,例如上面的“age=18”,就可以不必在意传参顺序,否则必须一一对应,当前面的参数带有了参数名时,后面必须带有,反之不必然。

扩展:作为补充,引入一个“解包”的概念,具体应用如下

2.变量

变量分为全局变量和局部变量,定义如下:

全局变量:都可以用的变量(建议少用,因为会一直占用内存,且容易被他人修改)

局部变量:函数内定义的变量

在函数内,如果不声明,那么与全局变量同名的变量实际上是局部变量。函数内全局变量的声明方式:

int numdefcount(a,b):globalnum

num= a+breturn num

3.一些内置函数

以上,个人认为常用的有 sorted()、exec()、eval()

a. sorted() 一个可以排序的方法,不改变原有值,所以可以用于 list, str, dic... 因此用的时候需要有变量接收它的返回结果,并且要注意⚠️的是,它的返回值是一个列表。

b. exec() 用于执行代码片段。

c. eval() 用于执行简单的代码片段,可以用于:把输入的 str 转换为类似于在 python 中的语句。它的效果也是,相当于把对象放在python中运行。

4. 匿名函数 lambda

格式: sum = lambda x,y:x+y

冒号前相当于入参,冒号后为返回值,以下为简单应用:

deftest(a,b,func):

result=func(a,b)returnresult

func_new= input('请输入一个匿名函数:') #需要把输入的当作表达式

func_new =eval(func_new)

num= test(11,22,func_new)print(num)

5. map 和 filter

a. map

map 的作用是,循环调用函数;map 会把函数每一次调用的返回值保存,最后返回

stus = ['abby','lily','lucy','lucky']defadd_prx(name):return 'taobao_%s'%name

result= list(map(add_prx,stus)) #map使用时,括号内前面为函数名,注意函数名不能加(),后面为要循环的内容

print(result)

b. filter

filter 作用是,循环调用函数;过滤传入的参数,函数结果返回 True 则保存,False 则不保存

stu_score = [60,50,70,30,40,90,80]defjudge(score):return score>=60result=list(fileter(judge,stu_score))print(result)

6. 枚举函数

作用:把某个可循环的对象取到下标和元素

1 l = ['lucy','lily','moco','hm','zara']2 for index,i inenumerate(l):3 print('编号%s -> %s'%(index,i))

结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值