想学好Python,你必须了解Python中的35个关键词
每种编程语言都会有一些特殊的单词,称为关键词。对待关键词的基本要求是,你在命名的时候要避免与之重复。本文将介绍一下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
如果打算在交互模式里面查看关键词,可以使用help()
:
>>> help("keywords") Here is a list of the Python keywords. Enter any keyword to get more help. 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
对每个关键词的详细说明,也可以用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
True
和False
是布尔类型的两个值,注意必须首字母大写。
>>> 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,你必须了解Python中的35个关键词的更多相关文章
- python的第一个程序“Hello,World”,传闻要想学好新语言....
传闻要想学好新语言,第一个程序必须是“Hello,World”...O(∩_∩)O哈哈~ 下面附上代码: # -*- coding:utf-8 -*- print("Hello,World& ...
- java和python细节总结和java中string 的+操作
//JAVA中对arrayList的初始化,能够分配空间,不能之间让一个ArrayList赋值给另外一个ArrayList,这样是引用赋值,当一个改变时候,另外一个也改变 List<String ...
- [Python][flask][flask-login]关于flask-login中各种API使用实例
本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了 ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
- Python编码规范:IF中的多行条件
Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我 ...
- 【转】Python之向日志输出中添加上下文信息
[转]Python之向日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定 ...
- Python面试题整理-更新中
几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路 ...
- Python面试题之Python中的lambda map filter reduce zip
当年龟叔想把上面列出来的这些都干掉.在 “All Things Pythonic: The fate of reduce() in Python 3000”这篇文章中,他给出了自己要移除lambda. ...
随机推荐
- 分布式项目开发-springmvc.xmll基础配置
基础步骤: 1 包扫描 2 驱动开发 3 视图解析器 4 文件上传解析器 5 拦截器 6 静态资源 <beans xmlns="http://www.springframework.o ...
- Rocket - tilelink - BusWrapper
https://mp.weixin.qq.com/s/03BvgTNQtD75Guco6gUGQg 简单介绍BusWrapper的实现. 1. HasTLBusParams 定义SoC的挂 ...
- Rocket - tilelink - Bits vs. UInt
https://mp.weixin.qq.com/s/lzDmIHkUph3b1Fxgx66ySg 分析移位/取反操作在Intellij中提示错误的问题. 1. 问题 用到移位/取反的地方 ...
- Java实现 LeetCode 748 最短完整词(字母拆分+暴力)
748. 最短完整词 如果单词列表(words)中的一个单词包含牌照(licensePlate)中所有的字母,那么我们称之为完整词.在所有完整词中,最短的单词我们称之为最短完整词. 单词在匹配牌照中的 ...
- Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi. 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶 ...
- Java实现 LeetCode 543. 二叉树的直径(遍历树)
543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 示例 : 给定二叉树 1 / \ 2 3 / ...
- Java实现 LeetCode 172 阶乘后的零
172. 阶乘后的零 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 示例 2: 输入: 5 输出: 1 解释: 5! ...
- REDIS主从频繁切换事件排查
目录 前言 现象 排查 结论 redis主从配置注意点 前言 目前生产配置了2台redis一主一从1.193和12.6,和3个哨兵.1.193,3.10,12.6,搭建的redis高可用环境.突然发生 ...
- python自学Day06(自学书籍python编程从入门到实践)
第7章 用户输入和while循环 我们设计的程序大多是为了解决用户最终的问题,所以我们大多需要在用户那里获取一些信息. 学习用户输入的获取与处理,学习while循环让程序不断运行直到达到指定的条件不满 ...
- 3、react-props/state
1.react中属性props和状态state 属性--静态得,所以在初始化得时候使用得是static进行初始化得,正常情况下属性不改 状态--动态得,它得值是可以发生改变得,react中的组件更新( ...