变量就是数据的名称,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
数据
都被称之为 对象, 个人感觉所有的东西都是对象,才对,# 直接起名,直接使用
>>> a= 'hello' // 此时是字符串类型
>>> print(a)
hello
>>> a = 1 // 此时是整数类型
>>> print(a)
数据类型主要有 :
基本类型是首先要掌握的数据类型,其他的可暂时不考虑。
数字
double
来实现,详见 sys.float_info构造函数 int()、 float() 和 complex() 可以用来构造特定类型的数字。
序列 — list, tuple, range
映射 — dict
集合 — set, frozenset
暂时不考虑,详细内容可参考python的官档 【内置类型】部分。
整型数字面值的长度没有限制,能一直大到占满可用内存,
>>> a = 10
>>> print(type(a))
<class 'int'>
>>> isinstance(a,int)
True
class type 内置模块中的 class,表示一个类,type(object) 是构造函数,返回这个obj代表的类
isinstance(obj, class_or_tuple, /) 是内置函数,返回obj 是否是 class_or_tuple 的实例或者 (直接、间接 或 虚拟) 子类
help(isinstance) 启动内置的帮助函数(此函数主要在交互式中使用),通过
site
模块加入到内置命名空间。
bin() — 将一个整数转变为一个前缀为“0b”的二进制字符串
>>> bin(10)
'0b1010'
oct() — 将一个整数转变为一个前缀为“0o”的八进制字符串。
>>> oct(10)
'0o12'
hex() — 将整数转换为以“0x”为前缀的小写十六进制字符串。
>>> hex(10)
'0xa'
format(value[, format_spec]) 将 value 转换为 format_spec 控制的“格式化”表示。
在格式化字符串时讲解
int(‘x’,base=10) — 将字符串转换为 base 进制 的整数
如果base 非空,则X必须是字符串类型 。 base >= 2 and <= 36
>>> int('11',16)
17
在确定数字大小时字面值中的下划线会被忽略。它们可用来将数码分组以提高可读性。一个下划线可放在数码之间,也可放在基数说明符例如 0x 之后。
注意非零的十进制数开头不允许有额外的零。这是为了避免与 Python 在版本 3.0 之前所使用的 C 风格八进制字面值相混淆。
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
小数(浮点数)是用 C 的double来实现的
>>> a = 1.
>>> type(a)
<class 'float'>
浮点数字面值由以下词法定义进行描述:
#小数格式: 浮点 | 浮指floatnumber ::= pointfloat | exponentfloat # 浮点:[数字] 小数 | 数字'.' 例如:.1、0.1、1.pointfloat ::= [digitpart] fraction | digitpart "." # 浮指:科学计数表示法,带'e'或者'E'exponentfloat ::= (digitpart | pointfloat) exponent# 部分数字:数字中带下划线,下划线可有可无digitpart ::= digit (["_"] digit)*# 小数:小数点+数字fraction ::= "." digitpart# 指数:'E' + [+,-] + 部分数字exponent ::= ("e" | "E") ["+" | "-"] digitpart
整型数部分和指数部分在解析时总是以 10 为基数。例如,077e010
是合法的,且表示的数值与 77e10
相同。浮点数字面值允许的范围依赖于具体实现。对于整型数字面值,支持以下划线进行分组。
一些浮点数字面值的示例如下:
3.14 10. .001 1e100 3.14e-10 0e0 3.14_15_93
运算 | 结果: |
---|---|
float.as_integer_ratio() | 返回一对整数,其比率正好等于原浮点数并且分母为正数 |
float.is_integer() | 返回 float 实例可用有限位整数表示 |
float.hex() | 以十六进制字符串的形式返回一个浮点数表示 |
classmethod float.fromhex(s) | 以十六进制字符串 s 表示的浮点数的类方法 |
math.trunc(x) | x 截断为 Integral |
round(x[, n]) | x 舍入到 n 位小数,半数值会舍入到偶数。 如果省略 n,则默认为 0。 |
math.floor(x) | <= x 的最大 Integral |
math.ceil(x) | >= x 的最小 Integral |
任何对象都可以进行逻辑值的检测,以便在 if
或 while
作为条件或是作为下文所述布尔运算的操作数来使用。
产生布尔值结果的运算和内置函数总是返回 0
或 False
作为假值,1
或 True
作为真值,除非另行说明。 (重要例外:布尔运算 or
和 and
总是返回其中一个操作数。)
下面基本完整地列出了会被视为假值的内置对象:
被定义为假值的常量: None
和 False
。
任何数值类型的零: 0
, 0.0
, 0j
, Decimal(0)
, Fraction(0, 1)
空的序列和多项集: ''
, ()
, []
, {}
, set()
, range(0)
>>> issubclass(bool,int)True
issubclass(cls, class_or_tuple, /)
返回 cls 是否 class_or_tuple 的子类 或者 同类