为了账号安全,请及时绑定邮箱和手机立即绑定

python---函数参数、变量

标签:
Python

·函数的参数
··参数
1、形式参数:parameter--形式参数
创建函数时,小括号内的参数
2、实际参数:argument--实参
函数调用时,小括号内传递进去的参数

··函数文档
1、直接书写字符串
2、用#标记单行的注释
3、可以用print(‘内容’)直接输出内容

#-- coding: utf-8 --
#这个函数求两个数值之和
def add(num1,num2):
'把num1和num2 的和进行返回'#这行字符串是一个注释
print ('求两个值的和')
return num1+num2

print add(1,2)

函数文档的读取:
1、函数名.doc   两个下划线 属性名 doc里面存储文本与注释
int.doc
2.help(函数名)
help(str)

··关键字参数

定义了关键字的参数

1、位置参数:
直接给参数(和位置有关--一一对应)
2、关键字参数

    def myFunction(num1,num2):    print num1,num2    myFunction(num2='world',num1='hello')    1、位置参数与关键字参数混用的时候,位置参数必须在关键字            参数的前面            def myFunction(a,b,c):            print a,b,c            myFunction(a='hello','world','python')            返回错误        2、不要给同一个形参多次赋值          def myFunction(a,b,c):          print a,b,c          myFunction(a='hello',b='world',b='python')            返回错误

···默认参数

是定义了默认值的参数 def myFunction(a='hello',b='world'): print a,b myFunction('hhe','dsb')    返回hehe das1、默认参数与位置参数混用的时候,位置参数必须在默认参数之前,位置参数要前面放    def myFunction(a='hello',b='world'):    print a,b    myFunction(,'dsb')            返回错误     2、默认参数只能在函数定义阶段赋值一次(仅仅一次)      def myFunction(a='hello',b='world'):       print a,b       myFunction()        关键字参数在函数调用时候定义,默认参数在函数定义的时候赋值。

····可变长参数(收集参数)

1、在参数前面加上*
将所有参数打包元祖,进行输出

                    def fun(*a):                    print a                    fun('hehe','hello')

2、在参数上面加**
将所有参数打包成字典

·······命名关键字参数

可变长参数后面的参数应该使用命名关键字参数

    def fun(*a,b):    print a    fun('hehe','hello',b='world')    def fun(b,*a):    print a    fun('hehe','hello','world')

1、可变长参数必须在位置参数后

print函数的参数就是可变长参数,输出元祖

API文档如何查看 help 或者F1

函数和过程

函数 function
过程 procedure

python 只有函数 ,没有过程

····返回值

即便没有在函数中写return语句,函数也会返回一个结果,这个结果为None,为空数据类型。如果要返回多个值,可以直接书写,多个值之间用逗号隔开,返回值为一个元祖。···函数变量的作用域变量有作用域(变量的可见性)

1、局部变量:local variable

        1、定义在函数内部的变量        2、先赋值,后使用        3、作用范围从定义开始到包含代码块结束

2、全局变量 global variable

        1、定义在函数的外部        2、先赋值后使用        3、作用范围:整个文件,可以被多个函数调用        4、如果局部变量与全局变量发生冲突,以局部变量为准            def fun1(para1):            print para1            def fun2(para1):            print para1            a=10            def fun3(para1):                        a=20                        print para1            fun1(a)            fun2(a)            fun3(a)

在函数内部访问全局变量的时候,在函数内部创建一个相同的局部变量,原来局部变量不变
a=10
def fun3():
a=20
print a
fun3()
print a

3、global 全局变量

  a=10        def fun3():                        global a                        a=20                        print a        fun3()        print a        结果返回两个20        定义全局变量(如果在函数中修改global定义的变量,全局变量跟着改变)

·内嵌函数
定义在函数内部的函数:内嵌函数(内部函数)

内部函数的整个作用域,都在外部函数之内(从定义开始到包含它的代码块结束)

    1、外部函数的局部变量与内部函数的局部变量发生命名冲突,以内部函数的局部变量优先    2.外部函数不能访问内部函数的局部变量    3.在内部函数中访问外部函数的局部变量时,不能进行a+=1,这样的操作,原因就是a+1中的局部变量a没有赋值。

#lambda表达式
python 允许使用lambda表达式创建匿名函数

···匿名函数
没有函数名的函数:
lambda表达式:
1、关键字:lambda
2、创建形式:lambda函数的参数:函数的实现
3、lambda语句构建了一个函数对象,返回一个函数对象的信息,只需要赋值

  fun=lambda a:a+1      print fun(3)

4、如果传入多个参数

    fun=lambda a,b,c:a+b+c    print fun(2,3,4,)··作用 1、只需要使用一次,更加精简,不要单独创建函数2、简化代码,提高代码的可读性

函数的嵌套与递归

··函数的嵌套:在一个函数中调用其他函数

解一元二次方程

                ax^2+bx+c=0                x=frac{-b\pm{\sqrt{b^2-4ac}}}{2a}    def jieFangCheng(a,b,c):#先判断方程有没有解            if qiuJie(a,b,c):#判断qiuJie()返回的真还是假    #继续解方程求出所有的解                delta = b*b-4*a*c                x1=(-b+delta**0.5)/2*a                x2=(-b-delta**0.5)/2*a                print x1,x2        else:                print '无解'     def qiuJie(a,b,c):            delta=b*b-4*a*c            if delta>=0:                    return True            else:                    return False        jieFangCheng(1,1,1)        jieFangCheng(1,1,-1)

··递归

递归:自己调用自己

        def factorial(n):                    if n==1:                                return 1                    return n*factorial(n-1)            print(factorial(4))

注意:防止无穷递归 与循环不同
汉诺塔

    def han(a,b,c,n):                if n==1:                        print a+'---'+b                else:                        han(a,c,b,(n-1))                        print a+'----'+b                        han(c,b,a,(n-1))    han('A','B','C',3)

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消