zoukankan      html  css  js  c++  java
  • python系列1_travel

    Python__copy

    • copy模块用于对象的拷贝操作。该模块只提供了两个主要的方法:copy.copy与copy.deepcopy,分别表示浅复制与深复制。
    • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。即浅复制只复制对象本身,没有复制该对象所引用的对象。
    • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。即创建一个新的组合对象,同时递归地拷贝所有子对象,新的组合对象与原对象没有任何关联。虽然实际上会共享不可变的子对象,但不影响它们的相互独立性。

    Python__random

    在Python中的库可以分为三种:标准库(也可以叫做内置库),第三方库,自定义库。接下来将记录一下几个常用的标准库的用法:

    • random()——返回随机生成的一个实数,它在[0.1)范围内
    import random
    print(random.random())  # 随机生成一个0-1的随机数
    • uniform(a,b) —— 随机生成a-b之间随机浮点数
    import random
    print(random.uniform(1,2)) # 随机生成一个1-2的随机浮点数
    • randint(a,b)——生成a-b的随机整数,包括a, b
    import random
    print(random.randint(1,3))   # 随机生成1,2,3的随机数
    • randrange——在某个范围生成一个随机数
    import random
    print(random.randrange(10))   # 随机生成0-10的随机数,不包括10
    print(random.randrange(1,10))  # 随机生成1-10的随机数,不包括10
    print(random.randrange(1,10,2)) # 随机生成1-10的随机数,不包括10,步数为2,即可能产生的随机数为:1,3,5,7,9
    • choice——在可迭代对象中随机取一个元素
    import random
    print(random.choice("abc"))     # 在字符串abc中随机取一个元素
    print(random.choice([1,2,3]))   # 在列表[1,2,3]中随机取一个元素
    • sample(a,n)——在可迭代对象a中随机取n个元素,组成一个列表
    import random
    print(random.sample("abcdefg",3))       # 在字符串abcdefg,随机取三个元素组成一个列表
    print(random.sample([1,2,3,4,5,6],3))   # 在列表[1,2,3,4,5,6]中随机取三个元素组成一个

    Python__utf-8

    • 为什么在python中需要使用“utf-8”进行转码呢?

    因为:在python内部是用unicode的,由于windows的命令行输入的是GBK编码,可以要先转为unicode,要转url encode时,先把str转为utf-8。

    Python__str()

    • str() 函数将对象转化为适于人阅读的形式。
    • 字符串长度获取:len(str)
    • 全部大写:str.upper()
    • 全部小写:str.lower()
    • 大小写互换:str.swapcase()
    • 首字母大写,其余小写:str.capitalize()
    • 首字母大写:str.title()

    Python__枚举Enum

    例子:

    from enum import Enum
    Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
    
    @unique
    class Weekday(Enum):
        Sun = 0 # Sun的value被设定为0
        Mon = 1
        Tue = 2
        Wed = 3
        Thu = 4
        Fri = 5
        Sat = 6
    
    for name, member in Month.__members__.items():
        print(name, '=>', member, ',', member.value)

    我们就获得了Month类型的枚举类,可以直接使用Month.Jan来引用一个常量,或者枚举它的所有成员。

    Python__@

    '@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰。出现在函数定义的前一行,不允许和函数定义在同一行。一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西。

      示例:

    def square_sum(fn):
        def square(*args):
            print("1---", args)
            n = args[0]
            print("2==", n*(n-1)*(2*n-1)/6)
            print(fn.__name__)
            fn(n*(n-1)*(2*n-1)/6)
            print("*"*15)
            return fn(n*(n-1)*(2*n-1)/6)
            return square
    @square_sum
    def sum_a(a):
        print("3=", a)
    
    sum_a(10)

    结果

    1--- (10,)
    2== 285
    sum_a
    3= 285
    ***************
    3= 285

    可以看出,他是先执行修饰器函数,然后有return fn的时候,修饰器下的函数才是生效的,否则函数sum_a 是没有结果的。

     

  • 相关阅读:
    [CQOI2011]放棋子
    [CF1192B]动态直径
    [CERC2016]凸轮廓线
    19_08_14-19_08_21校内训练 补题
    [模板]线性递推+BM
    19_08_10[校内训练]割图
    [模板]多项式封装(无讲解)
    19_07_11校内训练[字串染色]
    CF990G
    19_07_09校内训练[分组]
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/8569434.html
Copyright © 2011-2022 走看看