• 函数(一)


    一.函数定义

    def  hello():
        .
        .   
        .

    二.形参、实参

    def calc(x,y):        #此处的x,y就是形参,被调用时才分配内存,调用完成后就删除
    
        res = x**y
    
        print(res)
    
    a = int(input(">>>"))
    
    b = int(input(">>>"))
    
    c = calc(a,b)         #此处的a,b就是实参,不管调不调用都必须有确定的值

    三.默认参数

    def name_register(name, age, course="py", country="CN"):  #course和country都是默认函数,此函数必须放在位置参数后
        print(name, age, course, country)
    
    name_register(input("name"),int(input("age")))

    四.关键参数

    调用关键参数可以这样调用

    def name_register(name,age, course="py", country="CN"):  
        print(name, age, course, country)
    
    name_register("王大锤",course="py",age=22)    #函数调用和位置参数,此时course就是一个关键参数,age仍然可以正常显示只需要用age=23这样的语句
    name_register("王大锤",course="py",22)       #绝对不可以使用这样的语句调用

    五.非固定参数

    1).元组

    方法一:

    def send_alert(msg,*user):  #当形参前加一个*号时,传递的参数就不再是固定个数,而是把传送到的数据打包成一个元组,此处一般不用*user而是用*arg
    for u in user: print("发送msg给",u) send_alert("alert","user1","user2","user3".....)  #这样就可以做到用一条语句给多个人发送警报  

     方法二:

    def send_alert(msg,*user):
    
        for u in user:
    
            print("发送msg给",u)
    
    send_alert("alert",*["user1","user2","user3".....])  #以一个列表的形式传送时,一定要注意在列表前加*,否则会把整个列表打包成一个元组

    注意:使用*arg这种参数时,一定把带*的参数放到最后

    def send_alert(msg,*user,age):
    
        for u in user:
    
            print("发送msg给",u)
    
    send_alert("alert","user1","user2","user3",22)

    age如果放到*user后,user1、2、3,22都会被算到user中,age会因为得不到参数而报错

    2).字典

    def send_alert(msg,*args,**kwargs):
    
        for u in user:
    
            print("发送msg给",u)
    
    d = {"key":"value"}
    
    send_alert("alert",*["user1","user2","user3"],**d)

    元组需要一个" * ",而字典需要" ** "

    六.函数返回值

    def stu_register(name,age,course = "python", country = "CHINA"):
    if age < 23:
    return True
    else:
    return False
    data = stu_register(input("name:"),int(input("age:")),"doctor","CN")
    if data:
    print("注册成功")
    else:
    print("too old")

     函数执行过程中遇到return就是停止执行,并返回返回值,如果没有设置返回值默认为None

  • 相关阅读:
    java——ArrayList中remove()方法疑问总结
    java——ArrayList中contains()方法中的疑问
    C语言中signed和unsigned理解
    IO流——常用IO流详解
    Lost's revenge
    Searching the String
    DNA repair
    Ring
    Wireless Password
    Censored!
  • 原文地址:https://www.cnblogs.com/sunj-96/p/10638041.html
Copyright © 2020-2023  润新知