您的位置:网站首页 > Java教程 > 正文

适合Java开发者学习的Python入门教程

类别:Java教程 日期:2017-10-11 18:11:46 人气: 来源:

  在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了。这让我们有常规和专业的知识,但是也同时也让我们一些井蛙之见。 在Outside-In Java系列文章中,一些非Java开发人员会给我们讲讲他们对于我们这个生态圈的看法。

  从哲学的角度来讲,Python几乎是与Java截然相反。它抛弃了静态类型和刚性结构,而是使用了一个松散的沙盒,在这里面你可以的做任何你想做的事情。也许Python是关于你能够做什么,而Java则是关于你可以做什么。

  然而,两种语言都从C语言里汲取了大量的灵感。他们都是命令式语言,拥有块、循环、方法、赋值以及中缀算术(infix math)。两者都大量使用了类、对象、继承以及多态性。两者对异常的处理都相当优秀。 两者都能自动管理内存。它们都是编译成可以运行在某种虚拟机上的字节码,尽管Python是透明的进行编译。 Python甚至从Java汲取了一些营养:比如基本库的 logging 和 unittest 模块分别是受到了log4j 和JUnit的。

  鉴于以上的技术重叠,我认为Java开发人员在使用Python时理应感到宾至如归。 所以我来给你一些简单的Python介绍。 我会可以告诉你什么使得Python与Java不同,以及为什么我觉得这些差异有吸引力。 至少,您可能会发现一些有趣的想法使您回到Java生态系统。

  (如果你想要一个Python教程,Python文档是一个很好的选择,而且这是从Python 3的角度编写的,Python 2的使用还是很常见的,它与Python 3有一些语法上的差异。

  嗯, 并不是很有性。 好吧,再来看一个函数,看看如何在一个文件中找到最常见的10个单词。在这里我取巧使用了标准库的 Counter 类型,但是它就是这么的好用。

  Python由空格分隔。人们经常对此有强烈的意见。当我第一次看到它的时候,我 甚至认为这是。现在,十多年过去了,这种写法似乎自然到我很难再回到大括号式的写法。如果你因此逃避,我甚至怀疑我可以你,不过我劝你至少暂时忽略一下它;实际上它并没有造成任何严重的问题,反而消除了一大堆的干扰。此外,Python开发人员从来不必争论{应该放在哪里。

  除了审美上的差异之外,其他方面应该看起来很熟悉。我们有一些数字,一些赋值和一些方法调用。import 语句的工作方式有些不同,但它具有相同的“使这些内容可用”的一般含义。 Python的for循环与Java的for-each循环非常相似,只是少了点标点符号。函数本身使用def而不是类型进行分隔,但它正是按照你期望的方式工作:您可以使用参数调用它,然后返回一个值(尽管某些函数不返回值)。

  只有两件事情是很不寻常的。 一个是 with 块,非常类似于Java 7的“try-with-resources” - 它文件在块的结尾处关闭,即使会抛出一个异常。 另一个是f“...”语法,这是一个相当新的功能,允许将表达式直接插入到字符串中。

  看这个例子可能很明显,但是Python代码里没有太多的类型声明。 变量声明上没有,参数或返回类型上没有,对象上也没有。 任何值在任何时候都可以是任何类型的。 我还没有显示一个类定义,所以这里只是一个简单的定义。

  尽管x和y有并没有定义为属性,它们的存在是因为构造器中创建了它们。没有谁强制我必须传个整型参数,我也可以传小数和分数。

  如果你以前只用过静态语言,这可能看起来一片混乱。类型是温暖的懒惰的以及令人满意的。他们···(好吧,或许不会)代码实际能工作(虽然有人不同意)。但是当你都不知道什么是正确类型的时候,你又怎么能依靠代码呢?

  但是等等 - Java也没有这样的! 毕竟任何对象可能都是null,对吧? 实际上几乎从来没有一个正确类型的对象。

  经过4次跳票,历经曲折的 Java 9 正式版终于发布了! 你可以通过这里下载 Java 9 正式版。JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、...

  数字化正在进军隧道钻探和采矿行业。此类的恶劣性令使用要求异常严苛刻。长距离和高带宽要求光缆(FOC)成...

  恩智浦半导体今日推出一套最新的Java卡操作系统(JCOP3),主要面向安全识别应用。这套多方案平台可为客户带来更...

  电子产品与人工智能技术结合后变得更加智慧已经是其未来发展必然趋势,而人工智能需要端、云大数据的喂养尤其是利用云端的计算力完成大量数据的处理,年初,目睹本土公司在智能产品...

  浩亭推出适用于户外使用的高性能连接器-Han-Eco A Outdoor,该系列现在还可为苛刻条件下可靠灵活的接口配置提供...

  JavaScript和NodeJS为何如此风靡?我们列举五个IT巨头在高流量、大规模生产中采用服务器端JavaScript引擎的案例。...

  TDK集团新近推出新型的爱普科斯 (EPCOS) MKP(金属化聚丙烯)薄膜电容器系列产品(B3275*),该系列电容器非常适合于高纹...

  2017 赛灵思开发者大会 (Xilinx Developer Forum) 正在向用户征集稿,推户互相分享实际用例,以帮助其他参会者学习最佳实践和方法,并激发应用 Xilinx 技术的各种创意。 以下主题列表供...

  除了硬件之外,IoT 设备及其相关数据也应当纳为物联网服务的一部分。有了这样的概念,再来做项目测试时将和以往有所不一样。 我们需要将更多的关注点集中在 IoT 提供的服务上。虽然“...

  Microchip PIC32MX25 32位微控制器是适用于需要复杂代码和高功能集成的各种嵌入式设计的低成本解决方案。 PIC32MX25具有高达50M...

  Intel Movidius神经计算棒 (NCS) 是一款微型无风扇深度学习USB驱动器,设计用于学习AI编程。 NCS由低功耗高性能Movidius视觉处理单...

  推荐:

  

关键词:java学习教程
0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved