简介

Python 是一种广泛使用的 解释型 高级通用语言.
Python 支持多种编程范型,包含

  • 结构化
  • 过程式
  • 反射式
  • 面向对象和函数式编程

关键字

and as assert async await break class continue
with from def del elif else except False
global import if in is lambda None while
yield nonlocal not or pass raise return True

Python 命令

1
2
3
# -c 表示执行python 命令
/usr/local/opt/python@3.9/bin/python3.9 -c "import sys ; print(sys.argv[0])"

Python 源文件

  • 默认字符编码UTF-8

    若不使用默认字符编码,则需要在源文件头部添加
    # -*- coding: encoding -*-

注释

# 开头 直到行未

数据类型

  • 数字

    • int 整数
    • float 浮点数 (一般使用 C 语言中的 double 实现)
      • sys.float_info 可以查询浮点数精度和内部表示法
    • complex 复数类型
    • Fraction 表示方法 Fraction(x,y) (from fractions import Fraction)
    • Decimal 表示方法 Decimal(value,context) (from decimal import * )

       value 取值范围
      • 浮点数
      • 整数
      • 字符串
      • 元组
      • Decimal
         注意点
        • 与基于硬件不同,用户可以自己控制精度
          1
          2
          3
          4
          5
          6
          7
          from decimal import *    
          getcontext().prec = 6
          Decimal(0.1) / Decimal(0.7)
          #Decimal('0.142857')
          getcontext().prec= 28
          Decimal(0.1) / Decimal(0.7)
          # Deciimal('0.1428571428571428571428571429')
        • 不可变对象 包含特殊 NaN , Infinity , -Infinity
        • 算术上下文 指定精度 prec / 舍入规则 rounding / 指数限制 Emin & Emax / 异常陷进启用器 traps 等
        • 余数操作符作用Decimal 对象时 结果符号跟随被除数
        • 常用方法
          • quantize() 舍入固定指数 Decimal(7.325).quantize(Decimal('0.1',rounding=ROUDN_UP))
          • float.fromhex()
  • 文本

  • 布尔

    • 属于整数子类型
    • 任何对象都可以做逻辑值检测,以便在 if / while 作为条件或者布尔运算符的操作数来使用
    • 默认情况下 任意对象都会被视为具有 真值,除非 对象所属类在对象上调用时返回 False 的 __bool__() 或者 返回零的 __len__()
    • 具有假值的内置对象
      • 常量 None 和 False
      • 任何零值 0 , 0.0 ,0j , Decimal(0) , Fraction(0,1)
      • 空序列和多项集 : ‘’ ,() , [] , {}, set() , range(0)

运算符

  • and / or /not 短路运算
    • x or y 当x 为 False 时 才判断 y
    • x and y 当x 为 False 时 直接 False 当X= True 时 仍需判断 y
  • 比较运算符
    - 常用符号 > , < , <= , >= , == , != , is , is not
    - 不同类型的对象不能进行相等比较,对于某些对象类型(类对象)此时相当于is
    - 具有不同标识的类对象一般不相等,除非类定义__eq()__
    - 类定义__lt()__ , __ge()__ , __gt__ , __le()__ 方便同类型对象进行排序
    - in / not in 使用前提 类实现 Iterable 或 实现 __contains()__方法