ELIF声明

时间:2016-04-26 19:52:00

标签: python python-3.x if-statement

我已经完成了这个程序,但是我在main的结尾处一直得到一个无效的语法,无法弄清楚我做错了什么。我试图让elif获得更大数字的倍数,并指示较小整数分成较大数的次数。此外,在我的else语句中,较小的整数不是较大的整数的倍数,程序将显示整数除数和余数,当较大的除以较小的整数。代码如下:

def main():
    num1 = int(input('Enter any numbers greater than 2:'))
    num2 = int(input('Enter any number less than num1:'))
    if num2 >= num1:
        print("Bad_Input.Try_Again")
    elif num1 % num2 == 0:
        quotient = num1 / num2
        print(quotient)
    else:
        print(num1 / num2)
        print(num1 % num2)
        print(num1,'divides by',num2,'=','and remainder',divmod(num1 / num2)

main()

任何人都可以告诉我为什么在尝试执行程序时仍然会出现无效的语法错误。

2 个答案:

答案 0 :(得分:1)

您的代码缺少一个右括号,而divmod函数是一个参数:

print(num1,'divides by',num2,'=','and remainder',divmod(num1 / num2)

应该是

print(num1,'divides by',num2,'=','and remainder',divmod(num1, num2))

完整代码:

def main():
    num1 = int(input('Enter any numbers greater than 2:'))
    num2 = int(input('Enter any number less than num1:'))
    if num2 >= num1:
        print("Bad_Input.Try_Again")
    elif num1 % num2 == 0:
        quotient = num1 / num2
        print(quotient)
    else:
        print(num1 / num2)
        print(num1 % num2)
        print(num1,'divides by',num2,'=','and remainder',divmod(num1, num2))

main()

答案 1 :(得分:0)

print(num1,'divides by',num2,'=','and remainder',divmod(num1 / num2)

应该是

print(num1,'divides by',num2,'=','and remainder',divmod(num1, num2))

注意丢失的最后一个结束括号。因此,当python解释器读取文件时,它认为下一个main()语句也是print语句的一部分。