Python 03-变量和数据类型

Python 03-变量和数据类型

1、Python 变量

变量就是数据的名称,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

  • Python 中,使用变量 需要预先定义及声明
  • 变量的名称 只要符合标识符的定义就行
  • 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • Python语言中,所有的 数据 都被称之为 对象, 个人感觉所有的东西都是对象,才对,😄
  • Python不是强类型的语言,变量可以赋不同类型的值
# 直接起名,直接使用
>>> a= 'hello'     // 此时是字符串类型
>>> print(a)
hello
>>> a = 1					 // 此时是整数类型
>>> print(a)

2、数据类型

数据类型主要有 :


2.1、基本类型:

基本类型是首先要掌握的数据类型,其他的可暂时不考虑。

  • 数字

    • int : 整数 ----- 具有无限的精度
      • 布尔型 算是整数的特殊形式
    • float :小数 ----- 通常用 C 中的 double 来实现,详见 sys.float_info
    • complex :复数

    构造函数 int()、 float() 和 complex() 可以用来构造特定类型的数字。


2.2、数据容器或者数据结构

  • 序列 — list, tuple, range

    • 字符串 — 也就是 str 对象,也是不可变序列
    • 二进制序列类型 — bytes, bytearray, memoryview
  • 映射 — dict

  • 集合 — set, frozenset

2.3、其他类型

暂时不考虑,详细内容可参考python的官档 【内置类型】部分。

3、整数类型 — class int

整型数字面值的长度没有限制,能一直大到占满可用内存,😂

>>> 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 模块加入到内置命名空间。

3.1、进制转换的函数

  • 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
    

3.2、字面值表示

​ 在确定数字大小时字面值中的下划线会被忽略。它们可用来将数码分组以提高可读性。一个下划线可放在数码之间,也可放在基数说明符例如 0x 之后。

​ 注意非零的十进制数开头允许有额外的零。这是为了避免与 Python 在版本 3.0 之前所使用的 C 风格八进制字面值相混淆。

7     2147483647                        0o177    0b100110111
3     79228162514264337593543950336     0o377    0xdeadbeef
      100_000_000_000                   0b_1110_0101

4、小数类型 — class float

小数(浮点数)是用 C 的double来实现的

>>> a = 1.
>>> type(a)
<class 'float'>

4.1、字面值表示

浮点数字面值由以下词法定义进行描述:

#小数格式: 浮点 | 浮指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

4.2、相关的函数

运算结果:
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

5、bool 类型 — class bool

​ 任何对象都可以进行逻辑值的检测,以便在 ifwhile 作为条件或是作为下文所述布尔运算的操作数来使用。

​ 产生布尔值结果的运算和内置函数总是返回 0False 作为假值,1True 作为真值,除非另行说明。 (重要例外:布尔运算 orand 总是返回其中一个操作数。)

下面基本完整地列出了会被视为值的内置对象:

  • 被定义为假值的常量: NoneFalse

  • 任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)

  • 空的序列和多项集: '', (), [], {}, set(), range(0)

    class bool(int) : bool 是int 的子类

    >>> issubclass(bool,int)True
    

    issubclass(cls, class_or_tuple, /)
    返回 cls 是否 class_or_tuple 的子类 或者 同类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值