zoukankan      html  css  js  c++  java
  • Python(二)

    函数
    Python的函数支持递归、默认参数值、可变参数,但不支持函数重载。
    为了增强代码的可读性,可以在函数后书写“文档字符串”(Documentation Strings,或者简称docstrings),
    用于解释函数的作用、参数的类型与意义、返回值类型与取值范围等。可以使用内置函数help()打印出函数的使用帮助。

    对象的方法
    对象的方法是指绑定到对象的函数。调用对象方法的语法是instance.method(arguments)。
    它等价于调用Class.method(instance, arguments)。
    当定义对象方法时,必须显式地定义第一个参数,一般该参数名都使用self,用于访问对象的内部数据。
    这里的self相当于C++, Java里面的this变量,但是我们还可以使用任何其它合法的参数名,比如this 和 mine 等,
    self与C++,Java里面的this不完全一样,它可以被看作是一个习惯性的用法,我们传入任何其它的合法名称都行
    Python认识一些以“__”开始并以“__”结束的特殊方法名,它们用于实现运算符重载和实现多种特殊功能。

    类型
    Python采用动态类型系统。在编译的时候,Python不会检查对象是否拥有被调用的方法或者属性,而是直至运行时,才做出检查。
    所以操作对象时可能会抛出异常。不过,虽然Python采用动态类型系统,它同时也是强类型的。
    Python禁止没有明确定义的操作,比如数字加字符串。
    与其它面向对象语言一样,Python允许程序员定义类型。构造一个对象只需要像函数一样调用类型即可,
    比如,对于前面定义的Fish类型,使用Fish()。
    类型本身也是特殊类型type的对象(type类型本身也是type对象),这种特殊的设计允许对类型进行反射编程。
    Python内置丰富的数据类型。
    与Java、C++相比,这些数据类型有效地减少代码的长度。下面这个列表简要地描述了Python内置数据类型(适用于Python 3.x):

    类型    描述    例子    备注
    str    一个由字符组成的不可更改的有串行。    'Wikipedia'
    "Wikipedia"
    """Spanning
    multiple
    lines"""    在Python 3.x里,字符串由Unicode字符组成
    bytes    一个由字节组成的不可更改的有串行。    b'Some ASCII'
    b"Some ASCII"     
    list    可以包含多种类型的可改变的有串行    [4.0, 'string', True]     
    tuple    可以包含多种类型的不可改变的有串行    (4.0, 'string', True)     
    set, frozenset    与数学中集合的概念类似。无序的、每个元素唯一。    {4.0, 'string', True}
    frozenset([4.0, 'string', True])     
    dict    一个可改变的由键值对组成的无串行。    {'key1': 1.0, 3: False}     
    int    精度不限的整数    42     
    float    浮点数。精度与系统相关。    3.1415927     
    complex    复数    3+2.7j     
    bool    逻辑值。只有两个值:真、假    True
    False
     
    除了各种数据类型,Python语言还用类型来表示函数、模块、类型本身、对象的方法、编译后的Python代码、运行时信息等等。
    因此,Python具备很强的动态性。
    数学运算
    Python使用与C、Java类似的运算符,支持整数与浮点数的数学运算。
    同时还支持复数运算与无穷位数(实际受限于计算机的能力)的整数运算。
    除了求绝对值函数abs()外,大多数数学函数处于math和cmath模块内。
    前者用于实数运算,而后者用于复数运算。
    使用时需要先导入它们,比如:
    >>> import math
    >>> print(math.sin(math.pi/2))
    1.0
    fractions模块用于支持分数运算;decimal模块用于支持高精度的浮点数运算。
    Python定义求余运行a % b的值处于开区间[0, b)内,如果b是负数,开区间变为(b, 0]。
    这是一个很常见的定义方式。不过其实它依赖于整除的定义。
    为了让方程式:b * (a // b) + a % b = a恒真,整除运行需要向负无穷小方向取值。比如7 // 3的结果是2,而(-7) // 3的结果却是-3。
    这个算法与其它很多编程语言不一样,需要注意,它们的整除运算会向0的方向取值。
    Python允许像数学的常用写法那样连着写两个比较运行符。比如a < b < c与a < b and b < c等价。C++的结果与Python不一样,首先它会先计算a < b,根据两者的大小获得0或者1两个值之一,然后再与c进行比较。

    备注:随笔中内容来源于网上资料整理,仅供参考。

  • 相关阅读:
    Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
    OrCAD Capture CIS 16.6 导出BOM
    Altium Designer (17.0) 打印输出指定的层
    Allegro PCB Design GXL (legacy) 将指定的层导出为DXF
    Allegro PCB Design GXL (legacy) 设置十字大光标
    Allegro PCB Design GXL (legacy) 手动更改元器件引脚的网络
    magento产品导入时需要注意的事项
    magento url rewrite
    验证台湾同胞身份证信息
    IE8对css文件的限制
  • 原文地址:https://www.cnblogs.com/Alanf/p/7810649.html
Copyright © 2011-2022 走看看