前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这几道Python“基础”题,竟只有20%的人答对,几乎每个人都踩过其中的坑

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

作者头像
Crossin先生
发布2020-11-09 11:30:25
2890
发布2020-11-09 11:30:25
举报

大家好,欢迎来到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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档