zoukankan      html  css  js  c++  java
  • 表达式

    普通的表达式

    def func(x,y):
        if x > y:
            return x
        else:
            return y
    
    res = func(1,2)
    print(res)

    三元表达式

    语法格式:条件成立时返回的值 if 条件 else 条件不成立时要返回的值

    x = 1
    y = 2
    
    res = x if x > y else y
    print(res)
    egon = 18
    alex = 80
    
    res = 'egon是儿子' if egon < alex else 'alex是爸爸'
    print(res)

    列表生成式

    格式:[expression for item in iterable in condition]

    原代码:

    l = ['alex_dsb','lxx_dsb','wxx_dsb','xxq','egon_dsb']
    new_l = []
    for name in l:
        if name.endswith('dsb'):
            new_l.append(name)

    改进后:

    l = ['egon_is_sb','egon_is_dsb','egon_is_superdsb','xxq','egon_dsb']
    
    new_l = [name for name in l]  # 最基础的列表生成式
    new_l = [name for name in l if name.endswith('sb')]
    
    print(new_l)

    把所有小写字母变成大写

    l = ['egon_is_sb','egon_is_dsb','egon_is_superdsb','xxq','egon_dsb']
    new_l = [name.upper() for name in l ]
    print(new_l)

    去掉所有名字的_sb后缀

    l = ['egon_is_sb','egon_is_sb','egon_is_superd_sb','xxq','egon_sb']
    
    new_l = [name.replace('_sb','') for name in l]
    print(new_l)

    字典生成式

    keys = ['name','age','gender']
    
    dic = {key:None for key in keys}
    print(dic)
    items = [('name','egon'),('age',18),('gender','male')]
    
    dict = {k:v for k,v in items if k!='gender'}
    print(dict)

    集合生成式

    keys = ['name','age','gender']
    set1 = {key for key in keys}
    print(set1,type(set1))

    元组生成式(没有元组生成式)

    g = (i for i in range(10) if i > 3)
    print(g,type(g))
    
    # 输出:<generator object <genexpr> at 0x01D63450> <class 'generator'>

    生成器表达式

    g = (i for i in range(10) if i > 3)
    # !!!!!!!强调!!!!!!!
    # 此时g的内部,一个值都没有
    # 只有next的时候,才会产生一个值
    
    print(g)
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    方式一:
    with open(r'内容.txt',mode='rt',encoding='UTF-8') as f:
        res = 0
        for line in f:
            res += len(line)
        print(res)
    
    方式二:
    with open(r'内容.txt',mode='rt',encoding='UTF-8') as f:
    
        res = sum([len(line) for line in f])
        print(res)
    
    方式三:效率高
    with open(r'内容.txt', mode='rt', encoding='UTF-8') as f:
        # g = (len(line) for line in f)
        # print(g)
        # res = sum(g)
        # print(res)
        # res = sum((len(line) for line in f))
        # 上述可以简写为如下格式
        res = sum(len(line) for line in f)
        print(res)

    思维导图(点击链接

  • 相关阅读:
    haproxy2.0入门部署教程【转】
    备份复制特定以开头的目录下的文件
    Python对比俩个文件内容
    常用prometheus告警规则模板(三)【转】
    prometheus告警技术初探(一)【转】
    prometheus告警规则设置(二)【转】
    SQL Server AlwaysOn搭建【转】
    linux使用bash-completion补全【原创】
    定时清理elasticsearch【原创】
    windows系统垃圾清理脚本【转】
  • 原文地址:https://www.cnblogs.com/zhww/p/12983965.html
Copyright © 2011-2022 走看看