加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 倒计时然后再向上

发布时间:2020-12-20 11:49:46 所属栏目:Python 来源:网络整理
导读:我需要编写一个倒计时的代码,逐步减少直至达到零,然后在每个整数之间再次向上计数. 作为一个例子,如果我定义一个函数updown(n)和write 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=
我需要编写一个倒计时的代码,逐步减少直至达到零,然后在每个整数之间再次向上计数.
作为一个例子,如果我定义一个函数updown(n)和write 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插入都有效,并将该值用作上限. 我被困住了,不知道该怎么办.它应该是一个递归代码,不应使用内置函数.原因是我想了解基础知识,并从那里继续,没有任何捷径.

解决方法

我认为通过使用n-1,你会使事情变得更加复杂.

只需首先计算小于给定数字的最大偶数:

n2 = n-(n%2)

或更一般(对于m):

nm = n-(n%m)

下次使用range

for i in range(nm,-1,-m):
    print(i)

最后打印0的所有数字,包括n:

for i in range(n+1):
    print(i)

或者把它们放在一起:

def updown(n,m):
    nm = n-(n%m)
    for i in range(nm,-m):
        print(i)
    for i in range(n+1):
        print(i)

根据我自己的经验,修改变量是相当不灵活的. Python旨在有点声明:如果变量可以有不同的值来迭代它,则使用for循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读