我是靠谱客的博主 繁荣金针菇,最近开发中收集的这篇文章主要介绍Python 刷题笔记:这很不python,官方大大能改下吗?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、刷题遇到知识盲区

今天继续在 xue.cn 刷题,意外发现:整数和浮点数先后设为字典的键,会有奇怪的现象!

题目如下:

What gets printed?

confusion = {}
confusion[1] = 1
confusion['1'] = 2
confusion[1.0] = 4

sum = 0
for k in confusion:
    sum += confusion[k]

print(sum)

复制代码

本期推送整理了初学者可能会用到的Python资料,含有书籍/视频/在线文档和编辑器/源
代码,关于Python的安装qun:850973621

2、我的理解VS正确答案

暂时找不到精准词汇来描述这一现象,我于是选择写点代码,尝试确认该现象。

答题时我的理解是,整数 1 ,字符串 ‘1’ 和浮点数 1.0 是不同类型,所以它们会成为该字典的三个键,字典中 3 项的值加和 1 + 2 +4 为 7。但正确答案却是 2 + 4 为 6。由此推论,这是把字典的键 整数 1 和 浮点数 1.0 所指向的视为同一项!

这个推论准确吗?如何验证推论是否准确?

首先,确认整数和浮点数都可以作为字典的键存在

image.png

其次,数值相等的整数和浮点数先后作为字典的键时,会如何?写写代码试试看。

image.png

仔细观察发现,字典的键不会发生改变,字典的值发生覆盖:最先设为字典的键的类型,如果是整数,则总是整数,如果是浮点数,则总是浮点数。只有字典的值会发生覆盖。

这个观察准确吗?再写点代码,检查下字典的键的类型是否发生变化

image.png

image.png

经过上面的探索可知,数学意义上数值相等的整数或浮点数先后设为字典的键时,键的类型会与最初保持一致;但在调用该键时,整数或浮点数都可以,指向的是该字典的同一项!

image.png

原文链接:https://juejin.cn/post/6844903991357210631

最后

以上就是繁荣金针菇为你收集整理的Python 刷题笔记:这很不python,官方大大能改下吗?的全部内容,希望文章能够帮你解决Python 刷题笔记:这很不python,官方大大能改下吗?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部