Python 函数的定义及基本用法

一,函数:实现具有特定功能的代码;特点:隐藏实现功能的细节  代码可重用  提高可读性 便于调试

1,语法:

       def 函数名(形式参数(形参)1,形式参数2,....形式参数n):

               要运行的代码(函数体)

               return 输出的数据(返回值)

 示例:输出一首古诗

def print_arch():
    print('鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波')
    print('*' * 50)
    print('鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波')
    print('*' * 50)
    print('鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波')
    print('*' * 50)
print_arch()

 运行结果:

  

2,函数传参:

  示例:

def print_verse(verse_name,isTitle,isDynasty):
    if verse_name == '静夜思':
        if isTitle == True:
            print('静夜思-李白')
        if isDynasty == True:
            print('唐朝')
        print('窗前明月光')
    elif verse_name == '再别康桥':
        if isTitle == True:
            print('再别康桥-李白')
        if isDynasty == True:
            print('民国')
        print('曲项向天歌')
print_verse('静夜思',True,False)
print('')
print_verse('再别康桥',True,True)

运行结果:

二,函数返回值:

      对于函数来说return 不是必须,但是return语句执行后 函数将中断执行

       示例1:编写汇率计算器 amt金额 source原始货币 target要转换的货币

                   人民币对美金汇率 6.7516 :1 amt、6.7516 = 美金

def exchange_rate_calc(amt,source,target):
    if source == 'CNY' and target == 'USD':
        result = amt / 6.7516
        return result
e = exchange_rate_calc(100,'CNY','USD')
print(e)
#>>> 14.811303987203035  (200人民币转换为美金 是 14.811303987203035)

  示例2:输入用户名和密码 输入正确显示 登录成功 否则显示 返回 请重新登录

def login(username,password):
      username = input('请输入用户名:')
      password = input('请输入密码:')
      if username == 'imooc' and password == '123456':
          print('登录成功')
          return
      else:
          print('返回请重新登录')
e = login('imooc','123456')

 运行结果:

  

三,函数的使用技巧

   1,设置参数的默认值:只需要在形参后面增加 = 具体值 即可

     示例: 

def exchange_rate(amt,source = 'CNY',target = 'USD'):
    if source == 'CNY' and target == 'USD':
        result = amt / 6.7516
        return  result
    elif source == 'CNY' and target == 'EUR':
        result = amt / 7.7512
        return result
print(exchange_rate(100)) #默认为人民币对美金的换算
#>>>> 14.811303987203035
print(exchange_rate(100,'CNY','EUR'))#人民币对欧元的换算
#>>>> 12.901228196924347

  2,以形参形式传参(关键字传参)

     示例:

def healthMsg(name,age,height,weight,hr,hbp,glu):#参数过多 建议封装成字典 将整个字典传过来
    print('您的健康状况良好')
healthMsg('张三',18,185,65,80,120,4.3)#从阅读代码 比较繁琐,参数过多,看不出函数定义,要按照参数定义前后顺序书写;
healthMsg(name='张三',age=18,height=185,weight=65,hr=80,hbp=120,glu=4.3)#不必按照参数定义前后顺序书写;




# #混合形式传参:
# # * 代表之后所有参数传参时必须使用关键字传参
def healthMsg1(name,age,*,height,weight,hr,hbp,glu):
    print('您的健康状况良好')
healthMsg1('张三',18,height=185,weight=6,hr=80,hbp=120,glu=4.3)

3,序列传参:利用序列为参数进行赋值:

  示例:

def calc(a,b,c):
    return (a + b) * c
d = [1,8,3]
print(calc(*d)) #>>>>27

4,字典传参:

def healthMsg(name,age,height,weight,hr,hbp,glu):
    print('您的健康状况良好')
param = {'name':'张三','age':18,'height':185,'weight':65,'hr':80,'hbp':120,'glu':4.3}
healthMsg(**param)

5,返回值传参

  示例:

def getInfor():
    dict2 = {
        'emp':[
            {'name':'张三','age':18,'salary':500},
            {'name': '李四', 'age': 28, 'salary': 600}
        ],
        'device':[
            {'id':'123456','title':'XX电脑'},
            {'id': '55566', 'title': 'XX笔记本'}
        ]
    }
    return dict2
print(getInfor())
#输出>>{'emp': [{'name': '张三', 'age': 18, 'salary': 500}, {'name': '李四', 'age': 28, 'salary': 600}], 'device': [{'id': '123456', 'title': 'XX电脑'}, {'id': '55566', 'title': 'XX笔记本'}]}
#取值:例如取 李四的年龄 数据
n = getInfor().get('emp')[1].get('age')
print(n)#输出>> 28

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值