python基本语法之函数
小摘花python课堂更新啦!
定义和调用函数
def greet(name): #函数名
print(name+'早上好') #函数体
return #返回值
greet('Lily') #调用函数,输入函数名pika()并输入参数'Lily'
>>Lily早上好
位置参数
def menu(appetizer,course):
print('一份开胃菜:'+appetizer)
print('一份主食:'+course)
menu('话梅花生','牛肉拉面')
>>一份话梅花生
>>一份牛肉拉面
默认参数
def menu(appetizer,course,dessert='绿豆沙'):
print('一份开胃菜:'+appetizer)
print('一份主食:'+course)
print('一份甜品:'+dessert)
menu('话梅花生','牛肉拉面')
#因为已经默认将'绿豆沙'传递给dessert,调用时无须再传递。
>>一份开胃菜话梅花生
>>一份主食牛肉拉面
>>一份甜品绿豆沙
不定长参数
def menu(appetizer,course,*barbeque,dessert='绿豆沙'):
print('一份开胃菜:'+appetizer)
print('一份主菜:'+course)
print('一份甜品:'+dessert)
#这时候默认参数也需要放在不定长参数的后面,即dessert=’绿豆沙'要放在*barbeque后面,否则传递的值会对应不上。
for i in barbeque:
print('一份烤串:'+i)
menu('话梅花生','牛肉拉面','烤鸡翅','烤茄子','烤玉米')
>>一份开胃菜话梅花生
>>一份主菜牛肉拉面
>>一份甜品绿豆沙
>>一份烤串烤鸡翅
>>一份烤串考茄子
>>一份烤串烤玉米
return语法
def age_question(age):
if age < 12:
return '哈,是祖国的花朵啊'
elif age < 25:
return '哇,是小鲜肉呢'
else:
return '嗯,人生才刚刚开始'
print(age_question(30))
>>嗯,人生才刚刚开始
return语句的作用:当多个函数之间相互配合时,我们并不需要第一时间就将结果打印出来,而是需要将某个返回值先放着,等到需要的时候再做进一步的处理。return语句可以保留返回值。
def face(name):
return name + '的脸蛋'
def body(name):
return name + '的身材'
print('我的梦中情人:'+face('李若彤') +' + ' + body('林志玲'))
>>我的梦中情人:李若彤的脸蛋+李志玲的身材
main()主函数
def face(name):
return name + '的脸蛋'
def body(name):
return name + '的身材'
def main(dream_face,dream_body):
return '我的梦中情人:' + face(dream_face) + ' + ' + body(dream_body)
print(main('李若彤','林志玲'))
print(main('新垣结衣','长泽雅美'))
一次性返回两个值:一次接受多个返回值的数据类型就是元组。
def lover(name1,name2):
face = name1 + '的脸蛋'
body = name2 + '的身材'
return face,body
a=lover('李若彤','林志玲') #此时返回的是元组是('李若彤的脸蛋','林志玲的身材')
print('我的梦中情人:'+a[0]+' + '+a[1])
没有return语句的函数会默认返回none值
变量作用域
第一点:在一个函数内定义的变量仅能在函数内部使用(局部作用域),它们被称作[局部变量]。
第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),被称作[全局变量]。
当变量处于被定义的函数内时,就是局部变量,只能在这个函数内被访问;当变量处于被定义的函数外时,就是全局变量,可以在程序中的任何位置被访问。
x=99
def num():
x=88
print(x)
num()
*打印局部变量x*
print(x)
*打印全局变量x*
def egg():
quantity = 108
egg()
print(quantity)
*会报错,不能在函数外部(全局作用域)使用函数内的局部变量*
quantity = 108
def egg():
print(quantity)
egg()
*函数内的局部作用域,可以访问全局变量*
def egg():
global quantity
quantity = 108
egg()
print(quantity)
*global语句可以将局部变量声明为全局变量*