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进行比较。

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

  • 相关阅读:
    SSL 数据加密原理简述
    MQTT 协议 部分细节
    ARM汇编--汇编中符号和变量
    Kconfig 配置文件编码规则
    ARM汇编指令-STMFD/LDMFD
    python类属性和对象属性、类的普通方法和静态方法
    ARM汇编---程序获取符号的物理地址
    Spring源码分析:非懒加载的单例Bean初始化前后的一些操作
    Spring源码分析:非懒加载的单例Bean初始化过程(下)
    Spring源码分析:非懒加载的单例Bean初始化过程(上)
  • 原文地址:https://www.cnblogs.com/Alanf/p/7810649.html
Copyright © 2011-2022 走看看