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" 被误认为是需要处理 "[ ]" 这种意外字符.

ch3list2str

问题

  • 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




蟒营®编程思维提高班 Python版/第11期 正在报名

精品小班/ 每期<42人

扫描报名: 101camp12py

蟒营®式 原创课程

伴你重享学习乐趣

官网: py.101.camp

Reactivate Joy by Self-teching with You


任何问题可先进入知识星球(免费)咨询:
FAQ

关注公众号, 持续获得相关各种咨询:
mainium


追问

任何问题, 随时邮件提问可也:
askdama@googlegroups.com