gpt4 book ai didi

python - 倒计时然后向上

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:51 24 4
gpt4 key购买 nike

我需要编写一个递减计数的代码,递减 2 步直到达到零,然后在每个整数之间递减 1 步再次递增。例如,如果我定义一个函数 updown(n) 并编写 updown(7),它应该给出:

6 4 2 0 1 2 3 4 5 6 7

这是我的尝试:

def updown(n,m):
while n>=1:
print(n-1)
n=n-m

while n<=7:
print(n)
n=n+1

它需要 m 步,在我的例子中 m=2。当我运行代码时,我得到了

 6 4 2 0 -1 0 1 2 3 4 5 6 7

如您所见,出现了一个负整数,这是错误的。另外,我的代码中有 n<=7,我知道这是错误的。它应该对我插入的任何 n 都有效,并将该值用作上限。

我被困住了,不知道该怎么办。它应该是一个递归代码,并且不得使用内置函数。原因是我想了解基础知识并从那里继续,没有任何捷径。

最佳答案

你不需要任何 while 循环,

你可以像这样使用range

>>> range(6,-2,-2) + range(1,8)
[6, 4, 2, 0, 1, 2, 3, 4, 5, 6, 7]

功能:

def updown(n, m):
return range(n -1, -1 * m, -2) + range(1,n+1)

输出:

[6, 4, 2, 0, 1, 2, 3, 4, 5, 6, 7]

range(start, stop[, step])

This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else ValueError is raised).

关于python - 倒计时然后向上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35702010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com