初识函数
函数的作用
函数是组织好的,可重复使用的,用来实现单一功能的代码
优点:使代码结构清晰、简洁
函数组成
# 内置函数:len() type() input()……
# 括号里为参数
定义和调用函数
# 函数名:1、可使用小写字母、下滑线、数字组合2、不可和内置函数重名
def diy(x):
# 参数:要以有多个参数,也可以没有参数,命名规则和函数相同
# 规则:英文下冒号,不能丢
y = x**2 + x
# 函数体:函数执行过程,空格4个不能丢
return y
# return语句:后面可接多种数据类型,如不需返回值的话,可忽略
# 自定义函数
def diy(x):
y = x**2 + x
return y
print(diy(2))
# print(len('三根皮带,四斤大豆'))自定义函数
def length(b):
a=0
for i in b:
a += 1
return a
print(length('三根皮带,四斤大豆'))
函数的进阶使用
参数类型
# 无参数 1、执行过程 如:打印 2、返回结果 如不返回结果,默认也带retrun
def opening():
print('今日开业大吉')
opening()
# 多参数 按顺序和数量传递
def menu(appetizer, course):
print('一份开胃菜:{}'.format(appetizer))
print('一份主食:{}'.format(course))
menu('话梅花生','牛肉拉面')
# 多参数+默认参数 1、默认参数需赋值,且默认参数可更改2、默认参数放在位置参数后面
def menu(appetizer, course,dessert = '绿豆沙'):
print('一份开胃菜:{}'.format(appetizer))
print('一份主食:{}'.format(course))
print('一份免费菜品:{}'.format(dessert))
menu('话梅花生','牛肉拉面')
menu('话梅花生','牛肉拉面','银耳羹')
# 不定长参数 没for循环默认是元组,元组中元素不可更改
def menu1(*barbeque):
for i in barbeque:
print('一份烤串:{}'.format(i))
menu1('烤香肠','烤肉丸')
menu1('烤鸡翅','烤茄子','烤玉米')
返回多个值
# 自定义函数输入和输出都可以多个值,return b,'溏心蛋',多个值为元组
import random
menu = ['话梅花生','拍黄瓜','凉拌三丝']
def lottery(money):
if money < 5:
a = random.choice(menu)
return a
elif 5 <= money <=10:
b = random.choice(menu)
return b,'溏心蛋'
for i in lottery(7):
print(i)
# 元组的两个元素分别赋值给dish,gee.
dish, egg = lottery (7)
print(dish)
print(egg)
多个函数间的配合
变量作用域
# 全局变量 rent=3000 局部变量 aaa=renewcommand+cost
# 局部变量只可在定义函数内部使用
rent = 3000
def variables():
renewcommand = int(input('你本月的水电成本是:'))
cost = int(input('你本月的材料成本是:'))
aaa = renewcommand+cost
print('你本月的变动成本是{}'.format(aaa))
return aaa
def bbb():
ccc =rent+variables()
print('你本月的总成本是{}'.format(ccc))
bbb()
# 原始方法,都是全局变量都可使用
rent = 3000
renewcommand = int(input('你本月的水电成本是:'))
cost = int(input('你本月的材料成本是:'))
aaa = renewcommand+cost
def variables():
print('你本月的变动成本是{}'.format(aaa))
def bbb():
ccc =rent+aaa
print('你本月的总成本是{}'.format(ccc))
variables()
bbb()
# global将局部变量变为全局变量,且在函数体的第一行
rent = 3000
def variables():
global aaa
renewcommand = int(input('你本月的水电成本是:'))
cost = int(input('你本月的材料成本是:'))
aaa = renewcommand+cost
print('你本月的变动成本是{}'.format(aaa))
return aaa
def bbb():
ccc =rent+aaa
print('你本月的总成本是{}'.format(ccc))
variables()
bbb()
函数嵌套
#
def profit(sum1,sum2):
Proportion=(sum1-sum2)/sum2
m_proportion=str(Proportion*100)+'%'
return m_proportion
def div():
print('你确定上月的利润为0嘛?')
def main():
sum1=int(input('请输入本月的利润:'))
sum2=int(input('请输入上月的利润:'))
if sum2 == 0:
div()
else:
print('你这个月的利润率为{}'.format(profit(sum1,sum2)))
main()
网友评论