Python零基础9:函数

2020-03-19  本文已影响0人  Iphone60Plus

初识函数

函数的作用
函数是组织好的,可重复使用的,用来实现单一功能的代码
优点:使代码结构清晰、简洁

函数组成

# 内置函数: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()
上一篇下一篇

猜你喜欢

热点阅读