python 在线

966Python 函数

关于 return funreturn fun() 的区别:

>>> def funx(x):
    def funy(y):
        return x * y
    return funy    #return funy返回的是一个对象,可理解为funx是funy的一个对象

>>> funx(7)(8)
56
>>> def funx(x):
    def funy(y):
        return x * y
    return funy()    #return funy()返回的是funy的函数返回值,所以此处报错

>>> funx(7)(8)

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    funx(7)(8)
  File "<pyshell#4>", line 4, in funx
    return funy()
TypeError: funy() takes exactly 1 argument (0 given)

>>> def funx(x):
    def funy(y):
        return x * y
    return funy(8)    

>>> funx(7)
56

965Python 函数

简化列表反转:

def reverse(li):
    for i in range(0, len(li)/2):
        li[i], li[-i - 1] = li[-i - 1], li[i]
l = [1, 2, 3, 4, 5]
reverse(l)
print(l)

964Python 函数

列表反转函数二:

def reverse(ListInput):
    RevList=[]
    for i in range (len(ListInput)):
        RevList.append(ListInput.pop())
    return RevList

963Python 函数

列表反转函数:

#!/user/bin/python
# -*- coding: UTF-8 -*-

def reverse(li):
    for i in range(0, len(li)/2):
        temp = li[i]
        li[i] = li[-i-1]
        li[-i-1] = temp

l = [1, 2, 3, 4, 5]
reverse(l)
print(l)

962Python 函数

全局变量想作用于函数内,需加 global
#!/usr/bin/python
# -*- coding: UTF-8 -*-

globvar = 0

def set_globvar_to_one():
    global globvar    # 使用 global 声明全局变量
    globvar = 1

def print_globvar():
    print(globvar)     # 没有使用 global

set_globvar_to_one()
print  globvar        # 输出 1
print_globvar()       # 输出 1,函数内的 globvar 已经是全局变量

1、global---将变量定义为全局变量。可以通过定义为全局变量,实现在函数内部改变变量值。

2、一个global语句可以同时定义多个变量,如 global x, y, z。