zoukankan      html  css  js  c++  java
  • day03-Python基础

    1:函数

    定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

    特性:

    1. 减少重复代码
    2. 使程序变的可扩展
    3. 使程序变得易维护

    函数定义:

    def sayhi():  #函数名
        print("Hello,I'm nobody!")
    sayhi()  #调用函数
    

    2:函数参数与局部变量

    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

    实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

    def calc(x,y):  #x,y形参
        res = x**y
        return res
    
    c = calc(a,b)  #a,b实参
    print(c)
    

    默认参数

    def stu_register(name,age,country,course):
        print("------学生信息---------")
        print("姓名:",name)
        print("age:",age)
        print("国籍:",country)
        print("课程:",course)
    
    stu_register("Guido",54,"CN","Python")
    stu_register("Scott",54,"CN","SQL")
    

     发现 country 这个参数 基本都 是"CN",通过默认参数实现

    def stu_register(name,age,course,country="CN"):
        print("------学生信息---------")
        print("姓名:",name)
        print("age:",age)
        print("国籍:",country)
        print("课程:",course)
    
    stu_register("linus",54,"Linux")
    

     关键参数:

    正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。 

    stu_register(age=56,name="james",course="Java")
    

     非固定参数

    若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

    def stu_register(name,age,*args):  # *args 会把多传入的参数变成一个元组形式
        print(name,age,args)
    stu_register("Guido",32)
    #输出Guido 32 ()   #后面这个()就是args,只是因为没传值,所以为空
    stu_register("Guido",32,"Python","IT")
    #输出:Guido 32 ('Python', 'IT')

    另一个**kwargs

    def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
        print(name,age,args,kwargs)
    
    stu_register("Guido",32)
    #输出:Guido 32 () {}  #后面这个{}就是kwargs,只是因为没传值,所以为空 stu_register("James",64,"US","Java",gender="male",hobby="IT")
    #输出:James 64 ('US', 'Java') {'gender': 'male', 'hobby': 'IT'}

    局部变量

    name = "Guido"
    def change_name(name):
        print("before change:",name)
        name = "龟叔"
        print("after change",name)
    
    change_name(name)
    print("在外面看看name改了吗?",name)
    输出:

    before change: Guido
    after change 龟叔
    在外面看看name改了吗? Guido

    全局与局部变量

    在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
    全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
    当全局变量与局部变量同名时:
    在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

    3:返回值

    要想获取函数的执行结果,就可以用return语句把结果返回

    注意:

    1. 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
    2. 如果未在函数中指定return,那这个函数的返回值为None 

    嵌套函数

    name = "Guido"
    def change_name():
        name = "Guido2"
    
        def change_name2():
            name = "Guido3"
            print("第3层打印",name)
        change_name2()
        print("第2层打印",name)
    
    change_name()
    print("最外层打印",name)
    View Code

    4:递归

    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

    def calc(n):
        print(n)
        if int(n/2) == 0:
            return n
        return calc(int(n/2))
    
    calc(10)
    
  • 相关阅读:
    (转)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通过区域提议网络实现实时)
    vi常用命令
    Windows与Ubuntu通过ssh传文件
    Windows建立FTP服务器与Ubuntu互传文件
    备忘
    一些大牛博客地址
    springboot、springcloud学习记录
    我的git记录
    svn
    我的linux命令记录
  • 原文地址:https://www.cnblogs.com/elontian/p/6378998.html
Copyright © 2011-2022 走看看