为什么要学习Python?
2016-05-07
如果这么说,我们大学的时候,学习了c,c++,java,C#,算是值得学习么?很多时候是不值得,我觉得我们大学的课程就是用java,c#,c++把"C程序设计"又上了一遍.
这是因为,学校的老师会C和java之类的,所以要跟着规矩开这门课,(这也就是为什么,许多学校还在教vb,),这也就是为什么,你所以为的一样就是大家都有For都有while,都有switch..都有Class...都有int 都有float,所谓的不一样就是用C有指针,java没有,这就是为什么教育是失败的,这也就是为什么,我目前认识的几个编程大牛,都不是计算机专业毕业的...
python的优点:
简单 我所说的简单,是相比于象C和C++这样的语言,你为了编程,要学习许多偏底层的东西.
在比如,你在学习一个新的编程范式,或者想要马上做个例子看看,试验某个API,如果你是写java的,你不得不去写一个main,写一些构造,即使有IDE这样的东西,能够为你带来代码生成器,而我做得就是写一段“脚本”,或者打开python交互式解释器就行了。
这在写算法时就能够表现出来,比如我要写一个快速排序:
如果用C语言写:void q_sort(int numbers[], int left, int right) { int pivot, l_hold, r_hold; l_hold = left; r_hold = right; pivot = numbers[left]; while (left < right) { while ((numbers[right] >= pivot) && (left < right)) right--; if (left != right) { numbers[left] = numbers[right]; left++; } while ((numbers[left] <= pivot) && (left < right)) left++; if (left != right) { numbers[right] = numbers[left]; right--; } } numbers[left] = pivot; pivot = left; left = l_hold; right = r_hold; if (left < pivot) q_sort(numbers, left, pivot-1); if (right > pivot) q_sort(numbers, pivot+1, right); } 为什么这么长?因为除了表达快速排序的思想,你还要写数组分区,swap交换,for i,j的多一少一,都可能出现错误....
def qsort(lis): if len(lis) == 0: return [] else: low = [] hig = [] for x in lis[1:]: if x < lis[0]: low.append(x) else: hig.append(x) low = qsort(low) hig = qsort(hig) return low+lis[:1]+hig 当然高手可以写的更短:
def qsort(L): if not L: return [] return qsort([x for x in L[1:] if x< L[0]]) + L[0:1] + qsort([x for x in L[1:] if x>=L[0]]) 因为动态语言,在使用上,比静态语言要活,你可以自由的表达,但是如果是用java,C++这样的静态语言,想要表达自己的思想, 就没有那么容易.
学习曲线python很值得你去深入研究,因为你玩得越熟,它给你所带来的回报越高,人们常说,java初学者和java大师写出的代码差不多,但是python初学者,python高手写出来的代码,简直就是天壤之别。
就拿简单的阶乘函数吧.
新手可以这么写:
def factorial(x): if x == 0: return 1 else: return x * factorial(x - 1) 高手这么写:
f = lambda x: x and x * f(x - 1) or 1 FP函数式编程 python是面向对象的,也可以面向过程
但下面我们用“函数式编程”来谈谈它的好处
下面是一个计算器的例子,《大话设计模式》的第一章,就是使用这个例子来阐述oop和设计模式的强大,
首先一种被认为糟糕的写法是这样的:
(以下代码来自啄木鸟社区,如果有版权问题,请告诉我,我马上删除)public class Calculator { static public double Foo(char op, double x, double y) { switch(op) case '+': return x+y; break; case '-': return x-y; break; case '*': return x*y; break; case '/': return x/y; break; default: throw new Exception("?") } } 恩,不可重用,不可维护,不可扩展,不够灵活。
那些相信“设计模式”和java的狂热分子,要开始改这个代码了.
先来一个接口:
学习Python有很多理由,下面讨论小编认为对小白重要的两点:1. Python容易学;2. Python功能强大。
Python容易学习
Python容易学习是我们学习它的一项很重要理由。你应该无法忍受每天抽出两小时学习一门语言,连续学习了几个月但是收效甚微。但是如果你每天抽出一两个小时学习Python,会发现能够利用所学的知识实现很多不同的效果。你会发现:开始的几天只是简单在屏幕上打印出"Hello, world!",认识下变量这些基础的内容,下一周可能就在写一些简单的流程控制语句,不到一个月,一本Python基础书籍里的知识可能就基本掌握了。
我们上学时会感觉到学习很枯燥很重要的原因是学习给我们带来的反馈太慢,要很久才能看到效果。想想我们学过的语文、英语,要认真学习好多个白天黑夜才能看到些许效果,这样在一定程度上可能会消耗我们的兴趣,使我们丧失耐心。在Python的学习过程中,Python的交互模式总是可以立马看到“效果”。对比一下Java(另一门著名编程语言)和Python,在打印'Hello, world!'时的表现,首先是Java需要一个编辑器,输入下面代码并保存文件:
然后再编译代码、运行。
Python如何做这件事呢?首先打开终端(Windows, Linux, Mac都有),输入'Python'进入交互模式,像这样(我给我的主机名打了马赛克^_^):
这样就进入了交互模式,可以随意输入代码了(当然是正确的代码):
这就是我上面所说的“立即见效。
Python对新手非常友好。Python之父"Guido"在设计之初就希望Python是一门不用太多计算机基础就能掌握的语言。这意味着如果你是学生,学Python只是为了完成老师留下的作业;或者你是没有计算机知识的普通员工,有一项枯燥的重复劳动如果用计算机做起来会很简单;Python都可以很快帮助你----你不需要知道RAM、寄存器、指令集这些复杂的计算机知识,只需要专注于你要做的事,因为Python生而为此。
Python功能强大
如果仅仅是好学,还不足以成为你学习Python的理由。学习Python的理由还在于学完Python后,可以利用Python实现很多功能。Python是一门通用语言,它不是单单为某一种或者某几种用途设计的。它几乎涉及到了每个领域:
· Web开发
· 网络爬虫
· 计算与数据分析
· 人工智能
· 自动化运维
· 云计算
· 网络编程
· 游戏开发
对于小白的你可能不知道这些领域都是做什么的,没关系,看看哪些公司都在用Python吧!
国外使用Python开发的产品:
· YouTube
· Spotify
· Quora
· 文明6
国内使用Python开发的产品:
· 豆瓣网
· 知乎
· 果壳
· 网易版吃鸡手游
· 今日头条
更多关于Python这门语言的问题可以看下这个网页的视频,Python+人工智能 追赶编程开发新趋势,希望我的回答能帮到你。
2021-10-29 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
在无人驾驶、电商、金融、医疗、教育各大行业领域也得到了很好的应用,所以Python是人工智能市场的未来,大数据+人工智能的方向,也是社会发展的必然趋势,受到国家政策的支持。
对于Python学习的前景,也是很多人都比较关心的,人工智能+大数据起到了相辅相成的作用,推动了发展,目前人工智能工程师的岗位缺口非常大,人工智能的薪资待遇也非常高。
从相关语言排行榜上来看,Python流行程度增长越来越快了,目前已经成为了四大编程语言之一。
同时Python的薪资待遇在其他编程语言里面一直稳居前五名,Python的潜力还没有完全打开,目前学习Python从事工作薪资待遇在20-30k占比很高。