• 10个Python技巧


    pythonic
    指的是具有python独特风格,简洁而又优雅的代码

    1. 变量交换(Swapping Variables)
    # 通常的做法
    a = 1
    b = 2
    tmp = a
    a = b
    b = tmp
    # tmp是临时变量
    
    # 在Python中我们可以这样做
    a = 1
    b = 2
    a,b = b,a 
    

    1. 字符串格式化(String Formatting)
    # 当字符串较多时,通常拼接字符串会很麻烦,如:
    name = "Ross"
    country = "China"
    age = "18"
    
    print("Hi,I'm" + name +"I'm form" + country + ",And I'm" + str(age) + ".")
    
    # 在Python中我们可以这样做
    
    # 1利用Python中的%语法来格式化字符串
    print("Hi,I'm %s. I'm from %s. And I'm %d."%(name,country,age))
    # 这里%s(string)会被替换成一个字符串  %d(decimal)会被替换成一个十进制数
    
    # 2利用.format()方法和{}语法  
    print("Hi,I'm {}. I'm from {}. And I'm {}.".format(name,country,age))
    # 另一个好处是可以使用参数的索引来重复替换 如:
    print("Hi,I'm {0}.Yes,I'm {0}.".format(name))
    
    # 3最简单的写法Python3.6后支持的语法 f—string
    print(f"Hi,I'm {name}. I'm from {country}. And I'm {age}.")
    # 最大的好处是{}里的内容支持表达式
    

    1. Yield语法(Yield Statemaent)
    # 斐波那契数列
    def fibonacci(n):
        a = 0
        b = 1
        nums = []
        for _ in range(n):
            nums.append(a)
            a,b = b,a+b
        return nums
    for i in fibonacci(10):
        print(i)
    
    # 在Python中我们可以借助yield语法替换append方法
    def fibonacci(n):
        a = 0
        b = 1
        for _ in range(n):
            yield a
            a,b = b,a+b
    
    for i in fibonacci(10):
        print(i)、
    # yield表示每当我们计算出一个元素 就立马实时将这个元素送出去
    

    1. 列表解析式(List Comprehension)
    # 这里有一些水果名字,将它们都改成大写
    fruit = ["apple","pear","pineapple","arange","banana"]
    
    # 在Python中我们可以这样
    fruit = [x.upper() for x in fruit]
    
    # 也可以筛选列表中的元素
    filtered_fruit = [x for x in fruit if x.startswitch("a")]
    

    1. Enumerate 函数(Enumerate Function)循环技巧
    # 还是上面的例子
    fruit = ["apple,"pear","pineapple","arange","banana"]
    for i,x in emumerate(fruit):
        print(i,x)
    # 其中i代表索引值,x表示元素
    

    6.1 反向遍历(Looping Backwards)

    # 我们可以先这样实现
    fruit = ["apple,"pear","pineapple","arange","banana"]
    for i,x in emumerate(reverse(fruit)):
        print(i,x)
    

    6.2 按顺序遍历(Looping in Sorted Order)

    # 如果我们希望输出的元素是以字典顺序
    # 我们可以先这样实现
    fruit = ["apple,"pear","pineapple","arange","banana"]
    for i,x in emumerate(sorted(fruit)):
        print(i,x)
    

    1. 字典合并操作(Dictionary Merging)
    # 下面是一般的字典合并
    a = {"ross":"123456","xiaoming":"abc123"}
    b = {"lilei":"111111","zhangsan":"12345678"}
    c = {}
    for k in a:
        c[k] = a[k]
    for k in b:
        c[k] = b[k]
    
    # 在python中我们可以
    a = {"ross":"123456","xiaoming":"abc123"}
    b = {"lilei":"111111","zhangsan":"12345678"}
    c = {**a,**b}
    # **叫做解包(Unpacking),将两个字典直接填写到这里
    

    1. 三元运算符(Ternary Operator)
    # 可以对if else语句简化
    if score > 60:
        s = "pass"
    else:
        s = "fail"
    # 在python中我们可以
    s = "pass" if score > 60 else "fail"
    

    1. 序列解包(Sequence Unpacking)
    # 提取姓和名
    name = "San Zhang"
    str_list = name.spilt()
    first_name = str_list[0]
    last_name = str_list[1]
    
    # 在python中我们可以这样
    name = "San Zhang"
    first_name , last_name = name.split()
    

    1. With语句(With Statement)
    # with open("somefile.txt","r") as f"
        s = read()
    
  • 相关阅读:
    我的ORM之八-- 事件
    JavaScript(四):函数
    JavaScript(三):数据类型转换
    CSS(九):设置盒子水平垂直居中
    CSS(八):定位属性
    CSS(三):引入样式和优先级
    Dapper:安装Dapper时报错
    HTML(四):行级标签和块级标签
    解决Linux里面未启用网卡的问题
    linq操作符:分区操作符
  • 原文地址:https://www.cnblogs.com/goodhelper007/p/ten_python.html
Copyright © 2020-2023  润新知