Python笔记5

来源:互联网 发布:淘宝app确认订单页面 编辑:程序博客网 时间:2024/06/16 04:21

1.数字-补充1

在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类。Python的数字类型的完整工具包括: 整数和浮点数, 复数,固定精度的十进制数,有理分数,集合,布尔类型,无穷的整数精度, 各种数字内置函数和模块。

Python 2.6中的整数有两种类型: 一般型整数(32位)和长整数(无穷精度), 并且一个整数可以以l或L结尾, 从而强迫其成为长整数,当整数数值超过32位时自动转换为长整数, 当需要额外精度时也会自动转为长整数。

Python 3.0中 一般整数和长整数合二为一, 只有整数一种, 自动的拥有长整数的无穷精度。

整数可以编写为十进制, 十六进制,八进制和二进制。十六进制以0x或0X开头, 后面接0~9和A~F, 十六进制的数字编写成大小写都可;八进制数常量以0o或0O开头, 后面接0~7,早期python,八进制也写成0开头的形式,因容易与十进制混淆,在Python 3.0中此种方式废弃,不再支持;  二进制在Python 2.6和3.0中新加入, 以0b或0B开头, 后面接0和1组成。

复数写成实部+虚部的写法, 这里虚部通常都是以j或J结尾。其实,实部从技术上讲可有可无, 所以可能会单独表示虚部。从内部上讲,复数都是通过一对浮点数来表示,但所有对复数的数字操作都会按照复数的运算法则进行。也可使用内置函数complex(real, imag)来创建复数。

Python 表达式操作符:

表达式是处理数字的基本工具

yield x 生成器函数发送协议

lambda args:expression生成匿名函数

x if y else z三元选择表达式(如果y为真 返回x,  y为假 返回z)

x or y 逻辑或(只有x为假才会计算y)

x and y 逻辑与(只有x为真才会计算y)

not x 逻辑非

x in y, x not in y成员关系(可迭代对象,集合)

x is y, x is not y对象实体测试

x < y, x <= y, x > y, x >= y

x == y,  x != y 大小比较,集合子集和超集相等性操作符

x | y 位或, 集合合并

x ^ y 位异或, 集合对称差

x & y 位与, 集合交集

x << y, x >>y x 左移/右移 y位

x + y, x - y加法/合并, 减法, 集合差集

x * y, x % y, x / y, x // y乘法/重复, 余数/格式化,除法, 真除法/floor 除法

-x, +x 一元减法, 识别

~x 按位取反

x ** y 幂运算

x[i] 索引(序列, 映射等)点号取属性运算,函数调用

x[i:j:k] 分片

x(...) 调用(函数,方法, 类及其他可调用的)

x.attr 属性索引

(...) 元组,表达式,生成器表达式

[...] 列表, 列表解析

{...} 字典, 集合, 集合和字典解析


Python 2.6中, x!=  y可以写为 x <> y, Python 3.0中此法废弃。

Python 2.6中, 一个后引号表达式 ‘X’ 和repr(X), 转换对象以显示字符串, Python 3.0中将其废弃, 使用更容易理解的str和repr内置函数。

Python 2.6和Python3.0中, floor除法表达式(x // y)总是会把余数小数部分去掉,在python 3.0中 x / y表达式执行真正的除法(保留小数), 在python 2.6中表示传统除法(截除为整数)。

在Python中:

变量在它第一次赋值时创建

变量在表达式使用将被替换为他们的值

变量在表达式中使用以前必须已经赋值

变量像对象一样不需要在一开始进行声明



关于除法/真除法/floor除法:

X  /  Y

传统除法和真除法。

Python2.6和之前版本中, 这个操作对于整数会省去小数部分, 对于浮点数保留小数部分。

Python3.0中, 变为真除法, 无论任何类型都会保留小数部分。


X // Y

Floor除法。

在Python2.6和Python 3.0中都能够使用, 这个操作不考虑操作对象的类型, 总会省略掉小数部分。 剩下最小能整除的整数部分。


添加真除法是为了解决最初的传统除法的结果依赖于操作数类型(因此,其结果在Python这种动态类型的语言中很难预料)这一现象。因此Python 3.0中取消了传统除法, /和//分别实现真除法和Floor除法。