Python 现在这么火,国外有些大学基础也是 Python,为什么国内大学还在教C 语言呢?
补充:看来python确实是一门很火的语言,大家的关注度如此之高!根据各位知友的回答,python以其简单易学,容易上手的特性,作为入门级语言,给我这样非计算机专业的同学作为兴趣语言或者工具语言,是非常好的。前不久和同学们交流中得知很多人也在用python做计算,虽然我们水力学专业比较偏向于实用fortran进行编程计算,但比起python,繁琐的基础编程还是挺费时费力的。也有同学使用matlab进行编程计算,我想这跟python有同样的原因。
其实我提这个问题的原因,也在于现在的语言工具很多,且都好用,也有很多人用。我大一学习C的时候确实感觉到困难,一来是自己学习的我积极性不高,二来实在提不起兴趣,最开始的几节课没听懂,后面就跟不上,也不爱学了。各位知友的分析也确实点中要害,羞得我掩面。
还有一个问题,就是今年刚学fortran,有人跟我说,因为计算速度快,做科学计算用的多,当然我们水力学也一直用。但是也有同学讨论说其实在计算速度方便,主要是算法优化,比如matlab,只要循环越少,速度就越快。利用它自带的函数,进行矩阵计算,速度也可以很快的。在这里也想向各位万能的知友请教一下,matlab中,能利用自带函数,进行矩阵计算,避免循环,从而提高计算速度的例子。
本人既是知乎新人,也是编程菜鸟,问的问题如显低级,拉低各位答友逼格,还望见谅!
回复内容:
想太多了,什么都是渐进的,Python也不是唯一真理。国内的大学普遍来说教材更新确实是慢,这个没什么好洗地的。不过真的编程入门换成Python并不等于教学水平就一定提升上来了,别的不说,单说拒绝C是因为难学,这个想法就更糟糕的多…… 别的学校我不清楚,但是就我知道的几个美国的学校来说,虽然python是挂在CS下的,但是一般都是给其他系学生选修。这也是为啥python的课号很低,甚至比Java还低,让大家以为这个是CS的入门课,其实不是啊。大家可以看看,很多有python课的学校CS学生的必修课表里面根本就没有python啊,都是从Java开始的。哦,顺便提一句,C确实是必须,但是C++并不是,学C主要是为了上后面的OS,network等课。C++对于教育来说意义并不大,美国的software development的课都是用java的上的。
其实这里就可以看出,美国本科并不会以教编程语言为目的而教某种语言,教编程语言都是为了之后课程的学习而打基础的。仔细想想大家就能明白,Python学完之后对CS之后课程的学习基本没有啥好处。你说是要用python来学data structure,system programming,还是compiler啥的?Python确实很强的,也很好学,但是它太高level了,和底层已经脱节了。真正用Python的人遇到需要,第一反应是去找有没有现成的lib而不是自己写一个,但是这一点对于本科学习是不可取的。 我是个忠实的python粉,忠实到从头到尾看通了cpython解释器的源码,工作中能用python的地方尽可能的用python解决。然而我认为python绝不适用于cs入门教学语言。一个没有C这样靠近硬件层语言知识和C++/Java这种对象化语言知识的人是不可能真正精通Python的。
Python的基础概念是最简的对象化实现,内存管理都采用统一的计数GC,为了提高开发效率而限制了几乎所有的底层操作。这作为一个对对象化概念清晰、对内存管理逻辑清楚、对算法应用恰当的程序员和研究者来说无疑是提高工作效率的神器。
然而入门教育的对象是普通学生,其中大多数不要说原理,连对象化、堆空间与栈空间、数据在内存中的表现形式等等最最基本的概念都没有。让他们学python入门就如同让四则运算都不会的孩子直接上手微积分。
偏偏python还非常暧昧:它是解释语言,却可以加载C编译的模块;它是动态类型,却同时又是强类型;它全对象化,却对若干基础类型通过“不可变”实现了类似变量的操作……这意味着概念不清晰的人就算能写python代码,也没办法理解其执行逻辑,会遇到自己不能理解的不知原因的错误。
用python做入门教学,优势无非在于刚开始的学习梯度小,反馈高,容易提起兴趣,给非计算机专业的学生当当入门教材或许还有些意义。但是cs不学原理不学基础一口气爬到现代语言的高架子上,那只是等学生自己掉下来摔死。 谢邀。
可能题主被某些假象蒙蔽了或者道听途说了… 以我接触到的来说,如果是非CS 专业的学生,对于理工科Python确实是一个比较热门的基础课程。但对于CS 专业,这…我记得语法特性等等都是秒过,做Data Mining 的时候,库的学习是基于数学模型的,重点是数!学!建!模!跟语言没啥关系,所以对于Python也是秒过… 话说如果一开始不以C/C++学起,后面你也是要把坑填掉的。
最后补充:很多新手以!为!编程很简单(不就是那些语法加常用库砌起来的嘛)以!为!写着相似代码出来就能与大师并肩,以!为!看着某些项目的源码其实也不过如此,其实代码背后一层套一层的架构,框架,模块化,业务逻辑的实现与优化等逻辑思维的抽象,才是你要学习的。语言只不过是实现这种逻辑思维的工具,请不要在纠结哪种语言最好的,这样会暴露智商的。请选最合适的。
手机打的字,时间较仓促,有不合适的地方请见谅。
以上 你都是学水力了,还想用Matlab???来来来给你个流体场模拟去吧。
底层用Fortran写的,经过无数优化的ANSYS,动辄都要好几天才能算完一个,你跟我说你用Matlab???
Matlab 是科学计算神器,但不能大规模计算!!!
Matlab 是科学计算神器,但不能大规模计算!!!
Matlab 是科学计算神器,但不能大规模计算!!! C语言作为入门课程最大的问题并不在于难学,而是在于没有乐趣。
大部分同学不是没有这个能力去学好CS课程。而是从一开始就丧失了兴趣。
用Python作为入门课程的好处,第一是减小难度,第二是培养乐趣。
我们很容易的就可以做些好玩的事。
有了乐趣和想做的事情以后,学其他CS课程就会比较有目的性。 哈?Java和c最火吧? 先问是不是
北大的非计算机类专业的编程课已经全部改用Python 大部分学校c入门是为了讲语法的 某种意义上说Python的语法和不少语言都差得挺远。。。比如说缩进代替定界符 而且作为动态类型的语言 用不好会用出问题而且很难debug 所以不适合 不过 现在这种拿TC教c 拿VC++6.0教c++的做法确实是不能提倡
实际上以我们这个专业来看 讲c c++都讲得不深 作为理科的基础课程 专业课入门是Python R bash脚本 数值分析是c和MATLAB c#和http://VB.net选择一个用来讲用户界面和数据库连接 后面的课像生物信息算法 机器学习 计算基因组学基本属于语言无关 想用什么用什么 所以我们交作业从MATLAB Python(2和3都有。。。) Perl Ruby R到c c#都能看到。。。感觉助教好可怜= =而且大家合作完成大作业的时候。。。各种语言的通信也是一个大坑啊。。。最后还是不得不去搞c 不懂c的话Python和其他语言的通信怎么办。。。
当然。。。我真没见过有人写java啊哈哈哈哈 啥,你说c难学?????

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

