2 回答
TA贡献1799条经验 获得超6个赞
首先,您对前两个案例所做的事情有点“作弊”,也就是所谓的“硬编码”结果。您不是在编写函数来执行任务,而只是打印您知道应该看到的答案。
但具有讽刺意味的是,你离这里很近。
这应该做你想做的:
def range_of_numbers (num1, num2):
if(num1 < num2):
for i in range(num2-num1 +1):
print(num1+i)
elif(num1 > num2):
for i in range(num1-num2 +1):
print(num1-i)
else:
print(num1)
如果 num1 或 num 2 更大,我们会找出差异并进行该大小的 for 循环(+1,因为我们的索引为 0 并且我们想在此处包含两端)。然后我们要么向上计数,要么向下计数,这取决于哪个更高。
TA贡献1963条经验 获得超6个赞
使用 1 或 -1 作为您范围内的步长:
def range_of_numbers(a, b):
if (a == b):
print("same")
else:
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 7
18 17 16 15 14 13 12
same
添加回答
举报