zoukankan      html  css  js  c++  java
  • python基础-函数

    1、什么是函数?
    函数是实现特定功能而封装起来的一组语句块,可以被用户调用

    2、函数的分类
    自定义函数(用户编写);预定义函数(系统自带,lib自带)

    3、为什么使用函数
    降低编程难度,将大问题分解为若干小问题;代码重用,函数可被多次调用

    4、函数的语法
    定义:
    def 函数名字(参数):
        函数体
        return 语句 #不带表达式的return相当于返回None

    调用:
    函数名字

    定义函数和调用函数

    函数名称最好以_分割

    #定义函数
    def print_me(str):
        print(str)
        return
    #调用函数
    print_me("我要调用用户自定义函数")
    print_me("再次调用同一函数")

    结果:

    我要调用用户自定义函数
    再次调用同一函数

    参数传递

    所有参数在python中都是按引用传递
    一句话:要变都变

    def change_me(mylist):
        mylist.append([1,2,3,4])
        print("函数内取值:",mylist)
        return
    
    mylist = [10,20,30]
    change_me(mylist)
    print("函数外取值:",mylist)

    结果:

    函数内取值: [10, 20, 30, [1, 2, 3, 4]]
    函数外取值: [10, 20, 30, [1, 2, 3, 4]]

    关于参数的点点滴滴

    def print_info(name,age = 35):
        print("Name:",name)
        print("Age:",age)
        return
    
    #调用函数
    #关键字参数,允许函数调用时参数的顺序与声明时不一致
    print_info(name='xm',age=18)
    print_info(age=50,name='xm')
    #缺省参数,缺省参数的值如果没有被传入,则被认为是默认值
    print_info(name='xm')

    结果:
    Name: xm
    Age: 18
    Name: xm
    Age: 50
    Name: xm
    Age: 35

    不定长参数

      可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数

    基础语法:

    def functionname([formal_args,] *var_args_tuple ):
       "函数_文档字符串"
       function_suite
       return [expression]
    *号的变量名会存放所有未命名的变量参数.选择不多传参数也可
    #不定长参数
    def print_info(arg1,*vartuple):
        print("输出:",arg1)
        for var in vartuple:
            print(var)
        return
    
    #调用函数
    #不多传参数
    print_info(10)
    print("
    ==============
    ")
    #多传参数
    print_info(70,60,50)

    结果:

    输出: 10

    ==============

    输出: 70
    60
    50

    匿名函数

    1、lambda只是一个表达,而不是一个代码块,函数体比def简单很多。仅仅能在lambda表达式中封装有限的逻辑
    2、语法:
    lambda [arg1][,arg2,...argn]]:expression

    sum = lambda arg1,arg2:arg1+arg2

    #调用sum函数
    print("相加后的值:",sum(10,20))

    return语句

    return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None

    def sum(arg1,arg2):
        total=arg1+arg2
        print("函数内:",total)
        return total #改为return后,返回什么? 返回的none
    
    #调用sum函数
    total=sum(10,20)
    print("函数外:",total)

    结果:

    函数内: 30
    函数外: 30

    变量作用域

    全局变量和局部变量

    1、定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域
    2、局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问

    total = 0#这是一个全局变量
    
    def sum(arg1,arg2):
        total=arg1+arg2 #total在这里是局部变量
        print("函数内是局部变量:",total)
        return total 
    
    #调用sum函数
    #total=sum(10,20)
    sum(10,20)
    print("函数外是全局变量:",total)

    结果:

    函数内是局部变量: 30
    函数外是全局变量: 0

    全局变量想作用于函数内,需加global

    counter = 1
    def do_st():
        global counter
        for i in (1,2,3):
            counter +=1   #循环3次后,counter = 4,因为是全局变量,要更改变量的值
            
    print(do_st()) #没有return语句,返回None
    print(counter) #答案是4

    结果:

    None
    4

     

     
  • 相关阅读:
    Android Studio 开发环境设置
    Android-项目介绍
    Android-开发工具
    在js 中使用ajax 调用后台代码方法,解析返回值
    $.each解析json
    VS2008 "当前不会命中断点。源代码与原始版本不同"解决方法
    64位系统 安装oracle
    session丢失返回登陆页
    DataTable转换为JsonResult
    easyui 绑定数据
  • 原文地址:https://www.cnblogs.com/R-bear/p/6966298.html
Copyright © 2011-2022 走看看