c和python哪个好 对比python和c语言有什么区别和python的优缺点?

这题我会呀!先说下背景,某 985 CS科班,学过并且熟悉掌握C/C++、Java、Python等常见语言。实际上,C 和 Python 根本不冲突啊,如果你会 C
的话,学 Python 估计菜鸟教程看两天就差不入门了。如果你是问我哪个更适合入门的话,那只能说非科班转行可以优先 Python、Java这类,科班大一的入门可以选 C 语言实际上不同的语言就是不同的“语法特性”集合,它们之间往往存在很大的交集,而这部分是一次学好,可以迁移到任意语言的。就拿 Java、Python、C++ 这几门语言来说,它们共通的“语言特性”大概有这些:算术运算for 循环语句,while 循环语句函数定义,函数调用递归类型推导lambda 函数面向对象而 C++ 多出来的是 泛型编程、指针、引用(这里指特有的左值右指)。那么一旦学会 Python,学 C++就可以很快掌握基本的语法结构,而重点关注多出来那部分“语言特性”编程本质上还是解决问题,把问题拆解为一个个步骤,然后写死让机器去根据不同的数据,产出不同的结果。就很类似菜谱,比如如何做一碗面?.准备200g面条,1个鸡蛋。打开燃气灶锅里加入1升的水,开始盖上锅盖烧水水开后把面条放入锅中,盖上锅盖等水沸腾后,煮几分钟即可挑出这样一串明确指令,如果我家有个机器人,它可以机械式的执行,然后给我做出一碗面条来,而计算机就是这个机器人,编程就是写菜谱,所以其实学什么语言都无所谓,关键看你的目的。而且往往学习一门语言,我们只需要掌握 60%-80% 的特性就能完成大部分任务,而这 60%-80%的特性大部分都是所有语言共通的。所以快速掌握一门语言的 50% 左右是最好的方法,这样可以快速学习不同的语言,在这说下方法把: 首先了解该语言的基本数据类型,基本语法和主要语言构造,主要数学运算符和print函数的使用,达到能够写谭浩强程序设计书课后数学习题的程度;这里参考CSDN孟岩的博文,原文:快速掌握一个语言最常用的50%_孟岩-CSDN博客其次掌握数组和其他集合类的使用,有基础的话可以理解一下泛型,如果理解不了也问题不大,后面可以补;简单字符串处理。所谓简单,就是Regex和 Parser 以下的内容,什么查找替换,截断去字串之类的。不过这个阶段有一个难点,就是字符编码问题。如果理解不了,可以先跳过,否则的话最好在这时候把这个问题搞定,免留后患;基本面向对象或者函数式编程的特征,无非是什么继承、多态、Lambda 函数之类的,如果有经验的话很快就明白了;异常、错误处理、断言、日志和调试支持,对单元测试的支持。你不一定要用TDD,但是在这个时候应该掌握在这个语言里做TDD的基本技能;程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制,这是初学时的一个难点,因为大部分书都不太注意介绍这个极为重要的内容;基本输入输出和文件处理,输入输出流类的组织,这通常是比较繁琐的一部分,可以提纲挈领学一下,搞清楚概念,用到的时候查就是了。到这个阶段可以写大部分控制台应用了;该语言如何进行callback方法调用,如何支持事件驱动编程模型。在现代编程环境下,这个问题是涉及开发思想的一个核心问题,几乎每种语言在这里都会用足功夫,.NET的delegate,Java的anonymous inner class,Java 7的closure,C++OX的 tr1::function/bind,五花八门。如果能彻底理解这个问题,不但程序就不至于写得太走样,而且对该语言的设计思路也能有比较好的认识;如果有必要,可在这时研究 regex 和 XML 处理问题,如无必要可跳过;序列化和反序列化,掌握一下缺省的机制就可以了;如果必要,可了解一下线程、并发和异步调用机制,主要是为了读懂别人的代码,如果自己要写这类代码,必须专门花时间严肃认真系统地学习,严禁半桶水上阵;动态编程,反射和元数据编程,数据和程序之间的相互转化机制,运行时编译和执行的机制,有抱负的开发者在这块可以多下些功夫,能够使你对语言的认识高出一个层面;如果有必要,可研究一下该语言对于泛型的支持,不必花太多时间,只要能使用现成的泛型集合和泛型函数就可以了,可在以后闲暇时抽时间系统学习。需要注意的是,泛型技术跟多线程技术一样,用不好就成为万恶之源,必须系统学习,谨慎使用,否则不如不学不用;有必要的话,在工作的闲暇时间,可以着重考察两个问题,第一,这个语言有哪些惯用法和模式,第二,这个语言的编译/解释执行机制。对于想在计算机行业长远的混,像C/C++这样的语言基本是必学的,不管你是做后台、算法、前端,C不是方向,而是基础。我之前写过一篇回答,再这再说下我的观点吧:C 语言应该是绝大部分同学的编程第一课。对于非 CS 专业的同学,学 C 语言主要是掌握一些基本的编程方法,C 语言只是媒介。但是对于 CS 科班的同学,C 语言是后续的计组、体系结构、操作系统、编译原理等课程的基石,对于 C 语言本身甚至程序设计语言基础原理的深入理解都是应该掌握的。如果你是计算机专业的学弟学妹的话,一定要注意学习计算机不要想着速成,要下苦功夫,去啃那些经典书和源码,然后自己动手写,我大学整理了一套计算机必读的经典书籍,对于CS学习的同学帮助非常大,且十分系统,现在免费分享给大家:书籍分享:编程指北:计算机必读的书单(含下载方式)C其实是一门重要的编程语言,一直以来备受关注。C语言的核心是指 针,这门语言的灵活性和超长之处很大一部分都源于指针。指针提供 了动态操控内存的机制,强化了对数据结构的支持,且实现了访问硬 件的功能。不过,指针的这种能力和灵活性是有代价的,它很难掌 握。一个是内存管理,一个是指针!这个世界上90%以上的C/C++出的严重性错误全是和这两个有关。高手往往都是有很强的系统的基础知识的,表面的东西永远是肤浅的。众所周知,C 是一门古老的编程语言,至今已经坚挺了几十年了。根据我之前朋友圈发的调查问卷,几乎 90% 以上的院校都选择了 C 作为大一学生编程入门的语言。当然,国外也有不少名校现在是以 Python、Scheme 这些作为第一门编程语言,所以选择 C 作为入门语言是否合适,这里我们不做讨论。今天只关乎「如何学习 C 语言」。C 语言的学习我个人把它分为两层:第一是基础的语言特性,比如变量、条件判断、循环、算术运算、函数定义、调用等编程语言几乎都具备的特性。第二是指针、内存、进程、线程、编译、链接这些初学者从C语言入门,大学将C语言视为基础课程。不管别人如何抨击,如何唱衰,C语言就是屹立不倒;Java、C#、Python、PHP、Perl 等都有替代方案,它们都可以倒下,唯独 C 语言不行。说白了就是你得了解底层系统的机制,知其然也要知其所以然。而 C 语言和操作系统是学习底层系统机制的最好方式,只此一家。争取做到基础深厚,涉猎广泛,这样才能在技术上融会贯通。那些技术大佬都是有很强的系统知识的,表面的东西永远都是肤浅的。最后也推荐几本 Python学习书籍吧:入门Python编程:从入门到实践
帮助入门python,并达到可开发实际项目的水平。 进阶流畅的Python(高级)深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。挖掘Python及相关程序库的优秀特性,写出简洁、流畅、易读、易维护的代码。加油,祝大家都能在CS这条路上走得容易,把技术学深入,记得帮我点个赞哟~}

我要回帖

更多关于 python和c语言有什么区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信