Python ( 13 )

精华 发表在    Python教程部落 10-07 21:30:56

1 2246 0

函数

函数,其实就是一段段代码,函数是很方便的,下面是一个例子:

我们想要求排列的问题:

从m 个不同元素中取出 n个元素并按照一定的顺序排列,方法数记作

Anm = m*(m-1)*......*2*1

a = 5
b = 5
print(5*4*3*2*1)

那么,代码中还有其他要用到这段代码,那么,我们就不得不重新写一遍。

但这种方法太笨了,不是吗?

那么就用到我们的函数了,怎样创建自己的函数呢?

用关键字def:


def

def:定义函数

语法:


def 函数名(参数):
     代码

*参数是可选的,可以不用参数,如果加上了参数,调用时就一定要加上参数,参数可以有多个

调用方法:


函数名(参数)

*如果函数定义时没有加上参数,可以忽略


例子:


return:在函数中返回值

def hour(hour):
      if hour == 60:
          break
      else:
          return ''

另外一种是可选参数,可选参数你可以加上,调用时可以不用管他 ( 用默认值 ) ,语法如下:



def 函数名(可选参数=默认值):
     代码

函数名() 

例子:



def hit_me(is_hit=False):
     if is_hit == True: 
            print('you hit me')
     else: 
            print('你没有碰到我')

思考:


def var():
     x = 0
var()
print(x)

运行后,会出现异常:


Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\t.pyw", line 6, in 
    print(x)
NameError: name 'x' is not defined

x没有定义?这好奇怪。

为什么?

图:


我们可以看到,我们的变量设在了第一个局部变量


规则:

每一片区,一般只能使用自己区域的变量,如果想要在函数中定义全局变量,该怎么办?

定义全局变量: global关键字

定义外部变量(非全局变量,就是颜色深的那一块): nonlocal关键字

例:

def var():
     global x
     x = 0

var()
print(x)


def var():
    x = 5
     def var2():
          nonlocal x
          x = 0
     var2()
     print(x)

var()

快去定义你自己的参数吧!



谢谢!


登录或注册后发布评论