为什么这个字典定义会引发语法错误? [复制]

2023-12-04

可能的重复:
lVals = [1, 08, 2011] 抛出异常有什么原因吗?

我正在定义一个字典,将天数映射到各自的单词。由于某种原因,以下代码引发“SyntaxError:无效标记”并突出显示“08”

days = {01:"first", 02:"second", 03:"third", 04:"fourth", 05:"fifth", 06:"sixth", 07:"seventh", 08:"eighth", 09:"nineth", 10:"tenth", 
    11:"eleventh", 12:"twelvth", 13:"thirteenth", 14:"fourteenth", 15:"fifteenth", 16:"sixteenth", 17:"seventeenth", 18:"eighteenth",
    19:"nineteenth", 20:"twentieth", 21:"twenty-first", 22:"twenty-second", 23:"twenty-third", 24:"twenty-fourth", 25:"twenty-fifth",
    26:"twenty-sixth", 27:"twenty-seventh", 28:"twenty-eighth", 29:"twenty-nineth", 30:"thirtieth", 31:"thirty-first"}

修改代码,使 08 和 09 变为 98 和 99 可以阻止任何错误,如下代码所示:

days = {01:"first", 02:"second", 03:"third", 04:"fourth", 05:"fifth", 06:"sixth", 07:"seventh", 98:"eighth", 99:"nineth", 10:"tenth", 
    11:"eleventh", 12:"twelvth", 13:"thirteenth", 14:"fourteenth", 15:"fifteenth", 16:"sixteenth", 17:"seventeenth", 18:"eighteenth",
    19:"nineteenth", 20:"twentieth", 21:"twenty-first", 22:"twenty-second", 23:"twenty-third", 24:"twenty-fourth", 25:"twenty-fifth",
    26:"twenty-sixth", 27:"twenty-seventh", 28:"twenty-eighth", 29:"twenty-nineth", 30:"thirtieth", 31:"thirty-first"}

输出变为:

{1: 'first', 2: 'second', 3: 'third', 4: 'fourth', 5: 'fifth', 6: 'sixth', 7: 'seventh', 10: 'tenth', 11: 'eleventh', 12: 'twelvth', 13: 'thirteenth', 14: 'fourteenth', 15: 'fifteenth', 16: 'sixteenth', 17: 'seventeenth', 18: 'eighteenth', 19: 'nineteenth', 20: 'twentieth', 21: 'twenty-first', 22: 'twenty-second', 23: 'twenty-third', 24: 'twenty-fourth', 25: 'twenty-fifth', 26: 'twenty-sixth', 27: 'twenty-seventh', 28: 'twenty-eighth', 29: 'twenty-nineth', 30: 'thirtieth', 31: 'thirty-first', 98: 'eighth', 99: 'nineth'}

之前错误的键已移动到字典的末尾。

非常感谢发现这里发生的事情的人,

James


号码0是整数文字的前缀,表示它是 python 中的八进制数。

...正如我不小心遗漏的那样,正如 @larsmans 在他的评论中如此善意地指出的那样,将数字限制为仅包含数字0通过7,不包括8 and 9.

不过,同样值得注意的是,这是 Python 2.x 中的语法 - 从 Python 3.0 开始它已更改,表面上是出于您来到这里的确切原因。PEP 3127包含更改的详细信息。

最相关的一点:

目前几乎所有流行的计算机语言,包括 C/C++、Java、Perl 和 JavaScript,都将带有前导零的数字序列视为八进制数。将这些数字视为十进制的支持者有一个非常有效的观点 - [...]整个非计算机世界几乎只使用十进制数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这个字典定义会引发语法错误? [复制] 的相关文章

