Python 在编程语言中是什么地位?为什么很多大学不教 Python?
MIT使用python作为导论课的教学语言。
回复内容:
首先,大学教材更新速度慢是真的,只要在大学图书馆里看看Access和VB书的数量就知道了。当然,有些人说大学学的是基本能力,但我觉得这个解释很勉强,因为学不学基本能力跟学不学新东西根本不是矛盾的,新东西就不能学基本能力了吗?然后,自学Python确实是完全没问题的,但我认为除了正儿八经的CS你好好学学C/C++啥的,别的都可以用Python来入门。现在大学非CS专业的情况是什么样的呢?一门课下来,70%左右的人不知道编程为何物,甚至对此产生了恐惧,还不如学Python快快乐乐地了解基本理论和方法。
最后,对于非码农而言,Python是日常真正能用的工具,用Python代替VBA操作Excel、用Python写个小爬虫从网上采集一些数据、用Python进行小规模定制化的自动测试,都是非常给力的。 我觉得楼上各位说的挺好,但都是“作为资深码农,如果我去教大学生,为什么我会教c”。远远高估了大部分大学教授和教研组的责任心和水平,其实还有别的原因
实际上作为本科生的老师,他们的实践水平是远远不能和一线人员比的,对于大部分c语言老师来说,会python的大概不多,不用说主要精力放在教学评估上的老师,很多老开发者都还在执着于mfc。
更重要的是,更换一个教学语言对于大学来说,太麻烦了,他们现在还在用vc6.0教学。(当然,教那点东西它确实够用了) 英国王尔德说过
真正有价值的东西 学校里没人教你(意译)
- 原文:Education is an admirable thing. But it is well to remember from time to time that nothing that is worth knowing can be taught.
Python应该是定位于快速开发,作为低级语言粘合剂的脚本语言。
如果要看编程语言的地位的话,可以看看编程语言排名
http://sd.csdn.net/a/20110711/301407.html
python还是可以排在前十的。
国内的互联网企业,从最老的金山,网易,到新进的豆瓣,有很多使用Python的公司。应用范围也很广,从服务端后台、工具脚本到游戏客户端开发,非常多。总的来说,依然是应用非常广泛的。
为什么很多大学都不教Python呢?
个人觉得有两个原因:1 Python是可以自学的,比起C/C++来说简单多了;2 大学的教材和课程更新速度远远不及技术发展的速度。 刚毕业,正好我接触过各类背景的同学,从C/C++/Pascal/Java/Python入门的都有,讲讲我的感受,求轻拍
先讲个题外话:不要太低估国内大学计算机系的水平,国内比较好的大学开设的课程,其实都很紧跟国外的教学趋势的,前些年的Perl,最近的Python和ARM、hadoop,几乎都会有对应的课程。所以也可以不用那么愤青啦~
其实交大从去年开始电类专业的程序设计思想与方法就从C++转向了Python,用的教材是Core Python Programming. 基本上现在的格局是:
电类专业:一学期Python + 一学期C++
非电类专业: 一学期C++?
然后后面要用什么语言就自己去学吧,Java也好Verilog也好Haskell也好学校都不教了。
好处呢就是一开始Python的确比C++好上手啊。
坏处是:Python是一门好语言,但它不适合教学,特别是不适合电类的教学。结果是学弟学妹们并不是特别适应:
一方面,国内的硬环境,是除了计算机和生物类,几乎没有人大规模使用Python——对于很多行业内仍然在用VC6/MFC写界面的电气类学生,你教他Python,他还是要再回头学C++。更进一步说,由于C++的教学时间缩短,而人们又离不开C/C++——起码操作系统课要用,写ARM程序要用,所以反而使得新生没有办法专心掌握一种语言。
另一方面,Python并不适合入门:
Python之于C++,并不像是Lisp之于C,是计算模型的不同导致的简化。相反,Python和C++的计算模型都是命令式为主的,而Python的美好,在于自然而隐藏了很多细节,像自省啊词典啊动态化啊。但是Python本身的计算模型是比较杂糅的——有一点过程、有一点对象、有一点函数式。这就要求编程者要选用合适的方式来实现自己的方法——如@莫宇诚 所述,这是很实用主义也很精彩的设计。但是命令式的计算模型和强类型系统决定了,这部分的复杂度并没有消失,只是隐藏了起来。理解这些复杂度,是能够顺畅使用Python的前提:我正在操作的是什么类型?这个for语法隐式的使用了哪个对象的迭代方法?方法有没有默认参数?
而偏偏,新生是很难理解这些的——在C语言里明明白白的写出来,都有很多人头痛,不要说藏起来隐式调用。就好像C++里的流,不深刻理解模板重载和迭代器,根本不会理解这东西“为什么能这么写”。
所以学Python和学C++的时候,都会有很多学弟妹惊讶的问——呀,为什么这个地方能这么写,不能那么写?我真的很难解释——因为这些问题,往往牵扯到类型啊对象啊继承啊——恰恰是语言的简单背后藏着的那些东西。
=========================
所以对于新生来说,我觉得入门的语言要的是简单:这种简单,不是指代码量上的短,而是指思维、语法和计算模型上的简单:让新手可以集中注意力理解少数几个概念,不需要纠结于很多惯用法啊隐藏的细节啊:那是给熟手加快进度用的,不是给新人学习用的。所以我觉得Python/C++/Java这种大型语言,都不适合入门——太复杂,太难掌握,最后只能学个皮毛,还不如教一种学生能吃透的语言,以后触类旁通。C/Scheme,在我看来是很好的语言:它还算好用,而且模型简单,学生容易彻底理解。日后比照着学习其他更加抽象化的语言,也更加容易。
至于C的缺点,是可以通过教学来改正的——教育学生合理的抽象,适度的隐藏,学会使用迭代和递归。而我觉得这,才是程序设计导论课区别于C++语法课的关键所在。但是很遗憾,不管使用什么语言,能讲到这个层次的老师,都太少了。(学生也不爱听,他们只关心怎么能做大作业,实现更多的功能)
=====================
其实MIT自己也认为现在学生用Lisp入门不太好,这里有一篇文章引用Sussman的话解释了原因。
http://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/
总之,语言教学这件事,重点不是要赶时髦,而是要接地气。 想想大家为什么用 Python。从语言上说,Python 并不够 clean。目前还有 2.x vs. 3.x 的分歧。从工程上说,Python 的集成性并不比 C 好,因为业界有很多库还只是 C 接口,用 Python 必须有一些封装。大家用 Python 是因为它的资源能够帮助很多人解决问题。
但是这个「Python 是因为它的资源能够帮助很多人解决问题」的问题不是大学生面临的问题。大学生面临的更多是 big, clean problem。这种问题需要逻辑纯洁的方案,或者完全形成标准的方案。比如学语言用 C,学计算用 Lisp,学 kernel 用 Linux, BSD 都是没问题。但是 Python 属于战场专业工具箱,应该等等。 编程范式,设计模式,MVC,软件开发方法和思想这些才是应该教而没有教的东西,编程语言都是些小角色,完全可以穿插到里面作为一个章节或一两个课时的内容。偏偏国内的很多高校,学了一个学期的java,对接口interface的存在充满疑惑,甚至很多学生还以为面向对象编程中的封装和信息隐藏是为了保密(让源代码不被泄露出去!)。

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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

