[Python3 填坑] 003 关键字?保留字?预留字?

目录

  • 1. print( 坑的信息 )
  • 2. 开始填坑
    • (1) 问题的由来
    • (2) 网上搜索
    • (3) 最终结论
    • (4) 后记

1. print( 坑的信息 )

  • 挖坑时间:2019/01/04
  • 明细
坑的编码 内容
Py002-1 Python 的“关键字”与“保留字”有没有区别

2. 开始填坑

(1) 问题的由来

照理说,我不该这么折腾。

就我浅薄的知识而言,说到编程语言中的“关键字”,最先想到的还是 C。可能是先入为主的关系,后来简短地接触过一些编程语言,多少感觉听“关键字”比“保留字”更舒服,听“函数”比“方法”更舒服。

大概是接触 Java 时,知道了“关键字”与“保留字”存在音译以外的不同:比如 goto、const 等 Java 中的“保留字”并不在“关键字”行列,虽没有实际作用,但写代码时不能使用它们。它们这些“保留字”,就像有些电影公司先买下版权,不确定自己什么时候拍,但是别人就不能拍了;如果哪一天想拍,可以立马开拍。

我这回学 Python3,并不是像以前那样为了打发时间,而是想掌握这个有用的工具,所以想学得清楚明白。条件所限,我是买了书,在网上搜的课程学的,所以遇到问题时挖的坑说不好什么时候能填平。

那么,Python3 中的“关键字”与“保留字”,甚至还有“预留字”,到底有什么关系?

(2) 网上搜索

(我姑且先称其为“关键字”)

1 我在随笔中写了一种查看 Python3 中有多少关键字的方法:

help("keywords")

2 我发现,网友朋友们更多的是用以下方法:

import keyword

keyword.kwlist

3 我数了一下,他们列举出来的是 33 个关键字,而我自己运行出来的是 35 个。然后我查了一下版本,Python3.7 的第一版大概是 2018 年年初发布的,3.7 有 35 个关键字,至于 33 个关键字的版本,可能是 3.4。其实我不用数,Python 官网中点 What’s New In Python 3.7 然后查找 keywords 就能看到:

async and await are now reserved keywords

(3) 最终结论

  1. Python3.7 的关键字、保留字还有预留字是同一种东西,毕竟英文都是”keywords“。
  2. 如果想单独查看这些关键字,可以使用 help("***");如,想查”async“的更多信息,可以:

help("async")

(4) 后记

虽然我是一个人在学,但网上有这么多志同道合的朋友,我想,我并不是一座孤岛。

我的学识有限,如果有同学、老师或者前辈看到我写的东西,发现错误之处,还请不吝赐教!谢谢!

原文地址:https://www.cnblogs.com/yorkyu/p/10306369.html

时间: 2024-10-14 22:26:35

[Python3 填坑] 003 关键字?保留字?预留字?的相关文章

[Python3 填坑] 007 多才多艺的 len()

目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 总的来说 (2) 举例说明 (3) 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/10 明细 坑的编码 内容 Py006-1 len() 的使用场合 2. 开始填坑 (1) 总的来说 len() 返回容器中的项目数 在某些对象中会包含对其它对象的引用,这样的对象被称作容器(containers) 简单地说,Python 中常见的数据结构,如 string.list.tuple.set.dict 等均为容器 fro

[Python3 填坑] 002 isdecimal() 与 isdigit() 的区别 + isnumeric() 的补充

目录 1. print( 坑的信息 ) 2. isdecimal() 官方文档 3. isdigit() 官方文档 4. 举例 (1) 先说结论 (2) 示例 5. 补充 isnumeric() (1) 官方文档 (2) 先说结论 (3) 举例说明 1. print( 坑的信息 ) 挖坑时间:2019/01/14 明细 坑的编码 内容 Py009-2 Python3 中 isdecimal() 和 isdigit() 的区别 2. isdecimal() 官方文档 截图: 大致意思: 如果字符串

智能家居填坑003 Modbus设备接入篇

Modbus设备 格控TCP系列507E.508M.508D 1.IO端口多:508D有32个DI口.508M有24个DO口.507E有8个DI和8个DO口. 2.原生支持有线Modbus-TCP协议. 3.价格便宜,差评少. 4.支持二次开发:后期计划将普通设备逻辑写入里面,就可以脱离服务器. 5.产品相关资料 :格控资料 准备 格控设备在说明书里详细的说明了设备的设置方式,在此就不多加叙述(不同品牌的设置方式存在差异,均需详细参考说明书). 1.给设备分配与你所在网段匹配的ip地址. eg.

填坑黑苹果(VMware装MacOS) - 修改 Unlocker 补丁源码版

最近闲的突然想找点事来折腾一下, 于是随着苹果的发布会就盯上自己手上的 iPhone, 也想弄个 Mac 来搞 IOS. 于是就有了这个填坑故事. 为什么要修改补丁源码: 不再苦苦去寻找和下载 drawn.iso 文件, 虽然我会告诉你这里可以下载到官网的; 遇到个错误, 既然也是搞 python 的, 那自己当然也要动手动手了. 1. 安装前 \1. 安装环境 Windows 10 VMware Pro 14 \2. 系统硬件配置 内存推荐 16G 以上 硬盘预留 40G 以上 CPU推荐 i

初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞

[微信测试公众号] 半年前耍着玩搭起来的“微信简历”,是LAMP版的,很皮毛. 微信的官方文档在这 http://mp.weixin.qq.com/wiki/index.php 1.获取access token 2.自定义菜单创建,直接在调试工具上做了 http://mp.weixin.qq.com/debug 3.接入指南(接入自己的网站) 4.接收微信消息,判断消息类型,判断消息关键字(比如来自哪个按钮),响应消息 这里有个小坑,不同类型的消息数据结构略有不同,判空最好做细致点. [V2.0

Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)

这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angularJs2 beta版的,网上的资源有两种,一个是文件全压缩版的.min.js版的另一个就是一大堆乱七八糟的js文件,主要是ng2已经完全采用TypeScript,加之对es6的支持,所以需要引入一大堆兼容,编译文件 这边刚好特别手欠想学学gulp,于是开搞配置gulp环境,压缩所有的js文件成一个mi

前端系列——jquery前端国际化解决方案“填坑日记”

前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都有成熟的方案,比如: vue + vue-i18n angular + angular-translate react + react-intl 但现在的情况是老的项目并没有使用这类架构.说起国际化,博主几年前就做过,在MVC里面实现国际化有通用的解决方案,主要就是通过资源文件的方式定义多语言.最初

Cython的用法以及填坑姿势

因为项目需要,需要优化已有的Python代码.目前Python代码的执行过程是将Python代码转变成一行行指令,然后解释器解释指令的执行,调用到C代码层.如果去掉指令解释这个阶段,直接进入C代码层,效率就比较高了.如果用之前所述的使用Python C API将Python代码改造为C代码并作为Python的内建模块,工作量极其大,也不能保证其正确性,所以这种方法不太现实.而Cython库正好符合这种场景需求,将已有的Python代码转化为C语言的代码,并作为Python的built-in模块扩

java填坑

慢慢填坑咯~ 1. 观察运行结果 package javaBasic; public class Dervied extends Base { private String name = "dervied"; public Dervied() { tellName(); printName(); } public void tellName() { System.out.println("Dervied tell name: " + name); } public