python_函数初识

一、函数的定义与调用
'''
定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个':'
def 是固定的,不能变,它就是定义函数的关键字
   函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。
虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能
   括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!
注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。
调用:就是 函数名() 要记得加上括号。
'''
return 返回一个值
def count_len(s):
length = 0
for i in s:
length+=1
return length

s = 'abcdefg'
print(count_len(s))

函数的返回值 return
没有返回值,不写return的情况下,会默认返回一个None

只写return,后面不写其它内容,也会返回None,一旦遇到return,结束整个函数
def fun():
return
print(112)

print(fun())

返回多个值,可以返回多个,任意数据类型的值
返回的多个值会以元祖形式返回,也可用多个值来接收
def fun():
return 1,['a',2],{'namet':'alex'},(5,6)

print(fun())

返回多个值用一个变量接收
def get():
return 'a',[2,1],{'name':'alex'}

s = get()
print(s)

返回多个值用多个变量接收
def get():
return 'a',[2,1],{'name':'alex'}

a,b,c = get()
print(a,b,c)

函数的参数
实参与形参
实参:调用函数时传递的'alex'叫做实际参数,因为这个是实际要交给函数的内容,简称实参
形参:定义函数是的name,只是一个变量的名字,被称为形式参数,因为在定义函数时它只是一个形式
表示这里有一个参数,简称形参
传递多个参数:参数可以传递多个,多个参数之间用逗号隔开
def get_info(name):
return name
get_info('alex')

位置参数
1、站在实参角度,按照位置参数
def func(x,y):
if x>y:
return x
else:
return y

print(func(10,20))

2、按照关键字传值
def func(x,y):
if x>y:
return x
else:
return y

print(func(y=2,x=3))

3、位置、关键字形式混着用
def func(x,y):
if x>y:
return x
else:
return y

print(func(2,y=3))

正确用法
问题一:位置参数必须在关键字参数的前面
问题二:对于一个形参只能赋值一次

站在形参角度:位置参数必须传值
def fun(x):
return
print(fun())
TypeError: fun() missing 1 required positional argument: 'x'

默认参数
1、正常使用
使用方法
为什要有默认参数:将变化比较小的值设置成默认值

2、默认参数的定义
def get_info(name,sex='male'):
打印学生信息函数,性别默认为男性
return name,sex
print(get_info('alex'))
print(get_info('taibai','female'))

3、参数陷进:默认参数是一个可变数据类型
def default_param(a,l=[]):
l.append(a)
return l
print(default_param('a'))
print(default_param('b'))

动态参数
'''
动态参数:也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,你就用*args,
**kwargs接收,args是元祖形式,接收除去键值对以外的参数,kwargs接收的只是键值对参数
并保存在字典中
'''
def trans_param(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))

trans_param('a',1,[2,3],('c','d'),{'name':'alex'},age='male',a=123)
posted on 2018-08-15 21:28  旧巷子里的猫  阅读(181)  评论(0编辑  收藏  举报