zoukankan      html  css  js  c++  java
  • 五.条件、循环和其他语句

    • 并行赋值时,*可收集多余部分:
      • 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'}
    • 执行字符串代码,exec()、eval():
      exec("print(123)") #不返回结果,只是执行print
      print(eval("print(123),1+1")) #除了执行,还返回(None, 2)
  • 相关阅读:
    python核心编程(多线程编程)
    Python核心编程(网络编程)
    将非drf接口配置到swagger
    jmeter设置全局变量--通过正则表达式进行提取
    jmeter实现用户登录高并发
    Django跨关联关系查询
    python树状结构取值和加值
    chrome浏览器代理插件SwitchyOmega使用
    burp suite历程-安装burp suite
    django中对模型字段名的限制
  • 原文地址:https://www.cnblogs.com/i201102053/p/10618384.html
Copyright © 2011-2022 走看看