zoukankan      html  css  js  c++  java
  • 函数(一)

                                                      函数(一)

    • 函数—基本介绍

     1 #定义函数
     2 def sayhi():
     3     print("Hello,")
     4     print("my name is black girl...")
     5 print(sayhi)      #打印的是内存地址:<function sayhi at 0x000001DB225D27B8>
     6 sayhi()           #通过函数名进行调用函数
     7 
     8 
     9 #函数也可以带有参数
    10 def sayhi(name):
    11     print("hello",name)
    12     print("my name is black girl.")
    13 #sayhi()         报错  TypeError: sayhi() missing 1 required positional argument: 'name'     缺少位置参数
    14 sayhi('TQTL')    #结果为:Hello TQTL
    15 
    16 
    17 #计算两个数的乘方的程序
    18 a,b = 5,10
    19 c = a**b
    20 print(c)               #结果为:9765625
    21 #使用函数的程序
    22 def calc(x,y):
    23     res = x**y
    24     print(res)
    25 calc(5,10)#结果为:9765625
    26 calc(6,5)#结果为:7776
    •  函数—默认参数

     1 def stu_register(name,age,country,course) :   #实参
     2     print("registriation info ...")
     3     print(name,age,country,course)
     4 
     5 stu_register("王山炮",22,"CN","Python")     #实参
     6 stu_register("张叫春",21,"CN","Linux")
     7 stu_register("刘老根",25,"CN","Devops")
     8 #结果为:
     9 # registriation info ...
    10 #王山炮 22 CN Python
    11 #registriation info ...
    12 #张叫春 21 CN Linux
    13 #registriation info ...
    14 #刘老根 25 CN Devops
    15 
    16 
    17 #使用默认参数
    18 def stu_register(name,age,course,country="CN") :   #实参
    19     print("registriation info ...")
    20     print(name,age,country,course)
    21 
    22 stu_register("王山炮",22,"Python")     #实参
    23 stu_register("张叫春",21,"Linux")
    24 stu_register("刘老根",25,"Devops","Korean")
    25 #结果为:
    26 #registriation info ...
    27 #王山炮 22 CN Python
    28 #registriation info ...
    29 #张叫春 21 CN Linux
    30 #registriation info ...
    31 #刘老根 25 Korean Devops
    32 
    33 #注意:默认参数必须放在位置参数之后。
    • 函数—关键参数

     1 #错误实例1
     2 def stu_register(name,age,course,country="CN") :   #实参
     3     print("registriation info ...")
     4     print(name,age,country,course)
     5 
     6 stu_register("王山炮",course="Python",22)     #实参
     7 #结果为:SyntaxError: positional argument follows keyword argument
     8 
     9 #错误实例2
    10 def stu_register(name,age,course,country="CN") :   #实参
    11     print("registriation info ...")
    12     print(name,age,country,course)
    13 
    14 stu_register("王山炮",22,course="Python",age=22)     #实参
    15 #结果为:TypeError: stu_register() got multiple values for argument 'age'
    16 
    17 
    18 #注意:关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后。
    • 函数—非固定参数1

     1 #给一个运维人员报警
     2 def send_alert(msg,users):
     3     print(msg,users)
     4 send_alert("报警发送给:","alex")
     5 #结果为:报警发送给: alex
     6 
     7 #给五个运维人员报警
     8 def send_alert(msg,*users):
     9     for u in users :
    10          print("报警发送给:",u)
    11 #方式一:
    12 send_alert("报警发送给:","alex","wqq","shanshan","zhang","liming")
    13 #结果为:
    14 # 报警发送给: alex
    15 #报警发送给: wqq
    16 #报警发送给: shanshan
    17 #报警发送给: zhang
    18 #报警发送给: liming
    19 
    20 #方式二:
    21 #不加 * 错误的方法:
    22 send_alert("报警发送给:",["alex","wqq","shanshan","zhang","liming"])
    23 #结果为:报警发送给: ['alex', 'wqq', 'shanshan', 'zhang', 'liming']
    24 
    25 #加 * 的方法
    26 send_alert("报警发送给:",*["alex","wqq","shanshan","zhang","liming"])
    27 #结果为:
    28 # 报警发送给: alex
    29 #报警发送给: wqq
    30 #报警发送给: shanshan
    31 #报警发送给: zhang
    32 #报警发送给: liming
    33 
    34 #小结:
    35 #如果参数中出现*us ers,传递的参数就可以不再是固定个数,传过来的所有参数打包成元组形式

    • 函数—非固定参数2

     1 def func(name,*args,**kwargs):       #**kwargs接受的是字典形式的数据
     2     print(name,args,kwargs)
     3 func("Alex",22,"tesla","500w",addr="山东",num=12442323)
     4 #结果为:Alex (22, 'tesla', '500w') {'addr': '山东', 'num': 12442323}
     5 
     6 d={'degree':'primary school'}
     7 func('Peiqi',d)
     8 #结果为:Peiqi ({'degree': 'primary school'},) {}       此时d为字典形式
     9 
    10 #字典前面加上**,就可以传参正常
    11 d={'degree':'primary school'}
    12 func('Peiqi',**d)
    13 #结果为:Peiqi () {'degree': 'primary school'}
    • 函数—返回值

     

     1 #案例1:
     2 def stu_register(name,age,course):
     3     print(name,age,course)
     4     if age > 22:
     5         return False
     6     else:
     7         return True
     8 status = stu_register('Peiqi',29,'安保')
     9 print(status)
    10 #结果为:  Peiqi 29 安保            False
    11 
    12 #案例2:
    13 def stu_register(name,age,course):
    14     print(name,age,course)
    15 status = stu_register('Peiqi',29,'安保')
    16 print(status)
    17 #结果为:  Peiqi 29 安保       None
    18 
    19 #案例3:
    20 def stu_register(name,age,course):
    21     print(name,age,course)
    22     return None
    23     print("hahahha")
    24 status = stu_register('Peiqi',29,'安保')
    25 print(status)
    26 #结果为:  Peiqi 29 安保       None           return 代表一个函数的终止
    27 
    28 #案例4:
    29 def stu_register(name,age,course):
    30     print(name,age,course)
    31     return None
    32     print("hahahha")
    33     return  1
    34 status = stu_register('Peiqi',29,'安保')
    35 print(status)
    36 #结果为:  Peiqi 29 安保       None           return 代表一个函数的终止
    37 
    38 
    39 #小结:
    40 1、函数在执行过程中,只要遇到return语句,就会停止执行并返回结果。
    41 2、如果在函数中未指定return语句,那么这个函数的返回值为None。
  • 相关阅读:
    HDU4507 吉哥系列故事――恨7不成妻(数位dp)
    UCF Local Programming Contest 2017 G题(dp)
    ICPC Latin American Regional Contests 2019 I题
    UCF Local Programming Contest 2017 H题(区间dp)
    HDU2089 不要62
    AcWing1084 数字游戏II(数位dp)
    UCF Local Programming Contest 2017 F题(最短路)
    Google Code Jam 2019 Round 1A Pylons(爆搜+贪心)
    AcWing1083 Windy数(数位dp)
    Vue
  • 原文地址:https://www.cnblogs.com/wqq0723/p/9579361.html
Copyright © 2011-2022 走看看