码迷,mamicode.com
首页 > 其他好文 > 详细

五.条件、循环和其他语句

时间:2019-03-28 23:05:07      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:sse   并行迭代   mat   code   val   判断   span   运算符   布尔   

  • 并行赋值时,*可收集多余部分:
    • x,*y,z=[1,2,3,4,5,6,7],这样无需确保值和变量的个数相同
  •  x=y=somefunction()  这个与 x=somefunction(); y=somefunction() 是不等价的。
  • Python中的缩进有意义。
  • Python的真假判定中:False,None,0,"",(),[],{} 都视为假
  • 三目运算符:A=B if condition else C  (condition==True时,选B;condition==False时,选C)
  • x is y 是判断x和y是用一个对象,x和y是否指向同一内存。这与x==y不同,后者是值得判定。
  • 布尔符短路逻辑:
    • A and B,若A为False,不执行B。
    • A or B,若A为True,不执行B。
  • 断言:
    • 自定义崩溃,立刻崩溃
    • assert (condition),“out” ---> condition为False,立刻崩溃,“out”为崩溃说明

 

  • 迭代工具:
    • 序列、可迭代对象都可以进行迭代
    • 并行迭代:zip()可以迭代两个序列,返回元组组成的迭代对象,可用list()函数查看:
      list1=[1,2,3,4,5]
      list2=["a","b","c","d","e"]
      print(list(zip(list1,list2)))  # [(1, ‘a‘), (2, ‘b‘), (3, ‘c‘), (4, ‘d‘), (5, ‘e‘)]
    • 迭代时获取索引,内置函数enumerate进行枚举化:

      for index,string in enumerate(stirngs):
      #index返回索引,string返回内容

       

 

 

  • 简单推导:
    • 列表推导生成:[var for ... in ... for ... in ... if ...]
      a=[x for x in range(10)]
      print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      b=[x*x for x in range(10)]
      print(b) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
      c=[(x,y) for x in range(3) for y in range(4) if x<y]
      print(c) #[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
    • 字典推导生成:{key:value for ... in ... if...}
      s={i:"{} squared is {}".format(i,i**2) for i in range(4)}
      print(s) #{0: ‘0 squared is 0‘, 1: ‘1 squared is 1‘, 2: ‘2 squared is 4‘, 3: ‘3 squared is 9‘}

 

五.条件、循环和其他语句

标签:sse   并行迭代   mat   code   val   判断   span   运算符   布尔   

原文地址:https://www.cnblogs.com/i201102053/p/10618384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!