Python - 函数(function) 的 代码 及 详解

函数(function) 的 代码 及 详解


本文地址: http://blog.csdn.net/caroline_wendy/article/details/17232035


函数(function)的基础知识, 包括参数,返回值,默认参数(key parameter),关键值(key)参数

全局(global)变量,非局部(nonlocal)变量,可变参数(var args),函数文档(__doc__);

全局(global)变量: 可以修改全局的值;

非局部(nonlocal)变量: 可以在嵌套函数中修改上层函数的值;

关键值(key)参数: 可以通过关键值给函数的形参(parameter)赋值, 可以忽略位置的限定;

可变参数(var args): 可以参数匹配, 赋值给可变参数, 提供多个可变参数;

函数文档(__doc__): 可以输出函数的文档;


代码:

# -*- coding: utf-8 -*-

#====================
#File: abop.py
#Author: Wendy
#Date: 2013-12-03
#====================

#eclipse pydev, python3.3

#函数
def sayHello():
    print('Hello World')
    
sayHello()
sayHello()

#带参数的函数
def printMax(a, b):
    if a > b:
        print(a, 'is maximum') #python自动生成空格
    elif a == b:
        print(a, 'is equal to', b)
    else:
        print(b, 'is maximum')

printMax(3, 4)
x = 5
y = 7
printMax(x, y)

#全部变量
num = 50
def func():
    global num #全局变量, 不建议使用
    print('num is', num)
    num = 2
    print('Changed local num to', num)
    
func()
print('x is still', num)

#非局部变量
def func_outer():
    x = 2
    print('x is', x)
    
    def func_inner():
        nonlocal x #非局部变量, 函数内可见
        x = 5
    
    func_inner()
    print('Changed local x to', x)

func_outer()

#默认参数
def say(message, times = 1):
    print(message*times)

say('Caroline')
say('Wendy', 5)

#关键参数, 指定参数
def func(a, b=5, c=10):
    print('a is', a, 'b is', b, 'c is', c)

func(1) #a的值必须要指定
func(2, c=50)
func(c = 100, a=5)

#可变参数, *number是数组, **keywords是字典(map)
def total(initial=5, *numbers, **keywords):
    count = initial
    for number in numbers:
        count += number
    for key in keywords:
        print(key) #打印key
        count += keywords[key]
    return count

print(total(10, 4, 5, 6, Caroline = 50, Wendy = 100))

#返回值, 比较大小使用库函数max
def maximum(x, y):
    if x>y:
        return x
    else:
        return y

print(maximum(2, 3))

#表面return None
def someFunction():
    pass

print(someFunction())

#函数文档
#格式: 首行以大写字母开始, 句号结尾, 次行空格, 接下来是描述
def Welcome(x, y):
    '''
    Welcome to Caroline's world. 
    
    Wendy and me will tell you how to write python.
    '''
    print(x)
    print(y)

Welcome('Caroline', 'Wendy')
print(Welcome.__doc__)

help(Welcome) #帮助信息

输出:

Hello World
Hello World
4 is maximum
7 is maximum
num is 50
Changed local num to 2
x is still 2
x is 2
Changed local x to 5
Caroline
WendyWendyWendyWendyWendy
a is 1 b is 5 c is 10
a is 2 b is 5 c is 50
a is 5 b is 5 c is 100
Wendy
Caroline
175
3
None
Caroline
Wendy

    Welcome to Caroline's world. 
    
    Wendy and me will tell you how to write python.
    
Help on function Welcome in module __main__:

Welcome(x, y)
    Welcome to Caroline's world. 
    
    Wendy and me will tell you how to write python.



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Visual Studio .NET VB编程语言 MD5(DES) 8位密钥加密或解密文件function代码 压缩包 : MD5 skey8位加密(文件).zip 列表 MD5 skey8位加密(文件)/ MD5 skey8位加密(文件)/bin/ MD5 skey8位加密(文件)/Form1.Designer.vb MD5 skey8位加密(文件)/Form1.resx MD5 skey8位加密(文件)/Form1.vb MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj.user MD5 skey8位加密(文件)/My Project/ MD5 skey8位加密(文件)/My Project/Application.Designer.vb MD5 skey8位加密(文件)/My Project/Application.myapp MD5 skey8位加密(文件)/My Project/AssemblyInfo.vb MD5 skey8位加密(文件)/My Project/Resources.Designer.vb MD5 skey8位加密(文件)/My Project/Resources.resx MD5 skey8位加密(文件)/My Project/Settings.Designer.vb MD5 skey8位加密(文件)/My Project/Settings.settings MD5 skey8位加密(文件)/obj/ MD5 skey8位加密(文件)/obj/Debug/ MD5 skey8位加密(文件)/obj/Debug/CoreCompileInputs.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferences.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).exe MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).pdb MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbprojResolveAssemblyReference.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).xml MD5 skey8位加密(文件)/obj/Debug/TempPE/ MD5 skey8位加密(文件)/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.exe MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Form1.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.pdb MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Resources.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.xml MD5 skey8位加密(文件)/obj/Release/ MD5 skey8位加密(文件).sln MD5 skey8位加密(文件).v11.suo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SpikeKing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值