初学者与中级程序员
那么,对于Python程序员而言,初学者和进阶者有什么区别呢?
本文将重点介绍以下方面:
-
解决问题和提出问题;
-
XY问题;
-
理解代码为何起作用(或不起作用);
-
使用字符串;
-
使用列表;
-
使用循环;
-
使用函数(并正确谈论函数);
-
面向对象编程;
-
尊重PEP。
1. 解决问题和提出问题:
程序员缺乏解决问题能力的话,代码出色也是枉然。
如果你解决问题的思维不够发达,可能就无法为你要解决的问题找到最佳的解决方案。编程不仅仅是编写代码,需要解决问题才能有机会出初学者行列。
提出编程相关的问题也很重要。如果不经尝试,就让别人解决你的问题,可能也会出局。这很难,但如果不尝试自己解决问题,你将对解决方案一无所得。
如果想要了解更多关于编程提问的技能,我另有一篇文章,链接如下(英文):How to Ask Questions About Programming:https://medium.com/better-programming/how-to-ask-questions-about-programming-dcd948fcd2bd。
2. XY问题:
“我需要从字符串中提取最后3个字符。”
“不,你不需要。只需文件扩展名。”
XY问题很有趣。你有个X问题,当你调用服务中心时,会寻求Y问题的解决方案,以解决X问题。
上面的案例就是极好的例子。如果想要文件名中的文件扩展名,很容易假设你需要的是最后3个字母。
如何写代码:
def extract_ext(filename): return filename[-3:] print (extract_ext('photo_of_sasquatch.png')) >>> png
好极了,现在换成photo_of_lochness.jpeg:
用户从一开始应该会索要扩展名,最后3个字母是Y问题,而X问题是我们想要扩展名。
def extract_ext(filename): return filename.split('.')[-1] print (extract_ext('photo_of_sasquatch.png')) print (extract_ext('photo_of_lochness.jpeg')) >>> png >>> jpeg
成功了!
你也可以使用标准库 `os.path.splitext() `,点击这里查看:os.path.splitext():https://www.geeksforgeeks.org/python-os-path-splitext-method/。
3. 理解代码为何起作用(或不起作用):
作为新手,你可能要花几天来对付一小段代码。如果这段代码突然起作用了,你可能会感觉放心,然后继续下一段代码。这是最糟糕的事情之一。不理解原因只管运行的做法,可能比不理解代码的为什么不运行更加危险。
不理解为何代码不运行的情况总会发生,当进行故障排除并搞清楚其原因时,思考代码不运行的原因和最终使其运行的因素非常重要。这次学到的知识会带到下一个程序中。
例如,如果多个缩进级别的代码中出现了缩进错误,可以尝试随机调整代码块,然后在最终运行时为自己庆祝。
切记,在大多数IDE中,可以折叠循环和if语句,从而更容易查看正在使用的部分。
右侧是折叠了if/else语句的ATOM