您的位置:首页 > 编程语言 > Python开发

Java程序员如何理解Python中的一些比较特殊的关键字

2015-09-03 22:37 676 查看
详细权威解释还是要看Python Language Reference:
Python 2.7 Python 3

yield: 为了省内存,迭代中懒惰求值,而不是一次就产生一个大的序列。 详细解释: 点我

raise: 对应Java的throw. Example: raise Exception('Hello Exception')

except: 对应Java的catch. Example:

try:
print(1 / 0)
except Exception as exc:
raise RuntimeError("Something bad happened")


with as: 为了在语言层面支持更加简洁地打开一些资源而创造出的Python语句。(相关介绍:
点我1, 点我2)

lambda: 函数式编程 。因为Python中函数也是一等公民。在Java中,我们可以创建匿名类;类似地,在Python中,我们可以创建匿名函数。简单介绍:点我

del: 好像用的比较少。网上并没有太通俗易懂的介绍。还是看一下语言规范吧:
点我

global: 在某局部作用域内(例如方法)声明某些标识符是全局的。

None:Java的null

exec: 把字符串当Python代码来执行。

in: 在Python中,有两层意思,一是对应Java中的foreach循环。例如 Python: for i in list 对应到 Java: for(Integer i : list) ; 另一方面, 对应到Java中一些集合类上的 contains方法,例如: Python: if i in list: 对应到 Java:if(list.contains(i)),不过,Python in的用法, 与Java contains 方法比,更加灵活, 适用的数据结构也更加广泛。

not: 逻辑运算中的非。对应Java中的感叹号。

or: 逻辑或。Java中的 ||

and:逻辑与。Java中的 &&

is: Java 中的 ==

==: Java 中的 equals

**: 指数运算。 2**3=8

**=: 指数运算赋值。 a**=3 等价于 a = a**3

//: floor除法,就是只保留商的整数部分。 print 3//2

>>> print(3//2)
1
>>> print(3/2)
1.5


<>: 不相等。Python 2有效, Python 3废弃

附: Python 2一些关键字,语句,类型的介绍: http://learnpythonthehardway.org/book/ex37.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: