专栏首页Crossin的编程教室这几道Python“基础”题,竟只有20%的人答对,几乎每个人都踩过其中的坑

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

大家好,欢迎来到Crossin的编程教室!

当你学习了Python语法基础,开始尝试开发具备完整功能的代码时,必然会遇上一些Python的语言特性。这些特性,如果你没有专门了解过,亲自在代码里测试过,那么在刚开始使用时一定会遇上或大或小的麻烦。所以我常说:

写代码的经验都是靠不断踩坑积累出来的!

有几个高频问题,我曾经在文章里问过的,当时答对的比例只有20%。后来也不断有新的学员掉进同样的坑。基本上这几个问题,迟早都会在代码中碰上。(如果你还没有,那一定是写得不够多)

啥?有人说不相信?

现在我再把这几题放出来,你可以自测一下,答案见文末。

1.

def func(m):
    m[0] = 20
    m = [4, 5, 6]
    return m
l = [1, 2, 3]
func(l)
print('l =', l)

程序的输出是:

  1. l = [1, 2, 3]
  2. l = [20, 2, 3]
  3. l = [4, 5, 6]
  4. l = [20, 5, 6]
  5. 程序报错

(此题当时正确率20%)

2.

m = [1, 2, [3]]
n = m[:]
n[1] = 4
n[2][0] = 5
print(m)

程序的输出是:

  1. [1, 2, [3]]
  2. [1, 4, [3]]
  3. [1, 2, [5]]
  4. [1, 4, [5]]
  5. 其它结果

(此题当时正确率35%)

3.

from copy import deepcopy
a = [3, 4]
m = [1, 2, a, [5, a]]
n = deepcopy(m)
n[3][1][0] = -1
print(n)

程序的输出是:

  1. [1, 2, [-1, 4], [5, [3, 4]]]
  2. [1, 2, [-1, 4], [5, [-1, 4]]]
  3. [1, 2, [3, 4], [5, [3, 4]]]
  4. [1, 2, [3, 4], [5, [-1, 4]]]
  5. 报错
  6. 其他结果

(此题当时正确率50%)

如果全对,那我给你一个大大的

(想必你也是在坑里摸爬滚打过来的);如果不对,我这里有相关的解读文章,欢迎取用。

下面我要公布答案了:

1. B

2. C

3. B

当然,其实无需我给出答案,你只需要自己在开发环境中输入并运行以上代码,就可以得到结论。

但是当你没有运行代码之前,是否可以正确预测出代码的输出呢?

更进一步说,当你在开发中碰上了同样的场景,是否在写下代码之时就明白预期的执行效果和其背后的语法特性?又或者在程序出现了与你预期不符的结果,可以从这个角度定位到问题所在?

本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:Crossin先生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 经验之谈

    刚开始接触python是在我大三上学期的时候,有一点C语言的基础。语言的基础其实在各类编程语言都是互通的,只是被包装的不一样,只要掌握一门语言的基础,学习其他语...

    佛系编程人
  • 零基础的小白,如何学Python才能更快就业?

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取...

    python学习教程
  • 没错,就是Python!我力挺的原因就是...

    而近期,数据科学网站KDnuggets,发布的2018数据科学和机器学习工具调查结果也显示:Python荣登第一,成为最受青睐的分析、数据科学、机器学习工具。2...

    AI科技大本营
  • 人工智能时代最合适的语言,Python终于玩大了!

    自2017年国务院印发《新一代人工智能发展规划》,明确指出在中小学阶段设置人工智能相关课程后,Python一路逆袭, 作为人工智能时代最合适的语言,Python...

    一墨编程学习
  • 一款具有MVP思维的区块链应用

    在软件产品开发领域,MVP是一个被经常应用的重要概念,全称为Minimum Viable Product,即最小可行产品。软件开发人员总想做出一款功能大而全的产...

    申龙斌
  • 2000字谏言,给那些想学Python的人,建议收藏后细看!

    这几天陆续收到很多读者、球友的留言、私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复。

    龙哥
  • 2000字谏言,给那些想学Python的人,建议收藏后细看!

    这几天陆续收到很多读者、球友的留言、私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复。

    测试开发社区
  • 小团队撬动大数据——当当推荐团队的机器学习实践

    用户1737318
  • “零基础学编程”都需要哪些基础?

    工作了20多年,学了Basic、C、C++、JAVA、C#、Objective-C、R、Go等一堆语言,可惜样样都不精。最近好像流行零基础学编程,我努力清空了我...

    申龙斌

扫码关注云+社区

领取腾讯云代金券