随机推荐

  • Android 创建位图时出现 OutOfMemory 错误

    我收到错误java lang OutOfMemoryError bitmap size exceeds VM budget 当为了手动绘制折线图而创建位图时会发生这种情况 width display getWidth 10 height w
  • Jenkins 日志变得巨大并填满了整个磁盘空间

    每周我都会惊讶地发现我的 Jenkins 服务器达到了 Jenkins 日志使用的 100 磁盘 所以我删除了该文件 然后我的磁盘再次获得大量可用空间 ec2 user ip xxx xxx xxx xxx df h Filesystem
  • 如何将环境设置导入到我的 Perl 程序中?

    我有一个脚本 其内容只是导出 Linux 中的一个变量 export LD LIBRARY PATH 我想在我的 Perl 脚本中运行这个脚本 这样无论是谁运行我的 Perl 脚本都会有他们的LD LIBRARY PATH放 我可以在 Pe
  • 初级ILNumerics:VS2012下安装

    我对 ILNUmerics 非常感兴趣 想尝试免费版本 但我遇到了麻烦 我已经从控制台应用程序开始 并尝试运行 hello ilnumerics 控制台应用程序 但我注意到 VS 无法找到 MKL 库 我在 Windwos 8 下使用 VS
  • Azure函数应用程序使用slf4j登录App Insights

    使用 Spring Cloud Functions 实现了 Azure Function App 在应用程序设置 APPINSIGHTS INSTRUMENTATIONKEY 中配置的 App Insights 检测密钥 我使用 lombo
  • react-native fetch - 请求正文 - 意外的 EOF

    在我的反应本机应用程序中 我尝试使用以下命令发出获取请求body 但是 我收到错误消息unexpected EOF 实际上 请求已发出 我的意思是我可以通过后端日志看到请求已发送 而在请求之后 它立即显示错误消息 这是我的fetch met
  • python: += s, 中的逗号有什么作用?

    我正在做一个问题 输入是字符串 abc bcd acef xyz az ba a z 代码如下所示 def groupStrings self strings groups collections defaultdict list for
  • 如何获取res文件夹的Uri?

    我正在尝试获取可绘制文件夹中图像的 Uri 我尝试了很多可能的方法 但似乎没有任何效果 谁能建议我如何获取 res 文件夹的 Uri 任何帮助深表感谢 嗯 实际上很容易 包中资源的基本 URI 类似于以下可能性 android resour
  • 如何为 iphone 5 设置 apple-touch-startup-image?

    I tried 但这没有用 苹果的界面指南还没有针对 iPhone 5 进行更新 有谁知道吗 谢谢 1 视口不要使用 width device width 使用以下代码
  • SSO - 未找到 OpenID 端点

    我正在尝试让 SSO openid 与 dotnetopenauth 一起使用 我有两个单独的项目 分别进行调试 都在本地主机上 但有两个不同的端口 一个充当提供者 一个充当依赖方 依赖方正在运行localhost 1903 提供者正在运行
  • 无效的 Git RSA 密钥指纹

    我开始收到这个错误 Received disconnect from 192 30 253 112 port 22 2 Connection blocked because server only allows public key aut
  • 如何在 Visual Studio 或其他构建工具的一个 C# 项目中生成 dll 和 exe 的混合?

    如何在 Visual Studio 或其他构建工具的一个 C 项目中生成 dll 和 exe 的混合 技术上可行吗 是的 我知道它可以在 2 个或更多项目中完成 我不确定你的问题的动机是什么 因为你可以引用 Net 可执行文件 就好像它是
  • 从 MySQL 中的同一(随机)记录中选择 2 列的最快方法是什么?

    我希望从同一条记录中随机检索一对列 不过 我听说 Rand 效率很低 所以我想使用不同的方式 很多文章都这么说 包括http akinas com pages en blog mysql random row 是的 我的标题几乎说明了一切
  • Haskell do 块中如何允许表达式

    在以下代码的第 4 行中 我在 do 块中的两个 IO 操作之间夹有一个表达式 1 doubleX Show x Num x gt x gt IO 2 doubleX x do
  • 我需要从 tomcat 读取带有日志的远程文件

    我需要从 tomcat 读取带有日志的远程文件 如果我可以通过 ssh 访问日志文件夹 最方便的方法是什么 日志查看器可以从远程服务器读取日志 它支持SFTP FTP和Samba 它还提供远程文件系统浏览器 免责声明 我是 OtrosLog
  • 如何用swift 2.0播放背景音乐?

    嗨 我是 swift 和 ios 开发的新手 我的代码一直在工作 直到我更新到 Swift 2 0 我使用了 swift 迁移工具 但我仍然不知道如何排序和修复我的代码 请帮忙 import AVFoundation var backgro
  • 如何列出项目中的所有表格大小

    有没有办法列出 BigQuery 中的所有表大小 我知道这样的命令 select table id sum size bytes pow 10 9 as size from certain dataset TABLES group by 1
  • 插入带有特殊字符的 Hive 表内容 - 制表符空格和换行符

    我正在尝试从 Hive 表中筛选 where 子句 选择带有特殊字符 特别是 Tab 和 NewLine 的数据 我努力了 我努力了like n like t like hex 9 等等 但它们似乎不起作用 还尝试创建一个虚拟表来插入此类数
  • 这个列表操作哪里出了问题?

    我正在用Python 操作列表 In 52 myList 1 2 3 4 5 In 54 c 10 In 55 for i elem1 in enumerate myList b elem1 elem2 for elem2 in range
  • 为什么这个字典定义会引发语法错误? [复制]

    这个问题在这里已经有答案了 可能的重复 lVals 1 08 2011 抛出异常有什么原因吗 我正在定义一个字典 将天数映射到各自的单词 由于某种原因 以下代码引发 SyntaxError 无效标记 并突出显示 08 days 01 fir