Python 在编程语言中是啥地位?为啥很多大学不教 Python?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 在编程语言中是啥地位?为啥很多大学不教 Python?相关的知识,希望对你有一定的参考价值。

python的地位很高,目前是世界第5大编程语言。。但我觉得大学不教python,其实是正确的。
Python在诞生之初,只是用来在Linux上给Perl和shell做衔接用的“胶水”,而今天已经成为了主流的编程语言,能获得今天的地位,当然具备诸多优势。。。比如数学运算相关的各种库,爬虫,等等。。。但这都不是导致Python流行的最根本原因。
有没有比Python运算更强的语言?多得是
有没有比Python爬虫效率更高的语言?也不少
所以其实平日里随口道来的种种优势,并不是不可替代的。。这些优势,很多语言都具备。就比如perl,erlang,Julia等语言,其实用来做运算或爬虫比Python更强,但为什么这些语言却流行不起来?
说到底,Python成功的秘诀只有一条,其实就是在功能基本够用的前提下,比其他语言简单。而比Python简单的语言,功能又不够全面,比如Lua,javascript,Ruby这些语言比Python更简单,但往往只适合一两个领域的工作,而无法面面俱到。
Python可以提供的这些功能,对于非专业程序员来讲,已经显得非常强大了。。但对于专业程序员来说,Python最大的作用,其实也只是用来“偷懒”而已。因为相比JAVA或C#这种工业级的编程语言来讲,Python除了入门简单之外,并无任何优势可言。而Python的动态语言特性、不利于维护等缺点,成为了限制它迈向深层开发的重大缺陷。
而如果熟练掌握JAVA或C#中的任何一门,想利用闲暇之余学习一下Python,看几个案例便可以入门,几乎不需要专门学习。
如果你并不以成为专业程序员做为目标,那么以Python为主,是可以的。但若想靠编程养家糊口,静态语言才是重中之重。
但如果是计算机专业的话,仅仅学Python,似乎就有点对不起“科班出身”的称号了。。。。学生们花着昂贵的学费,消耗四年光阴,却只学个Python,岂不是误人子弟?
就像你若报考摄影专业,老师应该教你使用单反,而不是教你使用手机摄像头。
参考技术A 第一眼看到这个问题的时候,潜意识地看了一下问题日志,果不其然,问题发表于2011年,据今已有7年时间,随着这两年人工智能大热,作为AI届的“网红”,Python的地位也有一定变化,所以今天再把这个问题扒出来研究一下。

Python是当下非常热门的一种编程语言。热门到什么程度?我们首先看看最近流行的编程语言排行榜:

这是 TIOBE编程语言社区发布的2018年1月排行榜,Python已经超过C#跃居热门编程语言的第四位。

那么,Python为什么会成长为如此热门的语言呢?

首先,跟最近大热的AI人工智能和深度学习技术是分不开的。现在流行的AI人工智能技术大部分都是用Python语言编写的,这大大促进了的Python语言的发展。AI深度学习技术本身的特点决定了其不适合静态编译型语言,而Python语言被选作AI技术框架的基础语言,更多的是源于Python的动态特性及其开发效率高等性能优势。

说起来Ruby、Perl等与Python同属动态语言,三者的运行效率相差并不大,而Python既可以写网络又可以处理数据,所以Python当仁不让的成为了AI技术的首选。

豆瓣的崛起是对Python语言性能的实例鉴证。豆瓣是最早使用Python作为语言的网站,其创始人用3个月时间使用基于Python的Quixote框架开发搭建了最初的豆瓣社区的框架。当时,php和JAVA是绝对的主流技术,但是想要用PHP或JAVA开发网站,需要自己动手处理大量的工作,单靠一个人在短时间内完成开发一个功能齐全的大型网站几乎是不可能的,所以Python的敏捷性与高效性使其当选为豆瓣的网站语言。

其次,Python涉及多领域的应用范围,促进了其成为热门语言。除了web开发,Python也应用于学术研究及科学领域。对于科研人员来说,Python简单易学,容易上手,即使非计算机专业的科研学者利用Python庞大的库和简单的语法,也可以编写工具帮助进行科学学术研究。

Python拥有Matplotlib(matplotlib.org/)及numPy(www.numpy.org/)这样强大的绘图库和数值扩展,能帮助科研学术人员进行绘图和数值分析。这使得Python在该领域成为难以替代的选择。基于同样的原因,Python在国外政府部门也被大量运用。