VS Code可以在Windows 8上运行,但体验可能不佳。首先确保系统已更新到最新补丁,然后下载与系统架构匹配的VS Code安装包,按照提示安装。安装后,注意某些扩展程序可能与Windows 8不兼容,需要寻找替代扩展或在虚拟机中使用更新的Windows系统。安装必要的扩展,检查是否正常工作。尽管VS Code在Windows 8上可行,但建议升级到更新的Windows系统以获得更好的开发体验和安全保障。

VS Code 扩展存在恶意风险,例如隐藏恶意代码、利用漏洞、伪装成合法扩展。识别恶意扩展的方法包括:检查发布者、阅读评论、检查代码、谨慎安装。安全措施还包括:安全意识、良好习惯、定期更新和杀毒软件。

在 VS Code 中,可以通过以下步骤在终端运行程序:准备代码和打开集成终端确保代码目录与终端工作目录一致根据编程语言选择运行命令(如 Python 的 python your_file_name.py)检查是否成功运行并解决错误利用调试器提升调试效率

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

VS Code 可用于编写 Python,并提供许多功能,使其成为开发 Python 应用程序的理想工具。它允许用户:安装 Python 扩展,以获得代码补全、语法高亮和调试等功能。使用调试器逐步跟踪代码,查找和修复错误。集成 Git,进行版本控制。使用代码格式化工具,保持代码一致性。使用 Linting 工具,提前发现潜在问题。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

VS Code 可以在 Mac 上使用。它具有强大的扩展功能、Git 集成、终端和调试器,同时还提供了丰富的设置选项。但是,对于特别大型项目或专业性较强的开发,VS Code 可能会有性能或功能限制。

VS Code 运行 Jupyter Notebook 的关键是要确保 Python 环境正确配置,理解代码执行顺序与单元格顺序一致,并注意可能影响性能的大型文件或外部库。VS Code 提供的代码补全和调试功能可以大大提高编码效率和减少错误。
