寻找范围。

所以对于家庭作业,我必须输入一个程序,它可以接受两个数字。如果左边的数字之一小于右边的数字,它将增加。如果第二个数字小于第一个数字,则它会减少。如果两个数字相同,那么它应该保持不变。这是我到目前为止编写的程序:


def range_of_numbers (number1, number2):

    if (number2 > number1):

        for num1 in range (1):

            print (2, 3, 4, 5, 6, 7 )

    elif (number1 > number2):

        for num2 in range (1):

            print (19, 18, 17, 16, 15, 14, 13, 12, 11)

    else:

        print (42)

示例调用是: range_of _numbers (2, 8) range_of_numbers (18, 11) range_of_numbers (42, 42) 我猜对了两个,但最后一个一直得到错误的输出,我不知道哪里出了错或哪里出了错要解决这个问题。


慕婉清6462132
浏览 164回答 2
2回答

哈士奇WWW

首先,您对前两个案例所做的事情有点“作弊”,也就是所谓的“硬编码”结果。您不是在编写函数来执行任务,而只是打印您知道应该看到的答案。但具有讽刺意味的是,你离这里很近。这应该做你想做的:def range_of_numbers (num1, num2):&nbsp; &nbsp; if(num1 < num2):&nbsp; &nbsp; &nbsp; &nbsp; for i in range(num2-num1 +1):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(num1+i)&nbsp; &nbsp; elif(num1 > num2):&nbsp; &nbsp; &nbsp; &nbsp; for i in range(num1-num2 +1):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(num1-i)&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; print(num1)如果 num1 或 num 2 更大,我们会找出差异并进行该大小的 for 循环(+1,因为我们的索引为 0 并且我们想在此处包含两端)。然后我们要么向上计数,要么向下计数,这取决于哪个更高。

神不在的星期二

使用 1 或 -1 作为您范围内的步长:def range_of_numbers(a, b):&nbsp; if (a == b):&nbsp; &nbsp; print("same")&nbsp;&nbsp; else:&nbsp; &nbsp; print(*list(range(a, b, (1 if a<b else -1))))测试一下:range_of_numbers(2, 8)range_of_numbers(18, 11)range_of_numbers(42, 42)果然你得到了想要的输出:2 3 4 5 6 718 17 16 15 14 13 12same
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python