@
cuterose 我是萌新。。。
> 自己使用过程中的学到的一些总结
有自己的思考就行了。
别人的东西始终是别人的,自己去思考才能变成自己的,否则强记下来很快会还给别人的。
> 对 Python 一些概念的理解还不够透彻
你可以找 Python 2 的文档看看这些概念是什么时候加进去的。
如果是 Python 早期版本里没有的,那有可能这个概念是一个比较抽象的概念。
抽象的概念要理解透彻是不容易的,
因为抽象本来就是用来解决项目大了或者项目多了以后,
项目内部和项目之间有很多相似的代码维护费时费力的问题。
如果代码量不够,没有感性的体验,是很难理解透彻的。
等你删够足够多行代码(重构、重写)可能就容易理解透彻了。
> 最近在看 Python 核心编程
Python 核心编程没看过,无法评价。个人推荐 Problem Solving with Algorithms and Data Structures Using Python, 这本书好像没有国内出版社影印(原版好贵),不过作者提供了网页版:
https://interactivepython.org/runestone/static/pythonds/index.html > 很多时候都需要上网搜别人的思路来借鉴
这叫「面向 Google/StackOverflow 编程」, 是一个重要的编程流派 ;-)
其实 Python 标准库的东西,大部分都是 Python 实现的。也就是说,理论上说可以不用 Python 标准库,全部自己写。但实际上没人这么干。有些困难的、常用的逻辑,Python 标准库帮我们解决了,那直接用就是了。搜别人的思路一般是这个问题对你来说太难了,或者说你不太确定自己的想法对不对,但是因为这个问题不是特别常用的东西,所以没有标准库或框架或模块可以直接用,那上网搜就很正常。
另外,搜到的代码你要比较好地整合进自己的代码,就需要读懂它。当然有时候可以直接硬套,但这个只是把这事留给未来的自己罢了。当你写的项目大了、或者项目老了,如果涉及到需求变动,或者需要重构使代码更好理解、更好维护,你总要去弄懂这段代码的。也许有部分代码可以始终不去碰,但不可能所有硬套的代码都不去管的。也就是说,只要坚持写下去,或早或晚,至少其中一部分的代码你不得不去读懂的,那这个读、改的过程就是学习的过程。(搜索不能算学习,只能算学习的预备工作。)
以上指的是你实际编程过程中遇到的问题。
纯为练习做的编码,那理论上是不应该搜索的。
但是自学的话,如果实在没有思路,那还是得搜索或者问人。
好老师出题呢,会照顾学生的水平,既不会太简单(没什么效果),又不会太难(完全超出学生的难度),
所以这种情况学生就应该信任老师,既然老师给我出这个题,那就说明这个题我一定可以独立解出来的。
否则的话,老师或者会在出题时附带提示,或者会给这个题加上一颗或者几颗小星星。
但是你自学的话,这个题是你自己找的,不是老师给你出的。
实际上你并不一定清楚自己的程度,也不清楚题目的难度。
这种情况你解不出来可能就是这题在你现有能力之外了,这时候除了跳过不做和问人(搜索答案也算问人)外别无选择。
> 思路不是特别清晰
思路特别清晰就说明题太简单了,还在你的舒适区内。
找思路只能靠自己了。
我的经验是,可以尝试「拆」问题,假装我已经为解决这个问题写好了 f1, f2, f3 函数和 c1, c2 类,然后加以组合,去解决这个问题。走通了以后,再去补那些函数和类的定义(所以我很喜欢用 PyCharm 的 alt+enter )。
另外就是不要老对着电脑,没有头绪可以做点别的事,比如出去走走,交给潜意识去解决。我发现有时候这个磨洋工的办法效果意外地好。