python与java的区别

 随着人工智能,大数据等应用的兴起,python这门原来偏居一隅的语言迅速进入人们的视线内,成了近几年冉冉升起的一颗新星,
 正在挑战着多年编程语言的老大java,那么他们到底有什么不同呢?现在我们从语言层面来聊聊这些事儿。
  • 从print说起

大部分人开始都是从打印一个’hello,world!’开始,java的print非常简单,仅仅就是在控制台输出一个语句

System.out.println("hello,world!");

但是python的print就相对复杂一些

print('hello,world!')
print('hello','world!') ——支持分隔符输出
print('hello','world!',sep='|',end='...') ——支持不同分隔符输出,结束符可选
f = open(file_path,'w')
print('[' + datetime.now().strftime('%Y-%m-%d') + ']print to file',file=f) ——可以将print的字符串输出到文件,充当简易log或其他内容
f.close()

[深入python]那就从print开始

  • 字符串

python的字符串可以进行乘法操作,java不能,比如

print('a'*10) ——相当于输出10个a

python的字符串本身自带填充操作方法,并且填充方式可以是索引或者是关键字参数,比较灵活比如

print('{},{},{},{}'.format(1, 2, 3, 4))
print('{3},{0},{2},{1}'.format(1, 2, 3, 4)) ——按索引
print('{str1},{str2}'.format(str1='1',str2='2'))
print('{1},{str1},{0},{str2}'.format(1, 2, str1='3', str2='4'))

java的需要借助+或者concat(),或者是自己另写一个方法

String str = "hello";
System.out.print(str.concat("world!"));
System.out.print(str + 'world!');

[深入python]无处不在的字符串

  • 元组和列表

java没有元组概念,但是有近似的数据结构,如数组和不可变List,不过不可变List需要额外的操作才能获取

List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
List<String> unmodifiableList = Collections.unmodifiableList(list);
unmodifiableList.add("four"); ——这里会报异常,因为是不可变的

java的List和python类似
[深入python]大肚能容天下事——python元组和列表

  • 字典

python字典可以直接用于格式化字符串,比如

bookauthor = {'book1':'author1','book2':'author2','book3':'author3','book3':'author3'}
print('The bookauthors are {book1},{book2},{book3},{book4}'.format_map(bookauthor))

[深入python]阅读前看看目录,查的更快——python字典

  • 控制语句

python特殊的三目运算

print('相等' if 1 == 1 else '不相等')

java的三目运算符

System.out.print(1==1?"相等":"不相等");

java通过大括号来区分代码块,python采用缩进方式

[深入python]流程三要素——顺序,条件,循环

  • 函数

主要有几点不同

  1. python特殊的关键字参数,这和java是很大不同的地方,java的参数列表是按照定义好的顺序传参,但是python则可以通过关键字参数来传参,并且通过关键字参数设置初始值
  2. 并且java强制需要表明返回值类型,不返回也要表明为void,python默认返回None
  3. java入参需要强制说明参数类型,python省略
  4. *星号传参方式,java近似的方式是可变参数列表

java方法

public static void demo(String parma1, int param2, boolean param3,Object other){} ——普通方式
public static void demo1(String... params){} ——可变参数方式

python函数

def demo(param1, param2, param3): pass ——普通方式
def demo1(param1='demo', param2=10, param3=True): pass ——关键字方式
def demo2(*params, **paramdict): pass ——*星号传值方式
def demo3(param1, param2=10, *params, **paramdict): pass ——混合模式

[深入python]咦,参数列表太长了咋办——python函数

  • 类与对象

[深入python]没有对象?那我们自己创建一个好了——python类与对象

  • 异常

[深入python]能不能把那个异常处理一下?好的——python异常

  • 魔法方法

[深入python]竟然是魔法?——python魔法方法

  • 文件操作

[深入python] 打开一个文件,写一写——python文件操作

  • 数据库

[深入python]文件还不够,那就上个数据库——python数据库

  • 网络编程

[深入python]上网去——python网络编程和web

  • 测试

[深入python]如果不试一下,总觉得不太放心——python测试

  • python拓展

[深入python]python够吗?不够就拓展一下——python拓展

  • 打包

[深入python]终于要打包了——python打包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值