Python还广泛应用于电子制造行业,比如布线仿真等CAD领域,比起传统的TCL编程,Python语言要友好的多。很多使用C/C++/JAVA编写的测试工具,由于静态编译语言维护成本相对较高,现在已经开始转为用Python编写了。在金融领域,比如量化交易,Python同样有许多强大的扩展库。

随着Python扩展库不断发展壮大,Python在科研、电子、政府、数据分析、web、金融、图像处理、AI技术各方面都有强大的类库、框架和解决方案,以致有了“已经没有任何语言能够动摇Python在今后生产生活的核心语言地位”的说法。因此也出现了在义务教育阶段就开始教授Python语言的情况出现。据说在美国,连婴幼儿都有 Python 编程书,Python 要从娃娃抓起。

第三,国家对于人工智能的重视,助推了Python的热门。2018年1月16日上午,教育部召开新闻发布会,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况,并重新修订了语文等14门学科的课程标准。在此次“新课标”改革中,正式将人工智能、物联网、大数据处理划入新课标,这也就意味着今年秋季入学的高中生,将要开始学习Python了。

在此之前,教育部考试中心于 2017 年 10 月 11 日发布了“关于全国计算机等级(NCRE)体系调整”的通知,决定自 2018 年 3 月起,在计算机二级考试加入了“Python 语言程序设计”科目。

相信,随着国家对AI的高度重视以及AI技术的进一步发展,Python作为AI首选语言的地位必将会进一步走向更热门的高度。

接下来,再说为何很多大学不教Python?这个问题我们可以分为几个角度来看:

首先,已经有大学在教Python。无论是国内还是国外都已经有大学开设Python课程,教授Python语言了。对于非计算机专业的学生来说,用Python启蒙是非常好的选择,Python语言的优势在于比C++/java等传统静态语言更具有实用性,不局限在C的繁杂的语法里,可以专注于程序设计思想及计算思维的训练。

其次,对于有编程语言基础的人来说,Python学习起来很容易。就像其中一位答主所说的那样,大学毕竟是一个学术机构,其注重的是原理的讲解与把握,对于计算机专业来说,更多时间是在教授数学、算法、计算机原理等基础课程,语言方面学会了C++、java,也就基本理解了编程语言,很容易举一反三的学习其他语言,比如Python、Ruby等,对于有编程基础的专业人员来说,掌握一门新的语言并没有太大的难度,毕竟编程语言都大同小异,语法虽存在差异,但是背后的编程思想、算法都是相通的。

