查看python关键字的方法

本文介绍如何使用Python的keyword模块来查询Python版本中的关键字。包括导入keyword模块、获取所有关键字列表及判断某个词是否为关键字的方法。
在python 语言中,通过使用keyword
模块可以查看你使用的python 版本中的关键字,具体使用方法是:


1.使用 import 导入keyword 模块;


2.使用 keyword.kwlist 获得所有的关键字


3.另外还可以使用 keyword.iskeyword (word) 的方式查看 word 是否为关键字。

示例如下:

获得所有关键字
import keyword;

keyword.kwlist;

当前版本python3.1.1下的关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


判断是否为关键字:
keyword.iskeyword ('False')
此时将返回True
<think>我们正在使用IPython,这是一个增强的Python交互式环境。在IPython中,我们可以方便地查看Python关键字和内置函数(预定义标识符)。 根据引用[1][2][3],我们知道可以使用keyword模块来查看Python关键字。另外,我们可以查看内置函数的名字(注意:内置函数不是关键字,但也是预定义的标识符)。 步骤: 1. 导入keyword模块,使用keyword.kwlist查看所有关键字。 2. 查看内置函数:可以通过内置模块builtins(在Python 3中)来查看,但通常我们也可以直接查看__builtins__模块(在交互式环境中)的字典,或者使用dir(__builtins__)查看所有内置函数和属性。 3. 在IPython中,我们还可以使用一些魔法命令,例如使用“?”来获取帮助,但这里我们主要使用Python代码。 注意:关键字是语言保留的,不能用作标识符;而内置函数的名字虽然可以被覆盖,但通常也不建议覆盖。 具体操作: 查看关键字: import keyword keyword.kwlist 查看内置函数和内置异常等(注意:dir(__builtins__)会返回一个列表,包含内置函数、异常和其他属性的名称): 我们可以通过dir(__builtins__)然后过滤出可调用的对象(函数)或者通过观察名字(通常小写的是函数,但也有一些异常对象)来查看。 但是,更准确的方式是:使用内置模块builtins(需要导入,但在__builtins__中已经存在)。 在IPython中,我们可以这样做: import builtins # 然后获取所有内置函数的名称 [name for name in dir(builtins) if callable(getattr(builtins, name))] 但是,由于内置模块中还有一些类(例如int, str)以及异常等,所以上述方法会返回非常多。我们也可以只关注那些不是类且不是异常的可调用对象?但这样区分比较麻烦。 实际上,我们通常直接查看dir(builtins)输出,然后人为区分。 另外,引用[3]中提到了在命令行交互环境中查看关键字方法,我们可以在IPython中同样使用。 因此,我们编写以下代码: 1. 查看关键字: import keyword print("Python关键字:", keyword.kwlist) 2. 查看内置函数(预定义标识符): 我们可以使用dir(__builtins__)来查看,但为了更清晰,我们可以打印出所有内置函数(可调用对象)的名字。 注意:在IPython中,我们还可以使用“?”来获取帮助,例如输入“keyword?”可以查看keyword模块的帮助。 下面给出IPython中的操作步骤: 步骤一:查看关键字 In [1]: import keyword In [2]: keyword.kwlist 步骤二:查看内置函数 我们可以先查看__builtins__模块中的内容: In [3]: dir(__builtins__) 但是输出会很长,我们可以使用列表推导式来过滤出函数(可调用对象): In [4]: [f for f in dir(__builtins__) if callable(getattr(__builtins__, f))] 但是注意,这样可能会包含一些类(因为类也是可调用的)。如果我们只想看函数,可以进一步用类型判断,但这样更复杂,而且内置函数中有些是类(如int, str),有些是函数(如len, print)。通常我们不需要严格区分。 另外,IPython提供了一个更简洁的内置函数查看方式:使用%魔术命令,但标准方法还是通过dir。 考虑到用户要求,我们直接使用上述方法。 下面给出一个完整的IPython会话示例: ```python In [1]: import keyword In [2]: keyword.kwlist Out[2]: ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] In [3]: # 查看内置函数和内置类型等(预定义标识符) In [4]: # 使用dir(__builtins__)会输出很长,我们可以分页显示或者只输出函数名字 In [5]: # 我们可以过滤出可调用的对象(包括函数和类) In [6]: builtin_callables = [name for name in dir(__builtins__) if callable(getattr(__builtins__, name))] In [7]: # 打印前20个 builtin_callables[:20] Out[7]: ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError'] # 注意:这里输出的是可调用的内置对象,包括异常类、内置函数和内置类型等。 ``` 因此,我们可以告诉用户,在IPython查看关键字和内置函数(预定义标识符)的方法。 注意:由于内置函数和类的数量很多,我们通常不会全部记住,而是根据需要使用。 另外,在IPython中,我们还可以使用Tab键自动补全,例如输入“__builtins__.”后按Tab,就会列出所有属性。 为了提高可读性,我们可以将内置函数(而不包括异常类)单独列出来,但Python并没有提供这样的内置列表。我们可以参考官方文档,或者使用inspect模块来进一步判断,但这超出了本问题的范围。 总结回答: 在IPython查看关键字和预定义标识符的方法如下: 1. 关键字:使用`keyword.kwlist` 2. 预定义标识符(包括内置函数、内置类型等):使用`dir(__builtins__)`,或者进一步过滤可调用对象。 但是,需要注意的是,预定义标识符不仅包括内置函数,还包括内置类型、内置常量(如True, False, None)和内置异常等。 另外,引用[1][2][3]中提到的关键字查看方法也适用于IPython。 根据引用[5],我们还可以在IPython中使用格式化输出,但这里不涉及。 因此,我们给出以下代码示例: ```python # 在IPython查看关键字 import keyword print("Python关键字列表:") print(keyword.kwlist) # 查看内置函数等预定义标识符 print("\n内置函数和类型等预定义标识符:") # 我们打印前50个以避免过多输出 builtin_names = dir(__builtins__) print(builtin_names[:50]) # 实际使用时可能不需要打印全部 # 如果想只查看函数(不包括类),可以使用inspect模块进行判断,但这里不展开。 ``` 注意:在IPython中,我们可以直接运行这些代码。 相关问题: 1. 如何判断一个字符串是否Python关键字? 2. 如何在Python中覆盖内置函数?这样做有什么风险? 3. 如何查看Python中所有保留的关键字和内置函数? 4. 在IPython中,有哪些快捷方式可以查看帮助? 5. Python中的关键字和内置函数有什么区别? 注意:用户的问题是关于IPython的,所以我们在回答中要体现IPython环境。 </think>在 IPython 中使用以下方法查看 Python 关键字和预定义标识符: ### 1. 查看 Python 关键字 使用 `keyword` 模块查看 Python 保留的关键字: ```python In [1]: import keyword In [2]: keyword.kwlist # 列出所有关键字 Out[2]: ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] In [3]: keyword.iskeyword('if') # 检查特定词是否关键字 Out[3]: True ``` ### 2. 查看内置函数和对象(预定义标识符) 使用内置函数 `dir()` 查看当前命名空间中的标识符: ```python In [4]: dir(__builtins__) # 查看所有内置函数和对象 Out[4]: ['ArithmeticError', 'AssertionError', ..., 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', # 预定义的复数类型 'copyright', 'credits', ..., 'str', # 预定义的字符串类型 'sum', 'super', 'tuple', 'type', 'vars', 'zip'] ``` ### 3. 使用 IPython 特有功能 IPython 提供增强的交互功能: ```python In [5]: len? # 查看函数文档 Signature: len(obj, /) Docstring: Return the number of items in a container. Type: builtin_function_or_method In [6]: str.*find*? # 使用通配符查找标识符 str.find str.rfind ``` ### 关键区别说明 | 概念 | 关键字 | 预定义标识符 | |----------------|--------------------------------|--------------------------| | **性质** | 语言保留字,不可重新定义 | 内置函数/类,可被覆盖 | | **数量** | 35个(Python 3.9) | 150+个 | | **验证方法** | `keyword.iskeyword()` | `dir(__builtins__)` | | **示例** | `if`, `for`, `def` | `print()`, `str`, `list` | | **是否可变** | 不可修改 | 可重新绑定 | ### 注意事项 1. 关键字不能作为变量名,否则会引发 `SyntaxError` 2. 内置函数可以被覆盖(但不推荐): ```python In [7]: str = 123 # 覆盖内置str类型(危险操作) In [8]: type(str) Out[8]: int # 原str功能已丢失 ``` 3. 恢复覆盖的内置函数:重启 IPython 或使用 `del str`[^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值