pythone和java_Python学习笔记(一)与JAVA对比之基础功能

最近在学习Python,感觉Python确实有她的魅力之处,与JAVA等其它OO语言对比,有其擅长处理的领域。虽然Python是解释型的语言,严格意义上不能和JAVA做对比,但我觉得在学习一个新事物时,与熟悉的事物比较,能更好的了解新事物的特点,从而了解其能真正做些什么。下面总结一些基础特性的对比,主要列出Python相对JAVA更有特色的语言特性。

1、运行

Python脚本能以更像应用程序的方式运行。

Linux平台下,可以在脚本受行添加#!/usr/bin/env python

用于显示地指定使用python解释代码,这种方式在unix中称作Shebang,具体用法可参考:

如果是windows,那么在正确安装了python后,可以直接双击脚本,会弹出cmd窗口,执行脚本,是不是很酷。

对比java的执行方式,通常需要通过批处理、或者做成可执行的jar、或通过第三方工具打包成exe的方式,这一点python显然来得更直接些,这表明其处理某些辅助工作会比java来的容易,例如在都安装了python的环境中,A开发了工具脚本,可以直接分发给B,在B的环境上直接运行,如果是JAVA恐怕要直接运行要做更多的事情,或者连同JRE一起传递过来。

2、列表操作

Python的序列类似于JAVA的List(形式上看可能更像数组),但序列本身又分多钟类型,我们仅拿列表做比较,Python的列表和JAVA的List有很多共同点:可以修改、通过索引访问等等,对于基本的操作,二者没有太大差别只是使用的方法不同而已如:

操作

JAVA

Python

添加值

list.add(num)

list.append(num)

删除指定索引的值

list.remove(numIndex)

del list (numIndex)

修改值

list.set(numIndex,num)

list [numIndex] = num

Size

list.size()

len(list)

扩展

list1.addAll(list2)

list1.extend(list2)

除了表格外的操作,其实还有很多,就不再列举,我们只关注一些JAVA不具备的操作,这些才是展现Python生产力的关键:

(1)分片,第一个索引是提取部分的第一个元素所以,第二个索引则是分片后的剩余部分的第一个元素索引:

>>>num = [1,2,3,4,5]

>>>num[2:4]

[3,4]

还可以指定步长如上例中,在第二个索引后再追加一个步长2,则分片中只会包含3,可以试着将步长设置大于索引的差,那默认只会以索引差为步长,也就是即使将步长设置为5(大于4-2),还是会以2作为步长:

>>>num[2:4:2]

[3]

(2)列表合并

显然Python来的更直接:

>>>[1,2,3] + [4,5]

[1,2,3,4,5]

(3)乘法

如果想简单的重复序列中的元素,可使用乘法运算:

>>> [1,2]*4

[1,2,1,2,1,2,1,2]

(4)插入元素,如果对JAVA的list插入元素要麻烦的很:

>>> num=[1,2,3]

>>> num.insert(2,7)

>>> num

[1,2,7,3]

3、语句块:缩进

JAVA中的缩进是会被编译器忽略的,只是为了提高代码可读性,但Python的缩进是会被解释器解释的,它用来决定语句块的范围。语句块是在条件判断语句执行后(如if)的一组语句,类似于JAVA中if语句后的大括号内的部分,Python用“:”标识语句块的开始,后面所有具有相同缩进量的语句被认为在一个语句块中,例如:

>>> i =1

>>>

ifi ==1:

print'is true'

print'i==1'

else:

print'i!=1'

istrue

i==1

4、迭代

除了类似JAVA的for in方式的迭代外,Python提供了zip的打包迭代方式,可以批量迭代列表(或其它序列)如:

>>> num1=[1,2,3]

>>> num2=[4,5,6]

>>> zip(num1,num2)

[(1,4), (2,5), (3,6)]

再通过for遍历:

>>>fornum1v,num2vinzip(num1,num2):

print'num1 value is',num1v,'num2 value is',num2v

num1 value is1num2 valueis4

num1 value is2num2 valueis5

num1 value is3num2 valueis6

5、方法参数

Python提供以一种不用按照顺序输入函数参数的方式,用起来很有趣,对于参数很多的函数,

我们就不用记住参数的顺序,用起来很方便:

defshowInfo(name, desc):

print"Name is",name,",Description is",desc

showInfo(name='sml',desc='"It is a hero"')

>>>

Name issml ,Descriptionis"It is a hero"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值