SS6: 在判断死角里日常喷血¶
101camp2py 190816 触发
苦也:¶
问题并没意识到...
- 思路出现错误, 在编程时误把 list 数据当成 dict 数据.
- 痛点在于 Python "过于智能",直接把整个 list 转化为 str 类型, - 报错信息没完理解,导致对自己的判断 坚信不疑.
背景¶
环境
- Windows 10
- Python 3.x
101camp2py ch3 周任务获取 commit-comment 数据时,遭遇报错.
于是尝试在错误代码中间插入 print 函数打印存疑变量或对象.
下图中左侧是插入 print 函数后代码,右图则是执行代码后控制台输出,箭头由被打印变量,对象指向打印结果.报错 "TypeError: string indices must be integers" 被误认为是需要处理 "[ ]" 这种意外字符.
问题¶
- When? 精确发生时间点 ~见背景
- Where? 在什么场景中,什么数据上下文?...
- ch3 任务中,提取 commit-comment 数据时遇到报错
- 插入 print 函数打印 debug
- 报错 TypeError: string indices must be integers
- 不同 commit 对应不同的 URL, 拼接字符串的时候发现字符串带符号 "[ ]"
- What? 想完成什么目标? 操作序列, 指令, 终端输出?...
- 字符串分割,提取'[content]'字符串中的 content.
- 如:
- ['df934cf2bccf28f06c30a7c3b4049ded914e4be7']
- ->
- df934cf2bccf28f06c30a7c3b4049ded914e4be7
- Why? 如何理解的?
- 误以为字符串自带符号 '[ ]' ,想要去除这个符号
- How? 进行了什么尝试
- 根据字符串的下标切片.
现场解惑还原¶
本对话, 从提问之后的解答开始---
' ZoomQuiet 大妈: 想多了 --> 列表就一个元素~取出来就好 '
- - - - - - - - - - - - - - -
' m**i: 可是我之前就是没有切片,然后url有错误 '
- - - - - - - - - - - - - - -
' m**i: @ZoomQuiet 大妈 '
- - - - - - - - - - - - - - -
' m**i: ASCII码里
[ = 5D
] = 5B '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 那不叫切片...
提取而已... '
- - - - - - - - - - - - - - -
' m**i: 那我这个方法有错误了? '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 所以... 请求前...
先把拼好的 url 打印出来... 复制到浏览器可用 --> 再代入运行 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: @m**i 那我这个方法有错误了?
<-- 是也乎 ╮(╯▽╰)╭
方法没错思路反了 '
- - - - - - - - - - - - - - -
' m**i: 不呢,没有[ ]的url是正确的 '
- - - - - - - - - - - - - - -
' m**i: 但是我从json里面拿出来,不知为何就带了[ ] '
- - - - - - - - - - - - - - -
' m**i: 噢,我懂了 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: @m**i 但是我从json里面拿出来,不知为何就带了[ ]
<-- 是也乎 ╮(╯▽╰)╭
你没拿出来吧
直接列表就当结果了 '
- - - - - - - - - - - - - - -
' m**i: 天啦,我知道了,对的,那个是列表,只有一项的列表 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 但 python 智能的转成了 str '
- - - - - - - - - - - - - - -
' m**i: 但是我当成str了 '
- - - - - - - - - - - - - - -
' m**i: 对,我输了type也告诉我是str '
- - - - - - - - - - - - - - -
' m**i: 真血案 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 是也乎 ╮(╯▽╰)╭
这是笨办法第五课的练习 '
- - - - - - - - - - - - - - -
' m**i: 好的,笨办法没刷[捂脸] '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: @m**i 真血案
<-- 是也乎 ╮(╯▽╰)╭
通透 --> 将 QA 变成血案回顾吧...
这是常见问题...
都怪 python 太智能了...
其它语言根本不准运行的 '
- - - - - - - - - - - - - - -
' m**i: hhh,所以说,python代码全靠程序员自觉遵守规则了 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 是也乎 ╮(╯▽╰)╭
Yes and not....
关键是看乍用~ '
- - - - - - - - - - - - - - -
' m**i: 🆗了!谢谢您嘞 '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 这类智能特性... 没有时很累~有了又容易出问题...
所以 -->
C'est la vie (´-ι_-`)
'
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 为人民服务 ●v●嗯~ '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 等你的血案故事会~ '
- - - - - - - - - - - - - - -
' m**i: 好的,血案制造机☞ '
- - - - - - - - - - - - - - -
' ZoomQuiet 大妈: 是也乎 ╮(╯▽╰)╭
<-- 你们才是
俺是血瀑布模型 '
- - - - - - - - - - - - - - -
是也乎:¶
这就是蟒营哪, 正如隔壁队长说的:
一个十分开放的课程,开放到他只给你一个框架,内容完全由自己来填写,任何形式任何方法都可以得到包容,也没有人说[哎呀这个应该这样做],他完全靠自己实际操作来触发一系列隐藏任务,而大妈则是"和蔼"的站在背后不时的看看你,指引你,帮助你把这个发现的问题狠狠的踩下去,推动你去弄个明白.
PS:¶
当前课程对应公众号 蟒营101camp 暂定专栏有:
- DM 大妈嗯哼 ~ 文本快速呢喃点心境...
- NC 嗯哼蟒营 ~ 图文/图片有关课程信息
- SS 学员故事 ~ 各期课程中发生的真实"血案"
- TS 技术鳮汤 ~ 转载/原创自学技术/心法相关嗯哼
欢迎投稿, 邮件给课程组就好:
guru101camp@googlegroups.com
PPS:¶
免费知识星球,随时加入, 感受蟒营之怼力...
PPS:¶
蟒营(101.camp):
伴你重新享受自学乐趣
Reactivate Joy by Self-teach with You
- 所以, 不仅仅是 Python ,
- 马上将用蟒营形式发布写作课程,
- 欢迎大家参与体验,
- 用7+1周时间
- 重新获得写作的乐趣
- 以及一组高效出品习惯
NN 3743
自怼圈/年度番新
关于 ~ DebugUself with DAMA ;-)
点击注册~> 获得 100$ 体验券:
订阅 substack 体验古早写作:
关注公众号, 持续获得相关各种嗯哼:
蟒营®编程思维提高班Python版
**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发:- + 扫描预约入群, 学员每满 42 人即启动新一期训练营 ;-)
-
+ 任何问题, 随时邮件提问可也:
askdama@googlegroups.com