1、元组
元组(tuple)声明后不能被改变,包含在()之间的内容,每个元素之间用逗号隔开。列表中的元素可以是任意数据类型
tuple1=('hi','kugou','pig','dog')
print('获取索引信息:',tuple1.index("kugou"))
*代表元组,**代表字典,都是数据类型
动态参数:
1、当形式参数的个数不确定
2、当形式参数的类型不确定
def func(*args,**kwargs):
print('args',args)
print('arg的类型:',type(args))
print('kwargs',kwargs)
print('kwargs的类型:',type(kwargs))
func("hi",'kugou')
func([1,2,3,4])
func(name='lyl',age='23',sex='girl',salary='1009')
PS: 一个函数,不管是否写return的关键字,函数都是有它的返回值的,如果再定义的函数里面没有写return的关键字,那麽函数的返回值位None,如果写了,函数的返回值
就是return后面的内容。同时需要说明的是一个函数, 可以有N个返回值。
def login(username='lyl',password=123):
if username=='lyl' and password==123:
return 'balabala'
else:
print('账户或者密码有错误')
def profile(token):
if token=='balabala':
print('欢迎查看个主页')
else:
print("请登录您的账户信息")
profile(token=login())
PS:在函数里面定义的变量是局部变量,而在程序开始定义的变量是全局变量,全局变量的作用域是整个函数,二局部变量的左右仅仅是函数而已,当全局变量与局部变量的名字一
样的时候,在函数内部,局部变量是第一优先级,而函数外,全局变量是第一优先级。
name='lyl'
def func():
global name
name="hello word"
print(name)
print(name)
func()
2、内部函数: chr:数字转为字母
ord:字母转为数字
import random
def sign():
lists=[]
''''生成验证码的函数'''
for item in range(6):
# 随机生成5—100的验证码
r=random.randrange(5,100)
#由数字转为字母
lists.append(chr(r))
print(''.join(lists))
sign()
list1=[1,2,3,4,5,6,7,8,9,10]
def funFilter(a):
if a>2:
return True
print(list(filter(funFilter,list1)))
3、匿名函数
a=lambda x,y:x+y
print(a(4,5))
print(list(filter(lambda item:item>2,list1)))
def mapfun(a):
return a+10
print(list(map (mapfun,list1)))
print(list(map(lambda item:item+10,list1)))