————————————————
版权声明:本文为CSDN博主「程序员爽爽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45084321/article/details/90604474
参考技术B (Look out for yourself),(你得有戒备之心),I wake up to the sounds,突如其来的寂静,Of the silence that allows,将我唤醒,For my mind to run around,我脑海不禁回荡,With my ear up to the ground,密切关注现况,I'm searching to behold,我苦寻觅 为看再现,The stories that are told,那曾被讲述的故事,When my back is to the world,当我背靠着世界,That was smiling when I turned,转身时便是笑颜,Tell you you're the greatest,他们表面赞不绝口,But once you turn they hate us,而在你转身后 又含沙射影,Oh the misery,这难言的苦涩,Everybody wants to be my enemy,我就犹如全民公敌,Spare the sympathy,省去你所谓的怜悯吧,Everybody wants to be,我就犹如,My enemy-y-y-y-y,全民公敌,(Look out for yourself),(你得有戒备之心),My enemy (Look)-y(Look)-y(Look)-y(Look)-y,我的宿敌,(Look out for yourself),(你得有戒备之心),But I’m ready,但我已准备反击,Your words up on the wall,你面朝墙诅咒我,As you're praying for my fall,坐观我的落败,And the laughter in the halls,穿堂而来的嘲讽讥笑,And the names that I've been called,夹杂着贬低我 落井下石的恶名,I stack it in my mind,我聚精凝神,And I'm waiting for the time,静候时机到来,When I show you what it's like,到时候我将让你见证,To be words spit in a mic,麦克风怒吼出的最强音,Tell you you're the great刚刚合适的话就惦记惦记惦记的那等你男的女的记得记得拿你的呢 参考技术C 为什么很多大学不教 Python? 随着这两年人工智能大热,作为AI届的“网红”,Python的地位也有一定变化,所以今天再把这个问题扒出来研究一下。 Python是当下非常热门的一种编程语言。热... 参考技术D 作者看着网上各种数据分析的知识泛滥, 但是没有什么体系,初学者不知道学哪些, 不知道学多少, 不知道学多深, 单纯一个python语言, 数据分析会用到那种程度, 不可能说像开发那样去学, numpy如果不是做算法工程师用到的知识并不多, pandas知识杂乱无章, 哪些才是最常用的功能等等, 作者不忍众生皆苦, 决定写一套python数据分析的全套教程, 目前已完成一部分课件的制作。需要说明的是, 作为一名数据分析师, 你应该先会一点Excel和SQL知识,相关的内容, 网上很多。但是, 即便你一点Excel和SQL都不会也不会影响这部分的学习 !目前作者整理的大纲如下:
第一章 python编程基础
1.1 python语言概述 1.2 数据科学神器--Anaconda介绍与安装 1.3 标准输入输出 1.4 变量定义与赋值 1.5 数据类型 1.6 流程控制语句 1.7 函数
1.8 面向对象编程 第二章 python数据清洗之numpy 2.1 核心ndarray对象的创建 2.2 ndarray对象常用的属性和方法 2.3 ndarray对象的索引和切片 2.4 ndarray对象的分割与合并 2.5 ndarray对象的广播(Broadcast) 2.6 numpy中的算术运算函数 2.7 numpy中的统计函数 2.8 numpy中的排序 搜索 计数 去重函数 2.9 numpy中的字符串函数 2.10 numpy中可能会用到的线性代数模块(后期机器学习会用到一点)
第三章 数据清洗神器pandas
3.1 pandas核心对象之Series对象的创建 常用属性和方法 3.2 pandas核心对象之DataFrame对象的创建 常用属性和方法 3.3 DataFrame对象的列操作和行操作 3.4 DataFrame对象的索引和切片 3.5 DataFrame对象的布尔索引 3.6 数据的读入与导出 3.7 groupby分组运算 3.8 数据合并与数据透视
第四章 数据可视化matplotlib seaborn pyecharts
4.1 包括常用图形的绘制,略
第五章 实战案列
5.1 拉勾网数据分析相关职位分析 5.2 boss直聘数据分析相关职位分析 5.3 珍爱网女性用户数据分析
第六章 机器学习
机器学习部分, 简单的算法会讲手写, 难的就用scikit-learn实现, 可能有小伙伴说, 这是调包侠干的, 小哥哥!小姐姐!哪有那么多公司, 那么多人自己干写算法的, 有几个人敢说他写的算法比scikit-learn写得好? 再说了, 你是数据分析师, 这些是你的工具, 解决问题的!不是一天到晚拉格朗日对偶性!先来个机器学习介绍, 然后如下:
6.1 K近邻算法 6.2 Kmeans算法 6.3 决策树 阶段案列:决策树案列(保险行业) 6.4 线性回归 岭回归 Lasso回归 6.5 逻辑回归 6.6 朴素贝叶斯 阶段案列:推荐系统(电商玩具) 6.7 随机森林 6.8 Adaboost 6.9 梯度提升树GBDT 6.10 极端梯度提升树Xgboost 6.11 支持向量机SVM 6.12 神经网络 阶段案例:Xgboost案例
------------------------------本节内容-----------------------------------------
python语言概述
在说python之前, 我们还是先来看看计算机软硬件的发展历史。
1 计算机硬件的发展历史
第一代计算机-电子管计算机(1946-1957)
无论如何,一项技术的突破必然伴随着其他行业的突破,简而言之,电子计算机的出现,前提必须有电子技术的进步,否则一切都是空谈!下面是我列举出计算机硬件的发展过程中, 一些比较重要的事件。
1906年, 美国的Lee De Forest 发明了电子管。在这之前造出数字电子计算机是不可能的。这为电子计算机的发 展奠定了基础。
1924年2月, 一个具有划时代意义的公司成立,IBM。
1935年, IBM推出IBM 601机。 这是一台能在一秒钟算出乘法的穿孔卡片计算机。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。
1937年, 英国剑桥大学的Alan M. Turing (1912-1954)出版了他的论文 ,并提出了被后人称之为"图灵机"的数学模型。
1937年, 美国贝尔试验室的George Stibitz展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是世界上第一台二进制电子计算机。
1941年, Atanasoff和学生Berry完成了能解线性代数方程的计算机,取名叫"ABC"(Atanasoff-Berry Computer),用电容作存储器,用穿孔卡片作辅助存储器,那些孔实际上是"烧"上的。 时钟频率是60HZ,完成一次加法运算用时一秒。这就是ABC计算机。
1946年, 美国宾夕法尼亚大学,第一台通用电子计算机ENIAC (Electronic Numerical Integrator 和 Computer)诞生, 总工程师埃克特在当时年仅25岁。
这时的计算机的基本线路是采用电子管结构,程序从人工手编的 机器指令程序(0 1),过渡到符号语言(汇编),电子管计算机是计算工具革命性发展的开始,它所采用的进位制与程序存贮等基本技术思想,奠定了现代电子计算机技术基础。以冯·诺依曼为代表。
第二代计算机——晶体管计算机(时间1957~1964)
电子管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点,一发而不可收……
20世纪50年代中期,晶体管的出现使计算机生产技术得到了根本性的发展,由晶体管代替电子管作为计算机的基础器件,用 磁芯或磁鼓作存储器,在整体性能上,比第一代计算机有了很大的提高。
第三代计算机——中小规模集成电路计算机(时间1964~1971)
20世纪60年代中期, 计算机发展历程随着半导体工艺的发展,成功制造了集成电路。中小规模集成电路成为计算机的主要部件,主存储器也渐渐过渡到 半导体存储器,使计算机的体积更小,大大降低了计算机计算时的功耗,由于减少了 焊点和 接插件,进一步提高了计算机的可靠性。
第四代计算机——大规模和超大规模集成电路计算机(时间1971~至今)
随着大规模集成电路的成功制作并用于计算机硬件生产过程,计算机的体积进一步缩小,性能进一步提高。集成更高的大容量半导体存储器作为内存储器,发展了并行技术和多机系统,出现了 精简指令集计算机(RISC),软件系统工程化、理论化,程序设计自动化。微型计算机在社会上的应用范围进一步扩大,几乎所有领域都能看到计算机的“身影”。
第五代计算机——泛指具有人工智能的计算机(至今~未来)
目前还没有明确地定义
2 简述计算机软件的发展历史
编程语言的发展
计算机软件系统的发展,也伴随着编程语言的发展。计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
机器语言:简单点说,机器本身也只认识0和1,电路无非就只有通和断两种状态,对应的二进制就是二进制的1和1。
汇编语言:汇编语言只是把一些特殊的二进制用特殊的符号表示,例如,机器要传送一个数据,假设“传送”这个指令对应的机器码是000101,则人们把000101用一个特殊符号,比如mov来表示,当人们要用这个指令时用mov就行,但是mov的本质还是000101,没有脱离硬件的范围,有可能这个指令不能在其他机器上用。
高级语言:高级语言完全脱离了硬件范畴,所有的语法更贴近人类的自然语言,人们只需要清楚高级语言的语法,写出程序就行了,剩下的交给编译器或者解释器去编译或者解释成机器语言就行了,看,这样就完全脱离了硬件的范畴,大大提高了程序的开发效率。接下来我们就来看看高级语言的发展,高级语言非常多,我们主要看看比较经典的几个。
高级语言的发展
B语言与Unix
20世纪60年代,贝尔实验室的研究员Ken Thompson(肯·汤普森)发明了B语言,并使用B编了个游戏 - Space Travel,他想玩自己这个游戏,所以他背着老板找到了台空闲的机器 - PDP-7,但是这台机器没有操作系统,于是Thompson着手为PDP-7开发操作系统,后来这个OS被命名为 - UNIX。
C语言
1971年,Ken Thompson(肯·汤普森)的同事D.M.Ritchie(DM里奇),也很想玩Space Travel,所以加入了Ken Thompson,合作开发UNIX,他的主要工作是改进Thompson的B语言。最终,在1972年这个新语言被称为C,取BCPL的第二个字母,也是B的下一个字母。
C语言和Unix
1973年,C主体完成。Ken Thompson和D.M.Ritchie迫不及待的开始用C语言完全重写了UNIX。此时编程的乐趣已经使他们完全忘记了那个“Space Travel”,一门心思的投入到了UNIX和C语言的开发中。自此,C语言和UNIX相辅相成的发展至今。
类C语言起源、历史
C++(C plus plus Programming Language) - 1983
还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,它扩充和完善了C语言,特别是在面向对象编程方面。一定程度上克服了C语言编写大型程序时的不足。
Python (Python Programming Language)--1991
1989年圣诞节期间,Guido van Rossum 在阿姆斯特丹,Guido van Rossum为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。第一个Python的版本发布于1991年。
Java(Java Programming Language) - 1995
Sun公司的Patrick Naughton的工作小组研发了Java语言,主要成员是James Gosling(詹姆斯·高斯林)
C(C Sharp Programming Language) - 2000
Microsoft公司的Anders Hejlsberg(安德斯·海尔斯伯格)发明了C,他也是Delphi语言之父。
当然现在还有一些新语言,比如2009年Google的go语言,以及麻省理工的julia等。
3 为什么是Python
Python有哪些优点
1 语法简单 漂亮:我们可以说Python是简约的语言,非常易于读写。在遇到问题时,我们可以把更多的注意力放在问题本身上,而不用花费太多精力在程序语言、语法上。
2 丰富而免费的库:Python社区创造了各种各样的Python库。在他们的帮助下,你可以管理文档,执行单元测试、数据库、web浏览器、电子邮件、密码学、图形用户界面和更多的东西。所有东西包括在标准库,然而,除了它,还有很多其他的库。
3 开源:Python是免费开源的。这意味着我们不用花钱,就可以共享、复制和交换它,这也帮助Python形成了丰富的社区资源,使其更加完善,技术发展更快。
4 Python既支持面向过程,也支持面向对象编程。在面向过程编程中,程序员复用代码,在面向对象编程中,使用基于数据和函数的对象。尽管面向对象的程序语言通常十分复杂,Python却设法保持简洁。
5 Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。
Python有哪些作用
Python是什么都能做,但是我们学的是数据分析,我们看看在数据分析领域Python能做什么。
数据采集:以Scrapy 为代表的各类方式的爬虫
数据链接:Python有大量各类数据库的第三方包,方便快速的实现增删改查
数据清洗:Numpy、Pandas,结构化和非结构化的数据清洗及数据规整化的利器
数据分析:Scikit-Learn、Scipy,统计分析,科学计算、建模等
数据可视化:Matplotlib、Seaborn等等大量各类可视化的库
所以说总结, 为什么数据科学选的是python, 最重要就是两个原因:
1 语法简单漂亮
2 大量丰富免费的第三方库

