Python是一种很棒的语言,语法简单,无需在代码中搜索分号。对于初学者来说,Python是入门最简单的语言之一。Python有大量的库支持,你还可以安装其他库来增加自己的编程经验。
学了一阵子之后,你可能会觉得:为如此简单的操作写大量的代码有些令人困惑。实际上,事情并没有你想得那么糟。理解其背后的逻辑比写几行代码更为重要。短代码更好,但如果逻辑有问题,那么无论如何你的代码都会有问题。随着经验和创造力的增长,最终你的代码将会变得更短、更好。
初学者与中级程序员
那么,对于Python程序员而言,初学者和进阶者有什么区别呢?
本文将重点介绍以下方面:
-
解决问题和提出问题;
-
XY问题;
-
理解代码为何起作用(或不起作用);
-
使用字符串;
-
使用列表;
-
使用循环;
-
使用函数(并正确谈论函数);
-
面向对象编程;
-
尊重PEP。
解决问题和提出问题
程序员缺乏解决问题能力的话,代码出色也是枉然。
如果你解决问题的思维不够发达,可能就无法为你要解决的问题找到最佳的解决方案。编程不仅仅是编写代码,需要解决问题才能有机会出初学者行列。
提出编程相关的问题也很重要。如果不经尝试,就让别人解决你的问题,可能也会出局。这很难,但如果不尝试自己解决问题,你将对解决方案一无所得。
如果想要了解更多关于编程提问的技能,我另有一篇文章,链接如下(英文):How to Ask Questions About Programming:https://medium.com/better-programming/how-to-ask-questions-about-programming-dcd948fcd2bd
XY问题
“我需要从字符串中提取最后3个字符。”
“不,你不需要。只需文件扩展名。”
XY问题很有趣。你有个X问题,当你调用服务中心时,会寻求Y问题的解决方案,以解决X问题。
上面的案例就是极好的例子。如果想要文件名中的文件扩展名,很容易假设你需要的是最后3个字母。
如何写代码:
def extract_ext(filename):
return filename[-3:]
print (extract_ext('photo_of_sasquatch.png'))
>>> png
用户从一开始应该会索要扩展名,最后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/
理解代码为何起作用(或不起作用)
作为新手,你可能要花几天来对付一小段代码。如果这段代码突然起作用了,你可能会感觉放心,然后继续下一段代码。这是最糟糕的事情之一。不理解原因只管运行的做法,可能比不理解代码的为什么不运行更加危险。
不理解为何代码不运行的情况总会发生,当进行故障排除并搞清楚其原因时,思考代码不运行的原因和最终使其运行的因素非常重要。这次学到的知识会带到下一个程序中。
例如,如果多个缩进级别的代码中出现了缩进错误,可以尝试随机调整代码块,然后在最终运行时为自己庆祝。
切记,在大多数IDE中,可以折叠循环和if