Py学习  »  Python

聚焦面(考)试:那些Python与Java中,你忽略的细节

程序员大咖 • 2 年前 • 154 次点击  
👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

作者丨王翔丨 

来源丨清风Python (BreezePython

关系运算符


最近准备考可信,顺带会查漏补缺一些Python与Java的知识点分享给大家,今天聊聊运算符优先级:
关系运算符的优先级比算数运算符低,这点Python与Java是相同的,举个例子:

1>>> 7>=3+4
2output: True

Java也不例外:

1public class Main {
2    public static void main(String[] args)  {
3        System.out.println(7>=8-2);
4
5    }
6}
7output: true

既然是相同的内容,又有什么值得记录的呢?且往下看…
在Java中,关系运算符的子类等于和不等于符号的运算符却要比其他子类更低,举个例子:

1public class Main {
2    public static void main(String[] args) {
3        System.out.println(6>3 == 8>2);
4
5    }
6}
7output: true

但在Python中,却没有这个特例,等于与不等于和其他的关系运算符权重是相同的:

16>3 == 8>2
2output:False



字符(串)拼接


还有些区别呢?顺便总结下关于字符(串)与数字的拼接
Python中单引号和双引号,都表示字符串。字符串是不能与数字拼接的:

1"No."+1
2output:
3Traceback (most recent call last):
4  File "", line 1in 
5TypeError: can only concatenate str (not "int") to str

然而在Java中,字符(串)不仅可以和数字拼接,当他们的位置不同时,还会产生不同的结果哦:

 1public class Main {
2    public static void main(String[] args) {
3        System.out.println("No."+1);
4        System.out.println('A'+1);
5        System.out.println("No."+1+'A');
6        System.out.println('A' +1+"No.");
7
8    }
9}
10output:
11No.1
1266
13No.1A
1466No.

是不是觉得考试不会考?错了,出题的二货们,最爱考这些问题了!

布尔型(Boolean)与数字运算


刚才说到了Java可以Python不可以的操作,那么现在来说一个Python可以但Java却不能的运算!
Python当存在布尔值与数字进行运算是,会将True转化为数字1,False转化为数字0,看看下面的运算:

1True +10
2output: 11
30 <= False <1
4output: True

然而,Java是不能这么操作的

Error:(8, 33) java: 不可比较的类型: boolean和int

中国的考试很奇怪,越是偏门不用的越是爱考,貌似这种为难考生的方式,会让出题人很有成就感,简直是干(丧)得(心)漂(病)亮(狂)...

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/126256
 
154 次点击