zoukankan      html  css  js  c++  java
  • python学习之函数和函数参数

     1 #方法的参数定义和默认参数的定义
     2 def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
     3        while True:
     4               ok = input(prompt)
     5               if ok in ('y', 'ye', 'yes'):
     6                    print("true");
     7               if ok in ('n', 'no', 'nop', 'nope'):
     8                      return False
     9                      retries = retries - 1
    10               if retries < 0:
    11                    raise OSError('uncooperative user');#相当于c#中的throw;
    12                    print(complaint)
    13                    
    14 #方法的调用
    15 def show():
    16        ask_ok("please input docstring");
    17 
    18 
    19 #默认值的共享
    20 def  fun(n,args=[]):
    21         args.append(n);
    22         return args;
    23 
    24 print(fun(2));    
    25 print(fun(3));#长度加1
    26 print(fun(4));#长度加1
    27 
    28 
    29 
    30 #除去默认值的累计,->为注释,表示方法的返回值类型
    31 def  func(n,args=None)->[]:
    32         if args is None:
    33              args=[];
    34         args.append(n);
    35         return args;
    36     
    37 print(func(2));    
    38 print(func(3));#长度1
    39 print(func(4));#长度1
    40 
    41 
    42 
    43 
    44 #*当最后一个形参以 **name 形式出现,它接收一个字典 (见映射类型 —— 字典) ,该字典包含了所有未出现在形式参数列表中的关键字参数。
    45 #它还可能与 *name 形式的参数(在下一小节中所述)组合使用,*name 接收一个包含所有没有出现在形式参数列表中的位置参数元组。
    46 #(*name 必须出现在 ** name 之前。)例如,如果我们定义这样的函数:
    47 
    48 def getInfo(info,*argument,**keywords):
    49        print("this is ",info);
    50        for msg in argument:
    51              print(msg);
    52        for kw in keywords:
    53              print(kw,":",keywords[kw]);
    54                
    55 getInfo("Limburger", "It's very runny, sir.",
    56            "It's really very, VERY runny, sir.",
    57            shopkeeper="Michael Palin",
    58            client="John Cleese",
    59            sketch="Cheese Shop Sketch");
    60 
    61 #参数的分拆
    62 def parrot(name="xiaoxiao",age=24):
    63        print("my name is",name,end='');
    64        print("and my age is ",age,end='');
    65 
    66 student={"name":"jack","age":25};
    67 parrot(**student);
    68 
    69 stu=["jack",25];
    70 parrot(*stu);
    71 
    72 #pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
    73 #pairs.sort(key=lambda pair: pair[1])
    74 
    75 #lamda表达式的使用,就是逆名函数
    76 def sorter(L=None):
    77        if L is None:
    78             L=[];           
    79        L.sort(key=lambda pair:pair[1]);
    80        return L;
    81     
    82 L = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')];
    83 print(sorter(L));
    84 
    85 #文档字符串
    86 def myfunction():
    87        """Do nothing,,,but
    88        No,really,,,it doesn't
    89        """;
    90        pass;
    91 
    92 print(myfunction.__doc__);    
  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/airven/p/4950422.html
Copyright © 2011-2022 走看看