【问题标题】:How do I add printed statements into a dictionary in the form of a tuple?如何以元组的形式将打印的语句添加到字典中?
【发布时间】:2020-09-08 19:26:50
【问题描述】:

我正在尝试解决一个家庭作业问题,该问题涉及将布尔值与分类系统一起添加到新字典中。可能是我没有清楚地理解这个问题,但是,我真的很难按照测试用例的显示方式来格式化结果。

问题描述如下:

问题 1(20 分):

编写一个名为 number_classify 的函数,它接受最大正整数 并返回一个字典,将整数映射到布尔值和整数值的元组。

测试用例 #1:从 2 到 6 对所有数字进行分类。

对于从 2 到最大值(包括最大值)的每个数字,该函数将该数字添加到字典中,并为其分配一个格式为 (is_prime, classification) 的元组,其中:

is_primeTrue,如果数字是素数(只能被它自己和一整除),如果不是,False

Classification 如果数字是完美的,则为 0,如果数字不足,则为 -1,或 1 如果数量很多(参见第 2.1.6 和 2.1.7 节的定义 这些术语和确定数字分类的部分解决方案。

建议但不是必需的,通过创建两个来简化此问题 辅助功能。第一个将整数作为输入,如果数字返回 True 是素数,否则为假。第二个应该实施指示的解决方案 分类字段 (2.1.7) 并返回适当的值(0、1 或 -1)。

...这是我拥有的当前代码:

def is_prime(num):
    if (num <= 1):
        return False
    for i in range(2,num):
        if (num % i == 0):
            return False
    return True


def number_solution(num):
    divisor = 1
    sum_of_divisors = 0
    while divisor < num:
        if num % divisor == 0:
            sum_of_divisors = sum_of_divisors + divisor
            divisor = divisor + 1

    if number == sum_of_divisors:
        return 0
    elif number < sum_of_divisors:
        return 1
    elif number > sum_of_divisors:
        return -1


def number_classify(max_int):
    a_dict = {}

    for x in range():
        if is_prime(max_int):
            print("True")
        else:
            print("False")

    return a_dict

如何按照测试用例所示格式化输出?

【问题讨论】:

    标签: python python-3.x list dictionary tuples


    【解决方案1】:

    用以下方式完成您的 number_classify:

    def number_classify(max_int): 
        a_dict = {}
    
        for x in range(1, max_int+1):  # loops 1, 2 ... max_int
          a_dict[x] = (is_prime(x), number_solution(x)) # desired tuple
    
        return a_dict
    

    【讨论】:

    • 你太棒了!非常感谢!
    • @toeknee——很高兴我能帮上忙。如果有帮助don't forget on Stack overflow what to do when someone answers my question
    • 我可以问你一个后续问题吗?我制作了辅助函数 number_ 解决方案,以便它将我的数字分类为 0、1 或 -1。我可以为元组调用它而不是 number_classify 吗?
    • @toeknee——实际上你在我的代码中指出了一个“错字”。我的意思是打电话给 number_solution。我更正了我的帖子。谢谢。
    • 我是这么认为的!但是,我想确定一下。我现在只是在学习如何编码!再次感谢你!你帮了大忙!
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多