专栏首页老齐教室必须要了解的Python关键词

必须要了解的Python关键词

作者:老齐

每种编程语言都会有一些特殊的单词,称为关键词。对待关键词的基本要求是,你在命名的时候要避免与之重复。本文将介绍一下Python中的关键词。关键词不是内置函数或者内置对象类型,虽然在命名的时候同样也最好不要与这些重名,但是,毕竟你还可以使用与内置函数或者内置对象类型重名的名称来命名。关键词则不同,它是不允许你使用。

在Python3.8中提供了35个关键词,如下所示:

False 	await 	  else 	    import  	pass
None   	break 	  except 	  in    	  raise
True 	  class 	  finally 	is    	  return
and 	  continue 	for 	    lambda    try
as 	    def 	    from    	nonlocal 	while
assert 	del 	    global   	not 	    with
async 	elif 	    if 	      or 	      yield

你可以通过下面的链接,查看官方文档对每个关键词的说明:https://docs.python.org/3.8/reference/lexical_analysis.html#keywords

如果打算在交互模式里面查看关键词,可以使用help()

>>> help("keywords")

Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not

对每个关键词的详细说明,也可以用help()查看:

>>> help('pass')    # 敲回车后出现下面的内容

The "pass" statement
********************

   pass_stmt ::= "pass"

"pass" is a null operation — when it is executed, nothing happens. It
is useful as a placeholder when a statement is required syntactically,
but no code needs to be executed, for example:

   def f(arg): pass    # a function that does nothing (yet)

   class C: pass       # a class with no methods (yet)

除了上面的方法之外,还有一个标准库的模块keyword提供了关键词查询功能。

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', ...
>>> len(keyword.kwlist)
35

那么,这些关键词如何使用?在什么情景下应用?下面以示例的方式对部分关键词进行说明。

True、False和None

TrueFalse是布尔类型的两个值,注意必须首字母大写。

>>> x = True
>>> x is True
True

>>> y = False
>>> y is False
True

如果我们要判断某个对象的布尔值是True还是False,可以使用bool()函数实现,例如:

>>> x = "this is a truthy value"
>>> x is True
False
>>> bool(x) is True
True

>>> y = ""  # 这个是假
>>> y is False
False
>>> bool(y) is False
True

注意,如果向bool()传入的参数是0, "", {}, []中的任何一个,返回值都是False

在条件语句中,本来是要判断条件是否为True,但是,通常不需要直接与True或者False进行比较,依靠Python解析器自动进行条件判断。

>>> x = "this is a truthy value"
>>> if x is True:  # 不要这么做
...     print("x is True")
...
>>> if x:  # 应该如此写
...     print("x is truthy")
...
x is truthy

None这个关键词,在Python中表示没有值,其他语言中,同样的含义可能会用null,nil,none,undef,undefined等。None也是函数中没有return语句的时候默认返回值。

>>> def func():
...     print("hello")
...
>>> x = func()
hello
>>> print(x)
None

and、or、not、in、is

这几个关键词,其实都对应着数学中的操作符,如下表所示。

数学符号

关键词

AND, ∧

and

OR, ∨

or

NOT, ¬

not

CONTAINS, ∈

in

IDENTITY

is

Python代码具有很强的可读性,通过关键词就能一目了然晓得是什么操作。

这几个关键词比较好理解,这里仅提醒注意在Python中有一个著名的短路运算,例如and

<expr1> and <expr2>

不要将上面的式子理解成两边都是真的时候返回True。对此,在**《Python大学实用教程》**一书中有非常详细的说明,请参阅。另外一个就是or,也存在短路运算。

break、continue和else

这几个是经常用于循环语句的关键词。

break 的作用是终止当前循环,其使用的基本格式:

for <element> in <container>:
    if <expr>:
        break

举个例子:

>>> nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sum = 0
>>> for num in nums:
...     sum += num
...     if sum > 10:
...         break
...
>>> sum
15

continue则是要跳过某些循环,然后让循环继续。

for <element> in <container>:
    if <expr>:
        continue

else在条件语句中有,这里提到它,是在循环语句中,它的作用是当循环结束后还要继续执行的代码。

在for循环中,使用格式如下:

for <element> in <container>:
    <statements>
else:
    <statements>

在while循环中,使用格式如下:

while <expr>:
    <statements>
else:
    <statements>

例如,有时候我们要在循环语句中使用一个旗帜变量:

>>> for n in range(2, 10):
...     prime = True
...     for x in range(2, n):
...         if n % x == 0:
...             prime = False
...             print(f"{n} is not prime")
...             break
...     if prime:
...         print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime

在上面的代码中,prime就是一个旗帜变量,如果循环正常结束,prime的值就是True,否则,就是False。如果从循环中退出了,第8行判断这个变量的值,如果为True则打印相应内容。

对于上面的代码,如果用else改写,可以更简洁,并且可读性更强。

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(f"{n} is not prime")
...             break
...     else:
...         print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime

其他一些关键词,本文不再赘述,可以参考《Python大学实用教程》中的有关内容。

本文分享自微信公众号 - 老齐教室(itdiffer),作者:老齐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 向量空间

    生活中所说的“空间”,就是我们所处的地方,它有三个维度,它里面有各种物体,这些物体各自遵守着一定的运动规则——注意,“空间”非“空”——或者说,这个空间制定了某...

    老齐
  • Python中的4个Lambda函数示例

    说明: 本书是针对零基础学习者的入门读物,书中以深入浅出的方式介绍了Python语言的相关知识。书中代码使用Python3,并且在本公众号有相关的资源推荐和勘误...

    老齐
  • 青少年编程:用Python探究数学(1)

    说明:本系列文章是为中小学生学习Python语言而编辑,在阅读本文之前,请已经做好如下准备:

    老齐
  • Python的is None vs ==None

    想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:

    Tyan
  • 学习日志-python基础01,浅谈p

    py3study
  • GUID_COMP and GUID_COMPC - IBASE table

    ticket 1548725 2011 [Sorting of Ibase compments suppress structure]. The correct...

    Jerry Wang
  • Python 循环语句

    Python提供了for循环和while循环(在Python中没有do..while循环):

    py3study
  • 学习Python,is和==的本质区别你

    在Python中,is和==都是用来对两个对象进行比较判断的,但两者却有本质的区别。

    py3study
  • 写了多年的Java,直到看到Kotlin,原来代码可以如此优雅!

    如果你是像我一样是一名 优秀 的Java开发者 _ ,而且已经想用kotlin来实现你的程序,那么,抱歉!不要用Java的语法思维来写Kotlin,不要让kot...

    一个会写诗的程序员
  • SAP CRM Advanced search和Simple search里Max hit表现行为的差异

    We could observe the different behavior of search max hits in product advanced s...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券