我已经很好地掌握了我的第一种编程语言C语言.我知道合理数量的技巧和技巧,并编写了不少程序,主要是用于科学的东西.现在我想分支并理解OOP,Python似乎是一个很好的方向.
我已经看到了几个关于如何学习Python的问题,但是大多数问题都来自那些第一次开始编程的人.我不需要一个可以告诉我字符串是什么的教程,但我确实需要一个可以告诉我如何在Python中创建字符串的教程.对一些好的资源有任何帮助可以查看吗?如果来源是免费的奖励积分:)
Ste*_*sop 29
在我认识Python之前我就认识C. 没有违法行为,但我认为你的C知识不是那么重要.除非你读得非常非常慢,否则就开始学习Python.浏览你熟悉的材料并不需要那么长时间,并不是说针对C程序员的Python教程会让你成为一个更好的Python程序员 - 它可能会以不同的顺序教你的东西,都是,并提出一些你将在C中做的具体事情,但你不应该用Python做.
Python中的字符串实际上与C中的字符串略有不同,并且它们的使用方式不同.我强烈建议"从头开始"学习它们,而不是根据它们与C字符串的差异来考虑它们.首先,在Python 2中,最好不要使用Python的"字符串"类来表示字符串:有一个单独的unicode字符串类,对于实际的Python应用程序(几乎涉及用户数据的任何东西),你需要它.(Python 3修复此问题,使str该类成为unicode字符串).您需要为unicode /字节数据和解码/编码建立良好的工作实践.
学习第二种编程语言时常犯的一个错误就是"我知道如何编程,我只需要将我在C中所做的事情翻译成Python".不,你没有.虽然算法在不同语言中的确可以基本相同,但在不同语言中执行特定事物的自然方式可能完全不同.如果你学会习惯性地使用Python,那么你会编写更好的Python代码,而不是像C程序员那样编写Python.你知道在C中有意义的许多"技巧"在Python中都是无意义的或适得其反的.相反,你应该在一个典型的Python程序中快乐地做很多事情,比如分配和释放大量内存,在C中你可能已经学会了三思而后行.
如果您正在学习该语言,因为您迫切需要编写一个具有Python但没有C的系统/平台,那么编写像C程序一样工作的Python程序是一个合理的临时措施.但这可能不适用于你,即使这样做也不是最终目标.
由于您的C经验,您可能有兴趣看一件事是Python/C API.Python对很多东西都很好,但它并没有导致科学应用程序中最快的计算核心[可能也没有C,但是现在不要进入FORTRAN ;-)].因此,如果您的目标是通过Python中的移动继续进行科学编程,并且您的程序通常是内存总线和CPU限制进行大量的数字运算(数十亿运算),那么您可能想知道如何如果你需要,逃到C.不过,请将其视为最后的手段.
但是,在Python/C API很有意义之前,你需要合理地理解Python.
哦,是的,如果你想了解一般的OOP,请记得稍后看一下像Java,Objective-C,C++或者D这样的东西.Python不仅仅是一种OO语言,它是一种动态的OO语言.您可能没有通过比较C和Python来实现它,但动态与静态类型是完全独立于Python的OOP问题.Python对象就像哈希表一样,允许你无条件地附加新字段,但许多其他OO语言中的对象以更像C的方式存储数据struct.