零碎知识的补充

关于这部分的文章,整体行文和知识并没有什么架构可言,各位读者可以将其想象成一个大麻袋,什么都往里面装,此文的主要目的是对最近看到的,前文又没有写到的比较零碎的知识点进行一下补充。

字符串

  • repr:使用该函数可将合法的Python表示打印出来,而不是像str那样,以合理的方式将其转换为普通用户能够看懂的字符串。

     >>> print(repr("Hello,\nWorld!"))
     'Hello,\nWorld!'
    >>> print("Hello,\nWorld!")
    Hello,
    World!
    
  • 原始字符串:

原始字符串即以r修饰的字符串,不能以奇数个反斜杠结束;
如果原始字符串不用于正则表达式等处理器,只是简单的代表一个字符串,那么该串中的 \ 就是 ,而不再具有转义的含义,这就是所谓的‘原始’。

>>> s = "i have\na dream"
>>> r = r'i have\na dream'
>>> print s
i have
a dream
>>> print r
i have\na dream

⚠️:我在总结到这里的时候,对于repr()与原始字符串有些傻傻分不清楚,由于对正则表达式暂时不太了解,所以这里就先给自己挖个坑吧,日后再填。

  • 长字符串: 要表示很长的、需要多行来表示的字符串,可使用三引号''' '''或者""" """,并且在其中若是再出现单引号或者双引号,也无需再使用反斜杠进行转义。

字典

  • dcit():该函数可从其他映射或键值对序列创建字典。

    >>> items = [('name', 'Gumby'), ('age', '42')]
    >>> d = dict(items)
    >>> d
    {'name': 'Gumby', 'age': '42'}
    
  • .format_map():我们使用格式字符串可提取我们所需要的信息。

     >>> phonebook = {'Beth': '9102', 'Alice': '2341'}
     >>> "Alice's number is {Alice}".format_map(phonebook)
     "Alice's number is 2341"
    
  • xxx.clear():删除该字典中的所有元素。

  • 赋值、浅拷贝&深拷贝

    • 赋值:即将一个对象的地址赋值给一个变量,让变量指向该地址。而当我们修改其中不可变的对象(str、tuple),需要重新开辟新的空间;当我们修改可变对象(list等)的时候,不需要重新开辟空间。
    • 浅拷贝:仅仅复制了容器中的地址

    浅拷贝是在另一块地址中创建一个新的变量或容器,但是容器内的元素的地址均是源对象的元素的地址的拷贝。也就是说新的容器中指向了旧的元素( 新瓶装旧酒 )。

    • 深拷贝:完全拷贝了一个副本,容器内容和元素地址均不一致。

    深拷贝是在另一块地址中创建一个新的变量或容器,同时容器内的元素的地址也是新开辟的,仅仅是值相同而已,是完全的副本。也就是说( 新瓶装新酒 )。

    对于此概念,我在网上看的两篇博客进行了较为详细的说明,其中在第一篇中有一个没有说清楚的问题,在第二篇中有所说明。

    谈谈python中的深拷贝和浅拷贝
    图解Python深拷贝和浅拷贝

  • dict.fromkey():该方法创建一个空字典,其中包含特定的键,且每个键对应的都是None。

  • xxx.get():如果我们使用该方法访问字典中不存在的键时,没有引发异常,而是返回None(当然也可以返回自己制定的“默认值”,即在该方法内添加第二个参数作为自己制定的“默认值”)

  • xxx.items():该方法返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式,由于字典没有顺序,所以字典项在列表中的顺序不确定。返回值属于一种名为“字典视图”的特殊类型。

  • keys(): 该方法返回一个字典视图,其中包含制定字典中的键。

  • xxx.pop():该方法用于获取与指定键相关联的值,并将该键值对从字典中删除。

  • xxx.popitem():该方法类似于列表中的pop方法,但是由于字典中没有顺序,所以并不存在最后一个元素的概念,故该方法随机弹出一个字典项。

  • setdefault():该方法获取与指定键相关联的值,但若是字典中不包含指定的键时,会在字典中添加指定的键-值对。

函数

  • pow():该函数的作用可进行幂运算,而实际上2 ** 3pow(2, 3)是进行相同的计算,而我们也将类似于pow()的函数统称之为内置函数。

  • 绝对值:使用abs()函数可以进行绝对值的计算,如我们在交互式界面中输入abs(-10),就可以得到运行结果10

  • 取整:

  • //:这是我们比较熟知的取整运算符,比如我们可以通过其计算2 // 3,在交互式界面可直接得到结果为0

  • round():该函数同样为内置函数,并将浮点数圆整到最接近的整数,并在两个整数一样近时圆整到偶数,round(2 / 3)的结果为1,而round(3 / 2)的结果为2

  • floor():该函数是对浮点数进行下取整的操作,但是由于该函数包含在模块math中,所以在使用该函数之前需先导入math模块,?代码的运行结果为32

     import math
     math.floor(32.9)
    
  • ceil():该函数是对浮点数进行上取整的操作,和上面函数一样,在使用该函数之前需先导入math模块,?代码块的运行结果为33

     import math
     math.ceil(32.9)
    

模块

  • cmath:这是python提供的专门处理复数的模块

     import cmath
     cmath.sqrt(-1)
    

⚠️:这里并没有使用from...import,若是使用该命令,将无法使用常规的函数sqrt()。这样的命名冲突是比较隐蔽的,需要注意。

  • __future__:在网上查阅了较多的资料后,我对其的个人理解为:由于Python版本的更新,新版本的Python(比如Python3)中创建了新的特性。而想要旧版本的Python(Python2)中也可以使用某些新的特性而设置的模块。
    ⚠️:
    1、在导入该模块时,请务必将其导入的语句放于最上方,也就是在所有其他模块之前将其导入。
    2、__future__模块是由PEP236提出并加入Python2.1中的,如果使用的是2.1版本之前的版本,也是无法使用该模块的。

Python __future__ 模块 - PyTips 0x15

你可能感兴趣的:(Python,基础,字符串)