Python——函数
Posted 一只快乐的驴子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——函数相关的知识,希望对你有一定的参考价值。
函数其实就是一个功能,一个方法,可以简化代码。函数必须调用才会执行。
函数的作用就是简化代码,提高代码的复用性。一般一个函数只做一件事情,代码不能写的太复杂。
定义
使用def来定义一个函数,括号里面传递的是形式参数。他是一个变量。函数体里面写的是函数具体实现的功能部分。
def say(name):
print("%s 这是一个函数" %name)
调用函数的时候:say(\'\'zhangfei\'\') 调用时候括号里面的就是实际参数。参数的个数也要和函数保持一致。
参数
函数里面的参数叫形式参数。它可以是必填参数,也可以是默认值参数。表现形式为:
def say(name,sex=\'男‘)
函数的形式参数只是一个变量。
调用
调用函数的时候,传递的变量类型不限制。上面say函数中参数name可以传递list类型的实际参数。而sex这个默认值参数调的时候不传递参数,会取默认值‘男’。如果传递了参数。就会使用传入的值
变量
局部变量
在函数里面的变量都是局部变量,他只能在函数体内使用。函数运行结束,这个变量也就是没有了。
全局变量
在文件最外面定义的变量叫全局变量。会一直占用内存。
常量
使用大写字母定义的变量是常量。
name=\'小黑‘
FILENAME = ‘a.txt’
def func()
name="小白"
print (name)
func ()
这时候打印出来的结果是 小黑。
因为函数func()定义的时候里面的name是个局部变量。出了函数就失效了,然后调用函数的时候,使用的是全局变量的name值:小黑。
如果想要在函数里面使用全局变量,需要先声明:global。
但是字典和list这种可变变量,不需要global声明就可以使用。
func()
global name
name = \'小白\'
print (name)
func()
d = {\'name\':\'Dave‘}
func test()
d[\'sex\']=29
print (d)
test()
print(d)
结果为:{\'name\':\'Deav\',\'sex\'=29}
可变参数:参数组,不是必填的,参数的个数也不限制。
def send_email(*email)
send_email(\'caoyanyan_207@126,com\')
send_email(\'caoyanyan_207@126‘’,com;lx@126.cn,zhansan@163.com)
关键字参数:一般用**kwargs,传递值的时候使用k1=1这样的方式 不是必填参数,不限制参数个数。传入的数据放入了字典里。
def my_func(name,**kwargs)
print(name)
print(kwagrs)
my_func(\'xiaohei\',k1=1)
参数顺序:位置参数(必填)、默认值参数(不必填)、可变参数(不必填。不限参数个数)、关键字参数(不必填)
def my_func(name,sex=‘男’,*agrs,**kargs)
print(name)
print(sex)
print(agrs)
print(kagrs)
my_func(\'xiaohei\',\'男\',\'args1\',\'args2\',k1=1,k2=2)
xiahei是位置参数name的值,男是位置参数sex的值。args1和agrs2可变参数的值,k1和 k2是关键字参数
返回值
如果需要用到变量的返回值,就写return;如果不需要,那么就不写return。没有返回值的时候会返回None
函数中如果遇到return,函数立即结束。return后面的代码不会执行。
def calc(a,b):
c = a*b
return c
now=8000
money=calc(1000,13)
print(now+money)
做个小练习:
编写一个函数,实现功能是验证是否为浮点类型。
写一个校验输入的字符串是否为小数的程序
0.12 -5.44
只有一个小数点——判断小数点的个数
正小数的情况下,小数点左边和右边都是整数的话。才合法【0-9】
负小数的情况下,小数点右边正整数,左边必须是以“—"开头,并且只有一个负
补充知识点:递归
递归就是函数自己调用自己,递归最多可以循环999次。用递归得有一个明确的结束条件。
import random
res = random.sample(random(1,34),6)
for i in range(len(res))
res[i]=str(res[i].zfill(2))
print res
这段代码的另一个写法:列表推导式/列表生成式
import random
res = random.sample(random(1,34),6)
res = [str(i).zfill(2) for i in res]
print res
举一反三:res2 = [int(i)+10 for i in res]、res3=[i for i in range(1,100,2)]
以上是关于Python——函数的主要内容,如果未能解决你的问题,请参考以下文章