Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9413151
  • 博文数量: 1748
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20070
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1748)

文章存档

2024年(24)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: Windows平台

2018-01-05 14:40:19

可以参见 Python的安装帮助文档, 有各个module和语法的说明.

点击(此处)折叠或打开

  1. if bool_expr1:
  2. suite1
  3. elif bool_expr2:
  4. suite2
  5. else:
  6. suite_else

  7. 缩编方式
  8. expr1 if bool_expr else expr2
  9. 综合示例
  10.  print("{0} file{1}".format((count if count 1= 0 else "no"),("s" if count != 1 else "")))

点击(此处)折叠或打开

  1. while bool_expr:
  2.     while_suite
  3. else:  # 当 while_suite出现 return break exception时不出执行else, 否则 else总会执行.
  4.     else_suite

点击(此处)折叠或打开

  1. for expr in iterable:
  2.    for_suite
  3. else:  # 当 for_suite出现 return break exception时不出执行else, 否则 else总会执行
  4.    else_suite

点击(此处)折叠或打开

  1. try:
  2.    try suite
  3. except exception_group1 as var1:  #至少要包含一个 except 分支. exception_group1 可以是元组方式出现. 异常的佩佩规则为从上到下依次匹配.
  4.    except_suite1
  5. ...
  6. else:  #可选分支, 如果没有异常, 则 else 总会执行
  7.    else_suite
  8. finally: #可选分支, 存在时,那么总会执行.
  9.    finally_suite

点击(此处)折叠或打开

  1. try:
  2.    suite
  3. finally:
  4.    suite

点击(此处)折叠或打开

  1. 自定义异常
  2. class MyException(Exception): pass

  3. try:
  4.    ....
  5.    raise MyException()
  6. except MyException:
  7.    print("MyException proc.")

点击(此处)折叠或打开

  1. 函数的参数可以不用位置对应的顺序关系, 可以通过关键字参数 name=value的形式进行参数传递.
  2. 例如:
  3. def calc(a,b,c=5):  #有默认值的参数一定要定义在最后面
  4.   return (a+b)/c

  5. calc(1,2)
  6. calc(1,2,5)
  7. calc(1,b=2, c=5)
  8. calc(a=1,c=5, b=2)
  9. calc(c=5,a=1, b=2)
  10. 都是一样的

点击(此处)折叠或打开

  1. 函数的参数可以使用*序列拆分操作符, 常用于参数是可变数量的位置参数是. (**是对映射进行拆分, 如字典, 指明参数为字典类型)
  2. 例如:

  3. def myCrc(*args): #args 前 加入 *, 代表 args 可以是一个元组. 参数数量随着args数据项数量变化而变化
  4.   result = 1
  5.   for arg in args:
  6.     result *= arg
  7.   return result

  8. 那么 myCrc(1,2,3,4)
  9. myCrc(5,8)
  10. myCrc(11) 都是允许的

    但存在默认参数时. 例如

def muCrc2(*args, init_v=2):
result = init_v
for arg in args:
result *= arg
return result


则 myCrc2(5,8) => 80, 即把5,8全部认为是 *args 扩展的内容. 如果要改变默认参数的值, 一定要指明名称参数如 myCrc2(5,8, init_v=5) 


把 * 当做参数时, 表明 * 之后不能再出现位置参数, 但关键字默认参数是可以的. 且关键字默认参数一定显示指明数值.

lambda 函数:  无需单独建立函数, 可直接定义函数实现并做为对象引用.
lambda parameters: expression    parameters 可选. expression 不能用分支或者循环(但是,单行条件表达式可以用), 不能有return语句. 
例如: fx=lambda x:"" if x==1 else "s", 后期直接调用 fx(count)即可.
常用场合
1. 用于组合类型的sorted() 函数,  例如 L.sort(key=lambda e:(e[1], e[2]))
2. 用户默认字典时. 当一个不存在的键来存取默认字典时, 使用lambda可以定义一个适当的默认值.
   如:d = collections.defaultdict(lambda:-1)  当使用不存在的键存取 d 字典时, 则自动创建新项,并赋值 -1.

断言: 断言是给开发者用的, 而不是面对终端用户的
    assert boolean_expr, option_expr
    当 boolean_expr == False 时, 产生一个AssertionError异常, 如果有给定 option_expr, 则其结果用作 assertionError的参数.




阅读(1458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~