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。
  • 相关阅读:
    我的python之路5
    我的python之路4
    我的python之路3
    我的python之路2
    我的python之路1
    AJAX 表单提交 文件上传
    PBKDF2WithHmacSHA1算法
    Ant 随想
    maven 启蒙
    HELLO WORLD
  • 原文地址:https://www.cnblogs.com/wqq0723/p/9579361.html
Copyright © 2011-2022 走看看