• 为什么要学习python 2016-05-04 18:05:03
    一开始的时候,我觉得有点气愤,因为当我跟同龄人说我会python的时候,他们...重要的是编程思维“,所以过 C,C++,JAVA,C#的人,总认为学习另一门语言比如(python),只不过是在学习另一种写while和for的方式,所以
     一开始的时候,我觉得有点气愤,因为当我跟同龄人说我会python的时候,他们一些人认为 我就是在装X,一直有这种很不好的风气,比如我说我把OS换成了 ubuntu,用vim,或是emacs的也是在装X,他们一直听着大学里老师的信仰”语言都一样,重要的是编程思维“,所以学过 C,C++,JAVA,C#的人,总认为学习另一门语言比如(python),只不过是在学习另一种写while和for的方式,所以我想在这里写一篇文
     章谈谈,为什么python很值得你在大学里,或者在以后的工作里一学。
    

        首先我们来听听图灵奖获奖得主,Allan Perlis,说过的话,“如果一门语言没有改变你的编程思维,那么它不值得你去学习”。

        所以,熟练的使用一门语言才能让你有真正的编程思维,你用什么样的编程语言就将决定你的思维,而不是你写的多了,就有那个所谓的编程思维。

        如果这么说,我们大学的时候,学习了c,c++,java,C#,算是值得学习么?很多时候是不值得,我觉得我们大学的课程就是用java,c#,c++把"C程序设计"又上了一遍.

        这是因为,学校的老师会C和java之类的,所以要跟着规矩开这门课,(这也就是为什么,许多学校还在教vb,),这也就是为什么,你所以为的一样就是大 家都有For都有while,都有switch..都有Class...都有int 都有float,所谓的不一样就是用C有指针,java没有,这就是为什么教育是失败的,这也就是为什么,我目前认识的几个编程大牛,都不是计算机专业毕 业的...

    python的优点:

    简单

        我所说的简单,是相比于象C和C++这样的语言,你为了编程,要学习许多偏底层的东西.

        当然,你可能会问,python能干什么呢?python无所不能(当然,它不能帮你找女朋友),你java能做的,我用python都能做,你java 做不好的,我python也能做,虽然python被成为脚本语言,但它已经不算脚本了,就像火车已经不是"烧"着跑的了...

    动态语言 

         比如,你脑子中突然有个什么想法,想要去实现它,或者你看见网上某个有趣的东西,想要自己动手去写个demo,那么用python可以很快的实现一个原型,之后你可以继续从这个原型出发去进一步探索,但是如果是java的话......

         在比如,你在学习一个新的编程范式,或者想要马上做个例子看看,试验某个API,如果你是写java的,你不得不去写一个main,写一些构造,即使有 IDE这样的东西,能够为你带来代码生成器,而我做得就是写一段“脚本”,或者打开python交互式解释器就行了。 

         而且python的第三方库也很多,你想马上就搭建个什么软件出来"也是比较容易的。

    高级特性 

        内置的数据结构,list,tuple,内置的函数,各种方便的操作,让你“自由的表达”,有时候感觉写程序就是“信手拈来”...

        这在写算法时就能够表现出来,比如我要写一个快速排序:

      快速排序的思想就是将一个序列通过基准分为两个序列,然后对着两个序列分别递归..

    如果用C语言写:

    1. void q_sort(int numbers[], int left, int right)  
    2. {  
    3.   int pivot, l_hold, r_hold;  
    4.   
    5.   l_hold = left;  
    6.   r_hold = right;  
    7.   pivot = numbers[left];  
    8.   while (left < right)  
    9.   {  
    10.     while ((numbers[right] >= pivot) && (left < right))  
    11.       right--;  
    12.     if (left != right)  
    13.     {  
    14.       numbers[left] = numbers[right];  
    15.       left++;  
    16.     }  
    17.     while ((numbers[left] <= pivot) && (left < right))  
    18.       left++;  
    19.     if (left != right)  
    20.     {  
    21.       numbers[right] = numbers[left];  
    22.       right--;  
    23.     }  
    24.   }  
    25.   numbers[left] = pivot;  
    26.   pivot = left;  
    27.   left = l_hold;  
    28.   right = r_hold;  
    29.   if (left < pivot)  
    30.     q_sort(numbers, left, pivot-1);  
    31.   if (right > pivot)  
    32.     q_sort(numbers, pivot+1, right);  
    33. }   


    为什么这么长?因为除了表达快速排序的思想,你还要写数组分区,swap交换,for i,j的多一少一,都可能出现错误....
    如果是python呢?

    1. def qsort(lis):  
    2.     if len(lis) == 0:  
    3.     return []  
    4.     else:  
    5.     low = []  
    6.     hig = []  
    7.     for x in lis[1:]:  
    8.         if x < lis[0]:  
    9.         low.append(x)  
    10.         else:  
    11.         hig.append(x)  
    12.     low = qsort(low)  
    13.     hig = qsort(hig)  
    14.     return low+lis[:1]+hig  

    当然高手可以写的更短:


    1. def qsort(L):  
    2.    if not L: return []  
    3.    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高手写出来的代码,简直就是天壤之别。
        
    就拿简单的阶乘函数吧.
    新手可以这么写:

    1. def factorial(x):  
    2.     if x == 0:  
    3.         return 1  
    4.     else:  
    5.         return x * factorial(x - 1)  

    高手这么写:

    1. f = lambda x: x and x * f(x - 1) or 1  

    FP函数式编程
    python是面向对象的,也可以面向过程
    但下面我们用“函数式编程”来谈谈它的好处
    下面是一个计算器的例子,《大话设计模式》的第一章,就是使用这个例子来阐述oop和设计模式的强大,
    首先一种被认为糟糕的写法是这样的:

    (以下代码来自啄木鸟社区,如果有版权问题,请告诉我,我马上删除)


    1. public class Calculator  
    2. {  
    3.     static public double Foo(char op, double x, double y)  
    4.     {  
    5.     switch(op)  
    6.         case '+'return x+y;  
    7.         break;  
    8.         case '-'return x-y;  
    9.             break;  
    10.         case '*'return x*y;  
    11.         break;  
    12.         case '/'return x/y;  
    13.             break;  
    14.         default:  
    15.         throw new Exception("????")  
    16.     }  
    17. }  

    恩,不可重用,不可维护,不可扩展,不够灵活。
    那些相信“设计模式”和java的狂热分子,要开始改这个代码了.
    先来一个接口:


    1. public interface Ioper  
    2. {  
    3.     double getResult(double x, double y);  
    4. }  

    然后在开始interface这些


    1. public class OperatorAdd interface Ioper  
    2. {  
    3.     public double getResult(double x, double y)  
    4.     {  
    5.     return x+y;   
    6.     }  
    7. }  
    8.   
    9. public class OperatorSub interface Ioper  
    10. {  
    11.     public double getResult(double x, double y)  
    12.     {  
    13.     return x-y;   
    14.     }  
    15. }  
    16.   
    17. public class OperatorMul interface Ioper  
    18. {  
    19.     public double getResult(double x, double y)  
    20.     {  
    21.     return x*y;   
    22.     }  
    23. }  
    24.   
    25. public class OperatorDiv interface Ioper  
    26. {  
    27.     public double getResult(double x, double y)  
    28.     {  
    29.     return x/y;  
    30.     }  
    31. }  

    之后他们获得了所谓的可重用,可扩展.....

    [java]
    1. public class TheMainClass  
    2. {  
    3.     public static void Main()  
    4.     {  
    5.     Ioper cul = new OperatorAdd();//看你如何初始化了,来个工厂?  
    6.     double resu = cul.getResult(3,4);  
    7.     System.out.println(resu);  
    8.     }   
    9. }  

    现在我来告诉你如何用python来实现...

    [python]
    1. def foo(op,x,y):  
    2.     print eval("%d%s%d"%(x,op,y))  
    就这两行...为什么会这样?因为python支持FP(函数式编程),在函数式编程中,函数变成了一等公民。
    当然这里面有一定的开玩笑成分,不过,FP编程就是那么神奇,当你在学oop遇到瓶颈,或者oop已经用的很熟练的时候,不妨去学学FP(函数式编程),python就支持函数式编程,当然你也可以尝试下lisp的方言比如(Haskell).

     所以,如果你学习python,你会越来越迷恋python,无法自拔.
    展开全文
  • 为什么学python 2018-07-24 22:52:32
    1.python的特点: (1)软件质量:python相比于其他语言更注重可读性、一致性和软件质量。 (2)提高开发者的效率:可以录入更少的代码、调试更少的代码并且开发完成后维护更少的代码。并且python程序可以立即运行...
  • 1.2018年编程语言火热度排行  时代变迁如此之快,谁又能想到当我们还在羡慕大雄的机器猫时现在人工智能已经开始步入我们的生活点滴呢?我先给大家小小的科普一下:二十世纪四十年代当计算机刚刚问世的时候,程序员...
  • 为什么学python 2016-12-29 16:13:23
    为什么学python这个问题其实可以分为两个部分: 我为什么要学习编程 在编程中我为什么选择python语言 我为什么要学习编程 编程终将和开车一样,成为现代人的基本技能。 —— [ Roland ] 首先说明,我不是计算机...
  • 如果你定期关注现今的科技发展,那么你可能想知道我为什么要写这篇文章告诉人们学习Python?因为几年前我提倡Java而不是Python。 在2016年,Python取代Java成为高校中最受欢迎的语言,从那时起它受欢迎的程度就没有...
  • 学习编程要比学习英语更重要,因为编程语言可以影响全球70亿人。 ——苹果CEO库克   编程是互联网、人工智能等高新技术的基础和核心,而当下,正是计算机编程普及的风口浪尖,谁能抢先一步抓住这个风口,就会在...
  • 为什么一定要学Python? 2016-12-25 16:39:52
    阅读本文大概需要6分钟:很多初学者都听说python很火,可是啥要学Python,下面谈谈我的感悟。 python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的...
  • Python的火热度持续不断。...但是作为一个负责任的假程序猿,要跟你说的是:就算再简单的语言,也得才会会,不要在好不好,真的好不好这些事情上下功夫,要在怎么如何上下功夫。第一部分:各个领域应用的...
  • 为什么学习python及爬虫 2018-07-30 11:26:42
    但是安装庞大的matlab往往在第一步就将很多入门学习者拒之门外,但是python,简单的安装和类似于matlab的神语言,可以很大程度上让matlab没学好的人在python上弥补不足或者相互促进。 如果你仔细观察,就不难发现...
  • 普通人为什么要学习Python 2018-01-27 09:38:55
    从 2018 年起浙江省信息技术教材编程语言将会更换 Python。2、Python纳入山东省的小学教材课程,小学生都开始接触 Python 语言了。3、Python 将加入全国计算机等级考试!教育部考试中心决定自2018年起,在计算机二...
  • 很多初学者都听说python很火,可是啥要学Python呢?python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的背后都是有一定的时代背景。在PC时代大量的...
  • 为什么学Python】 Python 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常...
  • 不少Python新手经常问到学Python到底需不需要学习Linux? Python不是支持Windows和Linux操作系统吗?能在Windows下开发为什么还要学习Linux? 问这样的问题的朋友,可能还没有真正入行Python开发或者没有真正参与...
  • 1.为什么要学习python 2018-01-24 11:31:30
    跟C/C /Java相比 Python能让你用更少的代码写出相同的程序。 有人计算过,Python写出的程序的代码行数只相当于相对应的Java代码的行数...所以,如果你用Python写,你一个人干的,不管是干什么,如果换用Java/C/C ,那
  • 关注「实验楼」,每天分享一个项目教程 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言, 你学会了吗?正文共:4090 字 预计阅读时间:11 分钟根据维基百科的解释,"Python是...
  • Python入门经典,业内知名的Python教育机构-联科教育出品,本课程主要是Python基础部分,主讲王进老师,主要讲解了为什么要学习Python; 如何部署python开发环境;什么是变量;运算符的作用;讲解了条件选择及循环等...
  • 由于本人笔记本电脑APPLE,决定了不能去M$了,而我又比较喜欢系统编程,跨平台。C 倒是可以跨平台,而且生命力顽强,不过我觉得C是个基本功,是必须的,没有必要专门来学习,但是要深入练习,又鉴于众多大侠对...
  • 为什么黑客都用Python 2018-10-09 17:47:15
    文章开始前首先让我们来了解一下什么PythonPython 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 重点是,Python 是一种对初学者非常友好的语言,从应用程序开发到文字处理、web甚至是...
  • Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手...随着Python的大火和Python自身优势,如今是很多人蜂拥学Python,那么作为新手这样才能快速入门Python呢? 为什么Python总被提起...
  • 这个问题是美国知名的网站提出来,原文如下:I have a toddler. How should she prepare herself for the job market 15 ... Should I teach her Python as soon as she is willing to learn?神奇的地方,居然是AI牛
1 2 3 4 5 ... 20
收藏数 668,723
精华内容 267,489