Chapter-2 Python 基础数据类型

重点总结

  • python 中对象包含什么?
  • python 中变量与对象的关系?
  • Python 中变量的命名规则?
  • Python 中能否定义常量,内置常量有哪些?
  • 哪三类值会判定为假值?

1 | 对象

万物皆对象

Python 将内存中的值均包装成对象,如数据结构、函数和程序

内存像货架,一个对象就像货架上的一个货物,不用时将其移走

  • 内存 ----- 货架
  • 对象 ----- 货物

一个对象(货物)主要包含:

  • 类型 __class__,定义其可执行的操作,像货物的印章标明其用途
  • 与类型一致的
  • 唯一的 id,用于区分其他对象,像货物在架子上的位置
  • 引用计数 ob_refcnt,用于跟踪

2 | 变量

2-1 | 什么是变量

变量是方便引用对象而起的名称,不是对象本身,就像贴在盒子上的标签

💻赋值 =

a = 7

💻多重赋值

x, y, z = 1, 2, 3
a = b = c = 1

💻互换值

a, b = b, a

💡值为[-5, 256] 范围内的变量会具有相同的 id

a, c = 1, 1
>>> id(a)  # 2967746248944
>>> id(c)  # 2967746248944

a, c = 1000, 1000
>>> id(c)  # 2967820306256
>>> id(a)  # 2967820304752

2-2 | 命名规则

变量名字应在简洁和用途表达清晰之间做出平衡

  • 可用字符:
    • 小写字母 a~z
    • 大写字母 A~Z
    • 数字 0~9,但不能在开头
    • 下划线 _
    • Unicode 字符
  • 区分大小写:thingThingTHING 是不同的名称
  • 不能是 Python 的保留字语法关键字

⚠️ 注意,双下划线__开头或结束的变量是 Python 保留用法,不要自定义他们

.__name__  # 返回函数名称
.__doc__   # 返回函数 DocString
.__main__  # 主程序被赋值的特殊名字

三种命名风格

  • Camel Case: numberOfCollegeGraduates
  • Pascal Case: NumberOfCollegeGraduates (PEP8: 类名称)
  • Snake Case: number_of_college_graduates (PEP8: 函数、变量名称)

2-3 | 获取变量类型

>>> type(var)  # M1
>>> var.__class__  # M2 
# 检查类型
>>> isinstance(7, int)
True

3 | 常量

Python 内置常量,但无法定义常量

  • 内置常量:TrueFalseNone...NotImplement

  • 通常可以采取全大写表示常量 CONSTANT = 'python'

4 | 数字

开头加正负号 +- 可修改数字的正负

4-1 | 整数

Integers

既没有分数也没有小数点的数字

>>> 1
1

a = 1
>>> type(a)
int

⚠️对于十进制,0 不能放在整数开头,除非是其他进制,否则 SyntaxError

>>> 01
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers

🆕3.6版本开始,可对长数字加下划线作_为间隔方便输入,⚠️但使用, 会被识别为元组!

>>> a = 1_000_000
>>> a
1000000

>>> 1,000,000
(1, 0, 0)

4-2 | 基数

Python 默认 10 进制,但也支持其他进制

# 整数二、八、十六进制
>>> 0b10  # b=binary
2
>>> 0o10  # o=octal
8
>>> 0x10  # x=hexadecimal 
16

💻 基数 —> 字符串,输出的实际是一个表达式

v = 200
>>> bin(v), oct(v), hex(v)
('0b11001000', '0o310', '0xc8')

4-3 | 浮点数

Floating-Point Numbers

包含小数点的整数

>>> .4
0.4
>>> 5.
5.0
>>> 5.0
5.0
>>> 05.0
5.0
>>> float(5)
5.0

浮点数可在字母 e 之后包含一个十进制数形式的指数:

>>> 4.2e-4
0.00042

也可使用下划线 _ 分割增加可读性

million = 1_000_000.0

整数与浮点数混合运算,生成浮点数

>>> 1+.1
1.1

4-4 | 分数

Rational Number

1/3 这样等同于无限循环小数的分数可以用 Fraction() 表示

from fractions import Fraction
>>> f1 = Fraction("2/3")
>>> f2 = Fraction("1/3")
>>> f1 + f2
Fraction(1, 1)

4-5 | 复数

Complex Numbers

由实部 real part 和 虚部 imaginary part 组成,也可以看作两个浮点数构成

  • 定义:jJ 均可

    # 方式一
    >>> a = 3 + 4j
    >>> a
    (3+4j)
    
    # 方式二
    >>> z = complex(3, 2)
    >>> z
    (3+2j)
    
  • 输出

    >>> z.real  # 输出实部
    3.0
    
    >>> z.imag  # 输出虚部
    2.0
    

4-6 | 基础运算

所有的数字类型都支持以下方法:

示例 说明 备注
x + y 加法
x - y 减法
x * y 乘法
x / y 除法,返回值始终为浮点数
x // y 整除,相当于除法向下取整,仅保留整数部分 x 小于 y 则返回 0,
返回值为整数
x % y 求余 x 小于 y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值