`
kakashi
  • 浏览: 23938 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java 与 python (1)

阅读更多

 

一直想对前段时间学习python 做个总结,以免自己太快忘记.我这个人忘性很大,所以只有不停的总结与回顾来尽量减缓大脑的遗忘程度.

首先贴上dive to python 的一段话:

 

静态类型语言
一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的。JavaC是静态类型语言。
动态类型语言
一种在运行期间才去确定数据类型的语言,与静态类型相反。VBScriptPython是动态类型的,因为它们确定一个变量的类型是在您第一次给它赋值的时候。
强类型语言
一种总是强制类型定义的语言。JavaPython是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。
弱类型语言
一种类型可以被忽略的语言,与强类型相反。VBScript是弱类型的。在VBScript中,您可以将字符串'12'和整数3进行连接得到字符串'123',然后可以把它看成整数123,所有这些都不需要任何的显示转换。

所以说Python既是动态类型语言(因为它不使用显示数据类型声明),又是强类型语言(因为只要一个变量获得了一个数据类型,它实际上就一直是这个类型了)。

现在总的趋势语言都在向动态语言类型靠近,这的确大大方便了程序员,使得编写程序更方便,效率更高,动态语言你不必关心变量的类型.java也可以达到一定程度的动态识别.比如多态,但你必须要有继承关系,还有反射,繁琐并且效率低,如果使用python,这些方面的问题就很容易解决了.
下面我就细化的总结下python的优点:
1)函数
在函数方面python是做的比较好的,好的地方主要在支持默认参数和关键参数.
简单例子:
调用function_test(1) ,结果 1, 3, 5
调用function_test(1,c=2,b=3) 结果 1,3,2
2)集合
显然在集合方面python也有很大的优势.操作简便,集合类可以放不同类型的元素.
集合在python中分为:dictionary.list.tuple,操作非常的方便.
想想在java里如果要篇历一个map的key ,value是多么的麻烦.但是在python中
一句搞定.
"|".join(["%s=%s" % (k, v) for k, v in params.items()])
params是一个字典.params.items()返回这个字典的key,value ,每个key,value为一个元组.k,v
3)一次赋多值
这是个很方便的功能,可以一次给多个变量赋值,有些时候是非常有用的
调用mulequ(),结果是(0, 1, 2)
4)映射list
这是Python对于list提供的非常强大的方法,可以对list进行解析.并且映射为另一个list.
结果是 2,4,6,8,10
to becontinued......
分享到:
评论
11 楼 guyuxuelang 2010-03-22  
路过,学习一下,有时间看看这门语言
10 楼 ablmf 2009-10-25  
今天翻到做twitter的那几个人的一个访谈,他们提到动态语言最大的问题还是没有强类型检查,所以他们最后还是切到scala上面去了。

我想到的回答是,正是因为没有强类型,所以对Unit Test的要求就高了很多。不过这个理由我自己也觉得不是太strong.

做了Python一段时间,有感而发。
9 楼 key232323 2009-10-25  
别跑题了……

我在熬夜看python的一本书……

groovy做脚本,速度太慢了,linux/win下都是,语法糖方面的我不是那么关心,特性大家都有,少些多谢一点代码区别不大。

grails部署到app server下估计性能和php/python *** 跑在pc上差不多……(虽然java很快)
有点不喜欢这些大公司把java更多地作为收利工具……
8 楼 ablmf 2009-10-24  
mathgl 写道
语言是工具的一种,用来完成任务。任务的难易很多时候决定了研究的深度。当然有些人喜欢研究工具本身是另当别论。

我的同事很多用C++, 但是你要问他们boost里面的实现怎么回事,有大半都回答不上,但是这并不影响他们的工作。


你的意思就是你对完成工作比对“怎么样完成”更感兴趣。
7 楼 mathgl 2009-10-23  
语言是工具的一种,用来完成任务。任务的难易很多时候决定了研究的深度。当然有些人喜欢研究工具本身是另当别论。

我的同事很多用C++, 但是你要问他们boost里面的实现怎么回事,有大半都回答不上,但是这并不影响他们的工作。
6 楼 flyingzl 2009-10-23  
mathgl 写道
python恐怕是最不用系统学习的一门语言。。

其实还是需要系统学习,不然你只是懂得一些比较基本的东西,懂python的一些数据结构,稍微深入一点就不知道了。。

我在python list上还见过有人用django用了一年多,却不知道__init__.py有什作用。。有些人还弄混and 和 or,所以无论哪门语言,还是需要系统学习下比较好。

5 楼 gmizr 2009-10-20  
<div class="quote_title">kakashi 写道</div>
<div class="quote_div">
<p><strong>2)集合</strong></p>
<div class="section" lang="zh_cn">
<div class="section" lang="zh_cn">
<div>显然在集合方面python也有很大的优势.操作简便,集合类可以放不同类型的元素.</div>
<div>集合在python中分为:dictionary.list.tuple,操作非常的方便.</div>
<div>想想在java里如果要篇历一个map的key ,value是多么的麻烦.但是在python中</div>
<div>一句搞定.</div>
<div>"|".join(["%s=%s" % (k, v) for k, v in params.items()])</div>
<div>params是一个字典.params.items()返回这个字典的key,value ,每个key,value为一个元组.k,v</div>
</div>
</div>
</div>
<pre name="code" class="python">"|".join(["%s=%s" % i for i in params.items()])</pre>
<p> 这样就行了</p>
<p>lz你把tuple解析出来又组合了一遍</p>
<p> </p>
4 楼 jamesqiu 2009-06-15  
(one,two,three) =  range(3)
groovy 可以用:
(one,two,three) =  [0,1,2]

li=[1,2,3,4,5] 
li_1 = [element*2 for element in  li] 
groovy 可以用:
li_1 = li.collect{it*2}
3 楼 jamesqiu 2009-06-14  
"|".join(["%s=%s" % (k, v) for k, v in params.items()])

groovy 可以用:

params.collect {k,v->"$k=$v"}.join("|")
2 楼 mathgl 2009-06-08  
python恐怕是最不用系统学习的一门语言。。
1 楼 phyeas 2009-06-08  
好像没有java的多少东西,建议改成python笔记……之类的

相关推荐

    java2python--java代码转python工具

    此外,Java的控制流程(如if-else,for循环)和异常处理与Python也有所不同。 在实际的转换过程中,工具可能会遇到挑战,比如处理Java的异常处理机制(try-catch-finally)到Python的异常处理(try-except-finally...

    Java中调用Python代码

    2. **JPyCall**: JPyCall是一个Java库,它提供了与Python互操作的能力,允许Java程序直接调用Python函数。JPyCall依赖于Jython或者Py4J,但相比Jython,JPyCall更专注于提供一个简洁的API来调用Python。 3. **Py4J*...

    java For python 程序员

    1. Java教程是为Python程序员准备的,目的是帮助已经熟练使用Python的开发者快速学习Java语言,并迁移到Java编程环境上。 2. Java教程同样适合那些想掌握大数据基础技能的算法工程师,因为Java是处理大数据领域中...

    GRPC简单应用(Java+Python)

    Python实现GRPC的步骤与Java类似,但语法有所不同。 1. 安装依赖:使用pip安装gRPC和protobuf库。 2. 定义.proto文件:与Java版本相同。 3. 生成Python代码:使用protoc生成Python代码,这将创建一个服务接口和...

    java2python, 将Java源代码转换为 python的简单但有效的库.zip

    java2python, 将Java源代码转换为 python的简单但有效的库 java2python简单而有效的工具将Java源代码转换为 python 。java2python包可以翻译任何语法有效的Java源代码文件。 生成的python 代码不能保证运行,也不...

    java与python的区别.pdf

    Java和Python是目前流行并广泛应用的两种编程语言,各有其特点和应用场景。Java是一种静态类型、面向对象的编程语言,它通过Java虚拟机来执行代码,保证了代码的平台无关性。而Python是一种动态类型的解释型语言,以...

    java调用python入门详解

    1. **Jython**: 为了在Java环境中运行Python代码,我们可以使用Jython,这是一种Python的Java实现。Jython使得Python代码可以直接被Java虚拟机(JVM)执行,从而实现Java和Python的无缝集成。 2. **Python脚本调用*...

    Java调用Python.zip

    1. **Java的Runtime类**:这是最基础的方法,通过Runtime.getRuntime().exec()方法来执行外部命令,包括Python脚本。首先,确保Python环境已安装并且在系统路径中,然后编写Java代码来运行Python脚本。例如: ```...

    python 优缺点和java与python的jar

    在深入了解Python的优缺点以及它与Java之间的交互,特别是涉及到Java的jar文件时,我们首先要明确Python和Java各自的特点。 **Python的优点:** 1. **易学性**:Python的语法简单,适合初学者入门,其“易于阅读”...

    用java调用python

    JythonBridge 提供了与 Py4J 类似的功能,但它基于 Jython,允许直接在 Java 中运行 Python 代码,而不仅仅是调用 Python 脚本。 6. **使用 JPype**: JPype 是一个开源项目,它实现了 Python 和 Java 之间的互...

    Java调用Python各个版本的jar包

    JPyLib是一个Java与Python互操作的库,它允许Java代码直接调用Python函数,反之亦然。通过JPyLib,你可以创建Python对象、调用Python函数、传递参数,并获取返回值。值得注意的是,JPyLib可能需要特定版本的Python...

    java调用python脚本

    例如,"Java调用Python脚本"是一个常见的需求,特别是在数据处理、科学计算或机器学习等场景中,Python的强大库可以与Java的稳定性和企业级应用能力相结合。本教程将详细讲解如何在Java程序中调用Python脚本。 首先...

    Java调用python所用到的jar包

    1. **Jython**: Jython实际上是一个Python的Java版本,它实现了Python的大部分语法和标准库。通过Jython,Java可以直接执行Python脚本或者import Python模块。使用Jython时,你需要将Jython的jar包(如`jython-...

    JAVA调用Python的接口

    java调用python脚本的工具类,可以通过在java项目中导入当前的jar包,可以来调用python的脚本代码来执行python。

    Java通过python命令执行DataX任务

    在IT行业中,数据同步是一项常见的任务,特别是在大数据处理和云计算领域。...在进行这样的跨语言协作时,需要注意命令行参数的正确传递,Python脚本的编写,以及Java与Python之间的通信和错误处理。

    python转java

    6. 测试:对转换后的 Java 代码进行充分的测试,确保功能与原 Python 代码一致。 需要注意的是,自动转换工具并不能完全替代人工工作,特别是在处理复杂逻辑、自定义类、面向对象编程以及 Python 的高级特性(如...

    thrift 的 java 和 python结合例子

    在这个"thrift的java和python结合例子"中,我们将探讨如何使用Thrift在Java和Python之间建立通信。 首先,Thrift通过定义接口描述文件(.thrift)来规范服务的接口。这个文件使用Thrift IDL(Interface Description...

Global site tag (gtag.js) - Google Analytics