函数基础和函数参数
一、函数基础
- 定义:
def 函数名(参数): # 函数名 一般首字母小写 小驼峰命名法
pass # 关键字 作用是防止函数(if elif for...有缩进的函数) 里面没有写东西而报错
<执行代码>
return <表达式> # 关键字 后面可以返回任意表达式但不能接赋值语句 其作用有2点:
1. 返回值、变量或表达式,默认返回None(如果不写return,则返还None)
2. 结束函数
- 函数调用
函数名() # 函数调用 1.执行函数里面的代码 2.自己就是一个值,这个值是return所返还的值
小技巧:Pycharm下快速注释与取消的快捷键:Ctrl+/
二、函数参数
- 必备参数
def eat(name,c): # 必备参数 形参 个数没有限制 但前面有几个必备参数,调用时就要传几个实参
print('%s加鸡腿'%name)
print('%s来瓶可乐'%name)
eat('老王','吃吃吃') # 实参 位置传参
eat(c='吃吃吃',name='老王') # 关键字传参
- 默认参数
def sleep(name='老王'): # 默认参数 可传可不传 已经赋值
print('%s睡觉'%name)
sleep('小李') # 输出为'小李睡觉'
- 不定长参数
def drink(*args,**kwargs): # 不定长参数 0到任意个
print(args) # *args 存在元组里面 注意print的时候,args前面不加*
print(kwargs) # **kwargs 存在字典里面 注意print的时候,kwargs前面不加**
drink('可乐','雪碧','橙汁',a='矿泉水',b='王老吉',**{'c':'冰峰','d'='奶茶'}) # **kwargs的两种实参形式注意:1. 必备参数必须在默认参数前面 调用时,优先传实参给必备参数
2. 传实参时,*args的参数要在**kwargs前面
3 函数有混合参数,通常顺序如下:
(name,*args,wight='52',**kwargs) # 必备参数,不定长args,默认参数,**kwarg 那么如果要改默认参数wight的值,就需要在实参中,写出wight='60'
三、常见的内置函数
python中的简单内置函数
- 内置对象查看:
- dir(__builtins__) # 查看方法
- 常见函数:
- len(obj) # 求长度
- min(obj) # 求最小值
- max(obj) # 求最大值
- sorted(obj) # 排序 返还的是一个列表 只能对相同类型的数据进行排序,且数值型中,复数不能和其他数值类型一起排序
- reversed(obj) # 反向 返还的是一个16进制的地址,需要通过list()来转换成列表
- sum(obj) # 求和
注意:sort()与sorted的区别:
之前所学的.sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
注:一般来说,cmp和key可以使用lambda表达式。
- 进制转换函数:
- bin(obj) # 转换为二进制
- oct(obj) # 转换为八进制
- hex(obj) # 转换为十六进制
- ord(obj) # 字符转ASCII码
- chr(obj) # ASCII码转字符
python中的高级内置函数
- enumerate
# 返回一个可以枚举的对象 (返还一个序列类型,返回的类型取决于enumerate函数前的方法类型)
print(dict(enumerate(['a','b','c']))) # key 从0开始
- eval() #
1. 取出字符串中的内容
2.将字符串str当成有效的表达式来求指并返回计算结果
- exec() #
执行字符串编译过的字符串
- filter() # 过滤器
li = [1,23,3,5,6]
def ss(a):
return True if a<5 else False
print(list(filter(ss,li))) # 返回过滤的值 输出为[23,6]
- map() #
对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回
li = [1,23,3,5,6]
def ss(a):
return 'ss' if a<5 else False
print(list(map(ss,li))) # 一个一个的过滤 返回的值为一组由'ss'或False组成的列表
- zip # 将对象逐一配对 返回的是一个字典

浙公网安备 33010602011771号