python学习笔记4
来源:互联网 发布:javascript定义数组 编辑:程序博客网 时间:2024/05/19 05:31
注意:笔者的python环境是3.x
#!/usr/bin/env python3#coding=utf-8 #函数 def 定义函数#在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象#不可更改的对象,自身其实就是一个指针,指向一个对象,对其修改其实就是新建一个对象。可以修改对象,对其修改,修改的是内部的元素或者是属性#函数定义和调用'''def debug(str1,str2): print(str1+":"+str2) print() returndebug("我","吃饭了吗?")'''#参数传递(不可变类型参数)'''def change(a): a=5 returnb=1change(b)#参数b所指向的内容并没有被改掉,a=5只是新建了一个int型对象,并让a指向5print(b)'''#参数传递(可变类型参数)'''def change1(a): #a=[2,2,2]#这种是更改指针的指向,那么打印出来的c还是不变 a[1]="222222"#这种是直接改变可变类型参数内部的内容,所以打印出来的c是会变的 returnc=[1,1]change1(c)print(c)'''#必备参数:函数中括号有参数,那么调用的时候一定要有参数#关键字参数:即通过参数名=参数值的方式调用函数'''def keyparam(age,name): print(name+"今年"+age+"岁") return 11print(keyparam(name="wlt",age="26"))#调用时候乱序也能正常匹配和调用'''#缺省参数:函数定义时,给参数一个默认值,那么当调用的时候没有传参,会自动调用默认值(多个参数情况下,缺省的参数必须要放置末尾)'''def canabsent(name,age="55"): print(name+"今年"+age+"岁") returncanabsent(name="wlt",age="26")canabsent("wlt")canabsent(name="wlt")'''#不定长参数:加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可'''def nolenparam(*param): print(len(param)) returnnolenparam(1,2,3)nolenparam()'''#匿名函数:由lambda定义的单行表达式,ambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去'''sum=lambda param1,param2:param1+param2print(sum(1,3))'''#全局变量和局部变量'''总结: 内部函数,不修改全局变量可以访问全局变量 内部函数,修改同名全局变量,则python会认为它是一个局部变量 在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbound-LocalError在程序中设置的sum属于全局变量,而在函数中没有sum的定义,根据python访问局部变量和全局变量的规则:当搜索一个变量的时候,python先从局部作用域开始搜索,如果在局部作用域没有找到那个变量,那样python就在全局变量中找这个变量,如果找不到抛出异常(NAMEERROR或者Unbound-LocalError,这取决于python版本。)如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改.那么python会认为它是一个局部变量,又因为函数中没有sum的定义和赋值,所以报错。''''''all=1all1=2def allpart(): #print(all)#全局变量all,会报错 print(all1)#全局变量all1,正常调用 all=0 print(all)#局部变量all returnallpart()print(all)#全局变量all'''
0 0
- Python学习笔记(4)
- python学习笔记4
- Python 学习笔记 - 4
- python 学习笔记4
- python学习笔记4
- Python学习笔记4
- python 学习笔记4
- python学习笔记(4)
- python 学习笔记4
- python学习笔记4
- Python学习笔记4
- python学习笔记4
- Python 学习笔记4
- python学习笔记4
- Python学习笔记4
- Python学习笔记--4
- python 学习笔记4
- Python学习笔记 4
- 《Where to Focus: Query Adaptive Matching for Instance Retrieval Using Convolutional Feature Maps》阅读笔
- java解析json格式请求的url中参数
- Effictive Scala(2)
- A1039.Course List for Student
- IPV6地址和报文结构详解
- python学习笔记4
- Firefox浏览器的安装及插件使用
- #python学习笔记# del
- MySQL入门
- obs源码编译
- Android启动过程以及各个镜像的关系
- java中equals方法的用法以及==的用法
- P-Sensor
- 博弈