show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解的是字符串
- 字符串有一些要素
- 字符串长度
- 字符串里面具体的每一个字符
- 这些字符都可以用下标索引 -字符的长度本身有长有短
- ascii 包括各种 转义字符 都对应 1 个字节
- unicode 字符根据自身长度 可能对应 3 个字符
- 但不管本身是1字节 还是 3字节
- 都算一个字符
- 字符串赋值过程
- 在内存中 分配一块空间
- 放上需要的字符串
- 把字符串的内存首地址
- 赋给一个字符串变量
- 除了字符串还有什么变量类型?🤔
- 数字类型
- 上面两句就是数字型变量的
- 定义
- 引用
- 这太简单了吧
- 我怎么知道他是数字类型的?
- 可以看到这是一个数字类型的变量
- 地址在id(iAge)
- 第一句的赋值过程
- 在内存中分配一块空间存储数字型的变量
- 分配的空间在id(iAge)
- 类型class是int
- 然后把分配空间地址给iAge变量
- 在打印输出的时候
- 这两个东西完全一样啊
- 具体什么类型有关系么?
- 还真有
- 首先就是运算逻辑
- 字符串的加法是串在一起
- 数字的加法是按照数字的值相加
- 为什么数字int类型能够按照值相加呢?
- int 全称 integer
- 意思是整的数
- 和零碎的相反
- 一个就是一个
- 两个就是两个
- 没有一个半
- 这个int怎么用呢?
- 可以把字符串转化为int整型
- 甚至可以把其他进制的数转化为十进制整型数字
-
一般语言比如c、java都把int当做关键字
-
但是在python这里int是一个类
-
语言中什么应该当做类?
-
而什么应该进入关键字?
- 这是一个语言设计的时候的最初的问题
- 因为他涉及到了
- 分词lexical analysis 如何拆成最小的元素
- 语法parser 这些元素应该如何组合
- 语义分析Syntax analysis 组合起来应该如何理解
- 理解了之后应该生成怎么的流程
- 是一个语言的根本
- int之外
- str都是类
- 没有进入关键字
- 有多少关键字呢?
- 下面是python3.9目前所有的关键字
- 可以看出这些关键字来自于c语言
- 还记得么?那个最早的hello world
- 但是有一些区别
- 这个int类是用结构体来具体实现的
- 但是具体来说
- 他在电脑内存里面如何存储呢?
- 在打印输入的时候使用十进制
- 这符合我们的生活习惯
- 因为我们有十个手指头
- 在电脑存储和运算的时候使用二进制
- 一切东西在电脑内不都是用二进制方式存储的
- 因为电脑里只有高低电平(0和1)
- 相当于两个手指头
- 不管你有几个手指头
- 同样是数41个苹果
- 数出来的数字是不会变的
- 真的么?
- (41)10进制 和 (101001)2进制 是相等的
- 互相之间可以相互转化
- 不论用10个手指头、还是2个手指头
- 41个苹果的数量本身不会变
- 只是计数方法变了
- help(bin)
- bin(41)
- 0b101001
- 其中0明确这是一个数字
- b明确这是一个二进制数字
int("0b101001", base = 2)
int("101001", base = 2)
int("101001", 2)
- 这三条其实是等价的
- "0b..."明确是二进制数字
- base 是参数的名字标识多少进制
- 这次了解的是整型数字类变量
- 这类变量和字符串不同
- 数字变量是直接存储二进制形式的
- 可以用int()函数把2进制转化为10进制
int()
- 接受一个字符串
- 明确字符串使用的进制
- 二进制和十进制之间可以互相转化
- bin(41) 把 10进制 转化为 2进制
- int("101001",2) 把 2进制 转化为 10进制
- 除了 二进制、 十进制
- 还有什么样的进制来着
- 怎么转化呢?🤔
- 下次再说