手机XML转PDF的速度取决于以下因素:XML结构的复杂性手机硬件配置转换方法(库、算法)代码质量优化手段(选择高效库、优化算法、缓存数据、利用多线程)总体而言,没有绝对的答案,需要根据具体情况进行优化。

不可能直接在手机上用单一应用完成 XML 到 PDF 的转换。需要使用云端服务,通过两步走的方式实现:1. 在云端转换 XML 为 PDF,2. 在手机端访问或下载转换后的 PDF 文件。

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

无法找到一款将 XML 直接转换为 PDF 的应用程序,因为它们是两种根本不同的格式。XML 用于存储数据,而 PDF 用于显示文档。要完成转换,可以使用编程语言和库,例如 Python 和 ReportLab,来解析 XML 数据并生成 PDF 文档。

可以将 XML 转换为图像,方法是使用 XSLT 转换器或图像库。XSLT 转换器:使用 XSLT 处理器和样式表,将 XML 转换为图像。图像库:使用 PIL 或 ImageMagick 等库,从 XML 数据创建图像,例如绘制形状和文本。

XML 转换图片需要先确定 XML 数据结构,再选择合适的图形化库(如 Python 的 matplotlib)和方法,根据数据结构选择可视化策略,考虑数据量和图片格式,进行分批处理或使用高效库,最终根据需求保存为 PNG、JPEG 或 SVG 等格式。

XML格式化工具可以将代码按照规则排版,提高可读性和理解性。选择工具时,要注意自定义能力、对特殊情况的处理、性能和易用性。常用的工具类型包括在线工具、IDE插件和命令行工具。

没有APP可以将所有XML文件转成PDF,因为XML结构灵活多样。XML转PDF的核心是将数据结构转换为页面布局,需要解析XML并生成PDF。常用的方法包括使用Python库(如ElementTree)解析XML,并利用ReportLab库生成PDF。对于复杂XML,可能需要使用XSLT转换结构。性能优化时,考虑使用多线程或多进程,并选择合适的库。
