陷入无限循环

ale*_*dis 1 python

我正在尝试在python中创建一个程序,将十进制数转换为十六进制数.当我运行程序时,它给了我正确的转换,但它在无限循环上运行.我不确定无限循环在哪里发生.这是我的代码:

def remainderToHex(remainder):
    if remainder <= 9:
        remainder = str (remainder)
    elif remainder == 10:
        remainder = "A"
    elif remainder == 11:
        remainder = "B"
    elif remainder == 12:
        remainder = "C"
    elif remainder == 13:
        remainder = "D"
    elif remainder == 14:
        remainder = "E"
    elif remainder == 15:
        remainder = "F"
    return remainder

def decToHex(decNum):
    hexNum = ""
    quotient = decNum
    divNum=16
    if quotient == 0:
        hexNum = 0
    while quotient > 0:
        remainder = quotient % divNum
        convertedHex= remainderToHex(remainder)
        quotient = int (quotient / divNum)
        hexNum = convertedHex + hexNum 
    return hexNum

def main():
    decNum=int(raw_input("Please enter a non negative number OR enter -1 to quit: "))
    while decNum >= -1:
        hexNumber = decToHex(decNum)
        print decNum, "convered to hex is: ", hexNumber
    print "Thank you" 
Run Code Online (Sandbox Code Playgroud)

谢谢!

pai*_*ima 8

你在做while decNum >= -1.假设用户没有输入-1马上蝙蝠,那么decNum永远不会变得小于-1,while循环将永远不会结束.相反,使用if语句.如果用户输入-1,则结束该过程,否则进行转换.

正如已经指出的那样,>=应该是>