我正在做一个计数计时器,它先显示秒,然后显示分钟

2024-10-03 00:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要的输出是

1sec
2sec
3sec
.
.
.
1min
0sec
1sec
.
.
.
2min
0sec

我被困在rn上的代码是

from time import sleep
i = 0
j = 0
def clockpt1 (i):
   while i < 5:
       print(i, "sec")
       i = i + 1
       sleep(1)
   else:
       i = 0
       clockpt2(j)

def clockpt2(j):
   global j
   j += 1
   print(j,"min")

def clock():
   while True:
       clockpt1(i)

clock()

我环顾了stackoverflow,显然使用“全局”术语是最好的,尤其是如果我想从全局变量中提取并更新所述变量,但我似乎无法让它工作

同时,有人能解释为什么“返回”在这种情况下不起作用吗

我得到这个错误

 File "clocktest", line 14
   global j
   ^
SyntaxError: name 'j' is parameter and global ```

Tags: 代码fromimporttimedefsleeprnsec
2条回答

def clockpt2(j):中删除j

from time import sleep
i = 0
j=0
def clockpt1 (i):
       while i < 5:
            print(i, "sec")
            i = i + 1
            sleep(1)
       else:
            i = 0
            clockpt2()

def clockpt2():
        global j
        j += 1
        print(j,"min")
def clock():
       while True:
        clockpt1(i)
clock()

我并不认为clockpt2是必要的,所以我将它嵌入了clockpt1中

from time import sleep
i = 0
j = 0
def clockpt1(i, j):
   while i < 5:
       print(i, "sec")
       i += 1
       sleep(1)
   else:
       i = 0
       j += 1
       print(j, "min", "and", i, "sec")

def clock():
   while True:
       clockpt1(i, j)

clock()

输出:

0 sec
1 sec
2 sec
3 sec
4 sec
1 min and 0 sec
0 sec
1 sec

相关问题 更多 >