Python使用while和if

时间:2016-12-01 18:01:39

标签: python time

minutes = 0
def sec_to_min():
    seconds = int(input("How many seconds you want to convert?"))
    while True:
        if seconds >= 60:
            seconds =-60
            minutes =+1
            print(minutes)
            return True
        else:
            print(seconds,"sec")
            return False

sec_to_min()

当我输入60或更多时,它将仅打印" 1",仅此而已。我的 if 无效。我试图移动"秒"在功能面前它却给了我一个错误,比如"本地变量'秒'在分配之前引用"

2 个答案:

答案 0 :(得分:0)

我将总结一下:

我们认为你混淆了两种陈述:

seconds = -60
seconds -= 60

第一个删除之前的值,并指定一个新值 -60 ;第二个相当于

seconds = seconds - 60

您的代码流表明第二个代码是您所需要的;同样的变化适用于分钟

while 逻辑中存在冲突:虽然循环控件似乎想要重复循环一段时间,但在第一次迭代中它会被一个返回声明或其他。你无法到达循环的底部并返回第二次迭代。

为什么要返回布尔值?目前尚不清楚,因为您的主要代码不使用它。如果确实需要返回值,可能需要在循环中设置变量,然后在循环之后返回该变量

答案 1 :(得分:0)

def sec_to_min():
    minutes=0
    seconds = int(input("How many seconds you want to convert?"))  
    while True:    
        if seconds>=60:
            while seconds>=60:
                seconds =seconds-60
                minutes+=1
            print(minutes)
            break
        else:
            print(seconds,"sec")
            break
sec_to_min()

问题是如果只运行一次+符号全部倒置