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
添加回答
舉報