首页 > 解决方案 > 关于python的w3w字典练习题的问题

问题描述

对于其中一个练习中的词典来说,这是一个非常基本的问题。问题是:编写一个 Python 脚本来生成并打印一个字典,该字典包含一个 (x, x*x) 形式的数字(介于 1 和 n 之间)。

这是我的代码:

import random
def dict_generate():
    n = int(input("Please enter an integer:"))
    dic = {}
    for x in range(n):
        num = random.randrange(1,n)
        key = num
        value = num*num
        dic[key] = value
    
    print(dic)

dict_generate()

但是,当我运行它时,它似乎跳过了几次迭代,所以最终结果是我得到了一个字典,其中的值比我输入的数字要小。例如,我输入了 5,但我的输出不是 5 组键和值,而是: {3: 9, 1: 1, 2: 4}

通过 python 导师运行这段代码,问题似乎是值没有被插入到字典中。我似乎无法理解为什么。如果有人可以解释,那将非常有帮助,谢谢。(我知道还有很多其他方法可以完成这个问题,但我试图了解我哪里出错了。)

标签: pythondictionary

解决方案


 num = random.randrange(1,n)
 key = num

由于您将密钥用作随机数,因此它可能会一次又一次地出现与密钥相同的数字,因此您的字典中的密钥少于 5 个。

在此处输入图像描述


推荐阅读