| 进度条:学习第 24天|当前完成度:21% |
一、今日任务(完成+收获)
任务:复习字符串基础,搞懂底层内存处理机制;完成数据类型转换与运算符入门。
| 任务项 | 完成情况 | 状态 |
|---|---|---|
| 数据类型转换 | 跑通动态类型、隐式转换、显式转换 | ✅ |
| 运算符入门 | 掌握定义与5大分类 | ✅ |
| 复习字符串与底层内存 | 搞懂了字符串驻留机制,用 id() 验证了内存地址 | ✅ |
收获:
- 字符串驻留机制:Python 只对符合规则的字符串(编译期常量、仅含字母数字下划线且较短)做驻留;运行时动态拼出来、带空格符号的,通常各占各的内存。
- 驻留机制情况:以下情况不同变量名会指向同一个地址。
- 字符串是由26个英文大小写,0-9,下划线组成的
- 字符串的长度为0或1时
- [-5,256]整数数字范围
- 最关键的坑:判断两个字符串相不相等,永远用,别用 id() 或 is。is 比的是"是不是同一个对象",才比"内容一不一样"。
- 大白话:电脑很抠门,同样的内容只存一份,大家共用(省内存)。比如
string1 = "hello world"和string2 = "hello world",用id()查地址,一模一样。
- 大白话:电脑很抠门,同样的内容只存一份,大家共用(省内存)。比如
- 类型转换:运算自动升级(隐式)、int/float/str 手动转(显式)、转换出的是复印件不动原件。
- list 可变(可加料)、tuple 不可变(封死的保鲜盒)、dict 键值对、set 自动去重。
1. 隐式转换:运算时自动升级(高精度优先)
- 整数 + 浮点数 = 浮点数:10 + 3.14 → 13.14,类型自动是 float。
- 规则:数据会向"精度更高"的类型自动转换,就像清水兑盐水,结果按"更稀"的算。
- ⚠️ 字符串不能直接和数字相加!必须先用 str() 转成同类型:
- text_trans = “number 的值为:” + str(number) # 先转字符串,再拼接
2. 显式转换:int() / float() / str() 手动转
- int():转整数;float():转浮点数;str():转字符串。
- 数字格式字符串可转数字:int(“10”) ✅、float(“3.14”) ✅
- ⚠️ int(“3.14”) 会直接报 ValueError(见下方纠错 2)
- 不符合格式会转换失败:int(“abc”) ❌
🖼️【图1:VS Code 运行截图 + 手写笔记 + 思维导图】
二、遇到哪些问题与没有透的
| 坑 | 一句话 |
|---|---|
| 之前遗留:底层内存没懂 | 之前对内存怎么处理字符串有点懵,今天彻底搞定了。 |
| 代码老是敲错报错 | 照抄教程,只要拼写或格式不对就报错,导致心态爆炸。 |
没吃透:没有新的没吃透了!今天把之前留下的“内存驻留”硬骨头啃下来了,成就感满满。
三、问题的理解和解决方法
关于【之前底层内存没懂,今天搞定了】
- 原因是【一开始跳着看视频,没有理解变量名和内存地址的关系】。我用【回过头复习字符串,并在 VS Code 里用
id()函数亲自测试】解决,结果是【验证了只要内容一致,内存地址就一样。终于把之前的坑填上了!】
🖼️【图1:VS Code 字符串
id()函数运行截图 】
关于【代码老是敲错报错】
- 原因是【把“抄写”当成了“学习”,注意力不集中】。我用【做减法:关掉 AI 预测代码功能,学完立马默写】解决,结果是【今天默写虽然磕磕绊绊,但对小白来说很难,我会继续努力!】
还没解决的:把前面学过的脚本全部敲一遍(正在进行中),替换里面的内容看自己是否掌握。对小白来说慢就慢吧,只要在前进就行。
四、小结和下一步计划
小结:搞定了类型转换和运算符,更重要的是学会了“做减法”,意识到编程不能光靠抄。
| 下一步 | 说明 |
|---|---|
| 复习并替换内容 | 把前面学过的脚本全部敲一遍,替换里面的内容检验掌握程度。 |
| 巩固英语 | 继续熟悉常用英语单词的读法和用法。 |
| 复盘一周内容 | 完成周报博客内容发布并巩固知识 |