美文网首页
Python函数

Python函数

作者: 黄褐色猫头鹰 | 来源:发表于2018-11-07 10:45 被阅读0次
#Python函数
#定义函数: 以def开头 + 函数名称 + 圆括号()
#参数置于()内, 函数内容以冒号起始, 并且缩进
#return结束函数, 可以返回一个值, 或者不写返回None
def hello():
    print("Hello World!")


hello()

def area(width, height):
    return width * height

w, h = 4, 5
print("width=", w, " height:", h, " area:", area(w, h))


#参数传递, 对于Python, 数据可以分为不可改变对象, 和可变对象
#如果在向函数传递了不可变对象, 那么, 在函数内部对这个参数的更新, 不会改变原本的对象
#相反, 如果是可变对象, 在函数内部对这个参数做了改变, 会改变原来的对象
def changeInt(a):
    a = 10
    return

b = 2
changeInt(b) #因为int不是可变对象, 所以b不会改变
print(b) #2

def changeMe(myList):
    myList.append([1, 2, 3, 4])
    return

myList = [0]
changeMe(myList) #因为list是可变对象, 所以myList会被改变
print("结果:", myList) #[0, [1, 2, 3, 4]]

#函数的参数, 参数必须要写, 如果写参数名,则顺序不需要保持一直, 否则顺序需保持一直
def printInfo(name, age):
    print("名字:", name)
    print("年龄:", age)
    return

printInfo('leviathan', 20)
printInfo(age=30, name='francis')

#参数的默认值, 创建函数的时候, 可以设置参数的默认值, 那么如果没有传入该参数, 就可以使用默认值了
def printInfo(name, age = 35):
    print("名字:", name)
    print("年龄:", age)
    return
printInfo(name='james')

#不定长参数, 第一个参数必须指定,
# 不定长参数以*开头, 将会以元组的形式导入
# 不定长参数以**开头, 将会以字典形式导入
def printInfo(arg1, *vartuple):
    "打印任何传入的参数"
    print("输出: ")
    print("arg1:", arg1, "  vartuple:", vartuple)

printInfo(70, 60,90) #arg1: 70   vartuple: (60, 90)


def printinfo(arg1, **vardict):
    "打印任何传入的参数"
    print("输出: ")
    print(arg1) #1
    print(vardict) #{'a': 2, 'b': 3}

printinfo(1, a=2, b=3)

#lambda表达式, 简化了函数的定义方式, 同时返回函数对象, 可以当做参数进行传递
sum = lambda arg1, arg2: arg1 + arg2
print(sum(10, 20))

#变量的作用域
#变量的搜寻顺序是 局部作用域-> 闭包函数外的函数中-> 全局作用域-> 内建作用域
#if/elif/else/try/except/for/while不改变作用域, 也就是说这些语句内定义的变量, 外部也是可以访问的

x = int(2.9) # 内建作用域
g_count = 0 # 全局作用域
def outer():
    o_count = 1 #闭包函数外的函数中
    def inner():
        i_count = 2 #局部作用域

if True:
    msg = 'i am from mars'
print(msg) #i am from mars

#函数修改全局变量(可变对象, 才会可能在函数内部修改, 不可变对象, 无法在函数内部修改)
#这一点和java是不同的
#如果需要修改外部作用域的不可变对象, 那么需要用global 和 nonlocal关键字

total = 0
li = []
def sum(arg1, arg2):
    total = arg1 + arg2
    li.append(arg1)
    print("内部total:", total) #30
    print("内部li:", li) #[10]
    return
sum(10, 20)
print("外部total:", total) #0
print("外部li:", li) #[10]

#   修改全局不可变对象
num = 1
def fun1():
    global num
    num = 123
    print(num) #123
fun1()
print(num) #123

#   修改外层嵌套作用域不可变对象
def outer():
    num = 10
    def inner():
        nonlocal num
        num = 100
        print(num) #100
    inner()
    print(num) #100
outer()


相关文章

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • Python学习笔记1

    Python注释 Python变量 Python运算符 Python输入输出 输入函数 输出函数(3.x) ...

  • Python:内置函数

    python的内置函数,匿名函数 内置函数 内置函数就是python给你提供的,拿来直接用的函数,比如print,...

  • 二级Python----Python的内置函数及标准库(DAY

    Python的内置函数 嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 python的内置函数(68个) Py...

  • python3 range() 函数和 xrange() 函数

    python3 range 函数 python3 取消了 xrange() 函数,并且和 range() 函数合并...

  • 7、函数

    1、Python之什么是函数 2、Python之调用函数 Python内置了很多有用的函数,我们可以直接调用。 要...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • Python函数详解

    函数是Python里组织代码的最小单元,Python函数包含以下几个部分: 定义函数 调用函数 参数 函数的返回值...

网友评论

      本文标题:Python函数

      本文链接:https://www.haomeiwen.com/subject/suvmxqtx.html