'except Exception as e'在python中是啥意思? [关闭]

【中文标题】''except Exception as e''在python中是啥意思? [关闭]【英文标题】:What does ''except Exception as e'' mean in python? [closed]''except Exception as e''在python中是什么意思? [关闭] 【发布时间】:2015-02-15 12:35:55 【问题描述】:

异常处理的典型结构如下:

try:
    pass
except Exception, e:
    raise
else:
    pass
finally:
    pass

请问except Exception, e:orexcept Exception as e: 是什么意思? 通常我会使用print (e) 来打印错误消息,但我想知道程序做了什么来生成 e。

如果我用另一种方式构建它(下),它会是什么样子?

except Exception:
    e = Exception.something

替换something的方法应该是什么?

try下的代码体没有出现异常时,程序会执行else下的代码。但是,finally 在这里做什么?

【问题讨论】:

问题里肯定有很多问题。我建议您阅读try 的文档:docs.python.org/3/reference/… 这将回答大多数问题。 Difference between except: and except Exception as e: in Python的可能重复 除非您特别询问如何解决跨版本兼容性问题(在这种情况下,您的问题显然应该描述该问题),否则您不应混用 python-2.7和python-3.x 标签。 【参考方案1】:

except Exception as eexcept Exception, e(仅限 Python 2.x)意味着它捕获 Exception 类型的异常,并且在 except: 块中,引发的异常(实际对象,而不是异常class) 绑定到变量e

至于finally,它是一个总是 被执行的块,无论发生什么,在except 块之后(如果引发异常),但总是在任何其他会跳转的东西之前超出范围被触发(例如returncontinueraise)。

【讨论】:

“except Exception, e:”和“except Exception as e:”一样吗?第一个示例是否捕获基本异常? 两种形式的作用完全相同。两者都没有捕获基本异常(例如,SystemExitKeyboardInterrupt,它们继承自 BaseException,但不继承自 Exception)。如果你提出了继承自BaseException 的东西(在Python 2 中你可以提出任意对象,例如字符串,但你不应该),它们也不会被捕获。

以上是关于Python 在编程语言中是啥地位?为啥很多大学不教 Python?的主要内容,如果未能解决你的问题,请参考以下文章

Python 在编程语言中是啥地位?为啥很多大学不教 Python?

Python 在编程语言中是啥地位?为啥很多大学不教 Python

r语言combn函数在python中是啥

相对角度在python中是啥意思

void是啥意思,oop又是啥意思?

boot是啥的缩写吗,为啥计算机中是启动的意思