Py学习  »  Python

这几道Python“基础”题,竟只有20%的人答对,几乎每个人都踩过其中的坑

脚本之家 • 2 周前 • 117 次点击  
将 脚本之家 设为“星标
第一时间收到文章更新
图片

来源 | Crossin的编程教室(ID:crossincode)

当你学习了Python语法基础,开始尝试开发具备完整功能的代码时,必然会遇上一些Python的语言特性。这些特性,如果你没有专门了解过,亲自在代码里测试过,那么在刚开始使用时一定会遇上或大或小的麻烦。所以我常说:
写代码的经验都是靠不断踩坑积累出来的!
有几个高频问题,我曾经在文章里问过的,当时答对的比例只有20%。后来也不断有新的学员掉进同样的坑。基本上这几个问题,迟早都会在代码中碰上。(如果你还没有,那一定是写得不够多
啥?有人说不相信?
现在我再把这几题放出来,你可以自测一下,答案见文末
1. 
def func


    
(m):    m[0] = 20    m = [456]return ml = [123]func(l)print('l =', l)
程序的输出是:
(此题当时正确率20%)
2.
m = [1, 2, [3]]n = m[:]n[1] = 4n[2][0] = 5print(m)
程序的输出是:
(此题当时正确率35%)
3.
from copy import deepcopya = [3, 4]m = [1, 2, a, [5, a]]n = deepcopy(m)n[3][1][0] = -1print(n)

程序的输出是:

(此题当时正确率50%)


如果全对,那我给你一个大大的(想必你也是在坑里摸爬滚打过来的);如果不对,我这里有相关的解读文章,欢迎取用
下面我要公布答案了:

1. B
2. C
3. B
当然,其实无需我给出答案,你只需要自己在开发环境中输入并运行以上代码,就可以得到结论。
但是当你没有运行代码之前,是否可以正确预测出代码的输出呢?
更进一步说,当你在开发中碰上了同样的场景,是否在写下代码之时就明白预期的效果和其背后的语法特性?又或者在程序出现了与你预期不符的结果,可以从这个角度定位到问题所在?
图片
  推荐阅读:
  1. 公司砸 6 万月薪挖来的技术大牛,入职不到 2 个月就和领导杠上了。没别的原因,就是他不加班!
  2. 有了 AI,普通人还有必要学编程吗?
  3. 领导的嫡系捅了个大篓子,出了严重bug,甲方追着要人背锅。领导找我谈话,说综合考虑之后决定让我来顶这个锅
  4. Windows被晾了十年,现在重新上位!
  5. 微软CEO纳德拉最新警告:单押一个大模型,是把公司命门交出去

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/199478