Skip to content

Latest commit

 

History

History
197 lines (146 loc) · 5.19 KB

3130-188814-000313 整型数字变量.sy.md

File metadata and controls

197 lines (146 loc) · 5.19 KB
show version enable_checker
step
1.0
true

帮助手册

回忆上次内容

  • 上次了解的是字符串
  • 字符串有一些要素
    • 字符串长度
    • 字符串里面具体的每一个字符
    • 这些字符都可以用下标索引 -字符的长度本身有长有短
    • ascii 包括各种 转义字符 都对应 1 个字节
    • unicode 字符根据自身长度 可能对应 3 个字符
    • 但不管本身是1字节 还是 3字节
    • 都算一个字符
  • 字符串赋值过程
    • 在内存中 分配一块空间
    • 放上需要的字符串
    • 把字符串的内存首地址
    • 赋给一个字符串变量
  • 除了字符串还有什么变量类型?🤔
  • 数字类型

数字

图片描述

  • 上面两句就是数字型变量的
    • 定义
    • 引用
  • 这太简单了吧
  • 我怎么知道他是数字类型的?

类型和地址

图片描述

  • 可以看到这是一个数字类型的变量
  • 地址在id(iAge)

图片描述

  • 第一句的赋值过程
    • 在内存中分配一块空间存储数字型的变量
    • 分配的空间在id(iAge)
    • 类型class是int
    • 然后把分配空间地址给iAge变量

输出

图片描述

  • 在打印输出的时候
  • 这两个东西完全一样啊
  • 具体什么类型有关系么?
  • 还真有
  • 首先就是运算逻辑

运算逻辑

图片描述

  • 字符串的加法是串在一起
  • 数字的加法是按照数字的值相加
  • 为什么数字int类型能够按照值相加呢?

int 含义

  • int 全称 integer
  • 意思是整的数
  • 和零碎的相反
  • 一个就是一个
  • 两个就是两个
  • 没有一个半

图片描述

  • 这个int怎么用呢?

转化

图片描述

  • 可以把字符串转化为int整型
  • 甚至可以把其他进制的数转化为十进制整型数字

转化

图片描述

  • 一般语言比如c、java都把int当做关键字

  • 但是在python这里int是一个类

  • 语言中什么应该当做类?

  • 而什么应该进入关键字?

int类

图片描述

  • 这是一个语言设计的时候的最初的问题
  • 因为他涉及到了
    • 分词lexical analysis 如何拆成最小的元素
    • 语法parser 这些元素应该如何组合
    • 语义分析Syntax analysis 组合起来应该如何理解
    • 理解了之后应该生成怎么的流程
  • 是一个语言的根本
  • int之外
  • str都是类
  • 没有进入关键字
  • 有多少关键字呢?

关键字keyword

  • 下面是python3.9目前所有的关键字

图片描述

  • 可以看出这些关键字来自于c语言
  • 还记得么?那个最早的hello world
  • 但是有一些区别
  • 这个int类是用结构体来具体实现的
  • 但是具体来说
  • 他在电脑内存里面如何存储呢?

二进制

  • 在打印输入的时候使用十进制
    • 这符合我们的生活习惯
    • 因为我们有十个手指头
  • 在电脑存储和运算的时候使用二进制
    • 一切东西在电脑内不都是用二进制方式存储的
    • 因为电脑里只有高低电平(0和1)
    • 相当于两个手指头
  • 不管你有几个手指头
  • 同样是数41个苹果
  • 数出来的数字是不会变的
  • 真的么?

图片描述

二进制十进制转化

图片描述

  • (41)10进制 和 (101001)2进制 是相等的
  • 互相之间可以相互转化
  • 不论用10个手指头、还是2个手指头
    • 41个苹果的数量本身不会变
    • 只是计数方法变了

二进制binary 转 十进制decimal

  • help(bin)

图片描述

  • bin(41)
  • 0b101001
    • 其中0明确这是一个数字
    • b明确这是一个二进制数字

十进制decimal 转 二进制binary

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进制
  • 除了 二进制、 十进制
  • 还有什么样的进制来着
  • 怎么转化呢?🤔
  • 下次再说