zoukankan      html  css  js  c++  java
  • python语法31[函数]


    一 简单函数和函数指针
    def myadd(a,b):
        
    return a + b;

    print(myadd(3,2));
    = myadd;
    print(f(20,30));

    二 函数的默认参数
    def result(r = 2):
        
    if( r == 1):
            
    print('bad')
        
    elif(r == 2):
            
    print('good')
        
    elif(r == 3):
            
    print('great')

    result()
    result(
    1)

    def f2(a, L=[]):
        L.append(a)
        
    return L

    print(f2(1))
    print(f2(2))
    print(f2(3))

    def f3(a, L=None):
        
    if L is None:
            L 
    = []
        L.append(a)
        
    return L

    print(f3(1))
    print(f3(2))
    print(f3(3))
    结果:
    good
    bad
    [1]
    [1, 2]
    [1, 2, 3]
    [1]
    [2]
    [3]
    注意:
    默认值在程序的整个运行过程中仅评估一次,对于参数为可变类型的要特别注意,例如list,dictionary,大部分的class类型。
    跟C++一样,没有默认值的在前,后面的为有默认值。

    三 关键字参数和参数打包
    def ilike(first, second = 'banana', third = 'apple'):
        
    print("first is ", end = ' ');  print(first, end = '')
        
    print("second is ", end = ' ');  print(second, end = '')
        
    print("and third is ", end = ' ');  print(third)

    ilike(
    'pear');
    ilike(
    'pear', second = 'apple', third = 'banana')
    ilike( 
    'ilike', third = 'god')

    = {'third' : 'apple''second' : 'pear'"first" : "banana"}
    ilike(
    **d)


    四 任意长度参数和dictionary参数
    def cheeseshop(kind, *arguments, **keywords):
        
    print("-- Do you have any", kind, "?")
        
    print("-- I'm sorry, we're all out of", kind)
        
    for arg in arguments: print(arg)
        
    print("-" * 40)
        keys 
    = sorted(keywords.keys())
        
    for kw in keys: print(kw, ":", keywords[kw])

    cheeseshop(
    "Limburger""It's very runny, sir.",
               
    "It's really very, VERY runny, sir.",
               shopkeeper
    ="Michael Palin",
               client
    ="John Cleese",
               sketch
    ="Cheese Shop Sketch")
    注意:
    *参数名字,表示任意个数的参数。
    **参数名字,表示dictionary参数。
    *参数必须出现在**前面。

    五 函数定义lamda表达式
    def make_incrementor(n):
         
    return lambda x: x + n

    = make_incrementor(42)
    print(f(1))
    print(f(2))
    注意:这功能高级!

    完!

    作者:iTech
    微信公众号: cicdops
    出处:http://itech.cnblogs.com/
    github:https://github.com/cicdops/cicdops

  • 相关阅读:
    Murano Weekly Meeting 2016.05.24
    Murano Weekly Meeting 2016.05.17
    Murano Weekly Meeting 2016.05.10
    python3.4 x86_64-linux-gnu-gcc Error
    初学makefile
    解决Spring JdbcTemplate调用queryForObject()方法结果集为空时报异常
    svn命令行使用
    jquery选中checkbox
    jstl core and jstl fn
    linux上的shutdown命令
  • 原文地址:https://www.cnblogs.com/itech/p/1562115.html
Copyright © 2011-2022 走看看