我的elif语句的这种语法有什么问题?

时间:2017-02-11 20:59:52

标签: python python-3.x

我是初学者中最初学者,我在'elif'之后得到分号的语法错误信息为什么会这样?此外,代码应该工作吗?

#a - this program uses function valid(x) to determine if the user's input is a positive, non-zero number while imposing a limit of 3 attempts

def valid(x):
    return (x > 0)
n = int(input('Please input a positive non-zero number: '))
if(valid(n)== True):
    print(n,'is valid')
elif:
    print(u = int(input('error please input a positive non-zero number: ')))
    if(valid(u)== True):
        print(u,'is valid')
elif:
    print(m = int(input('error please input a positive non-zero number: ')))
    if(valid(m)== True):
            print(m,'is valid')

3 个答案:

答案 0 :(得分:0)

您的语法无效,因为elifelse if的缩写,您没有条件可以测试。请尝试使用else:

另外,请勿与True进行比较。让表达独立。这不是C或Java,因此没有条件限制:

if(valid(n)== True):
    print(n,'is valid')

变为:

if valid(n):
    print(n, 'is valid')

答案 1 :(得分:0)

以下是python中if..else条件的正确语法。你是在关注这个吗?

if expression1:
   statement(s)
elif expression2:
   statement(s)
elif expression3:
   statement(s)
else:
   statement(s)

elif 语句允许您检查多个表达式为TRUE,并在其中一个条件评估为TRUE时立即执行代码块。在您的代码段中,没有要在 elif 语句中执行的表达式!

我相信你需要的东西如下。

# This program uses function valid(x) to determine if the user's input is positive, non-zero number while imposing a limit of 3 attempts
def valid(x):
    return (x > 0)

n = int(input('Please input a positive non-zero number: '))
if(valid(n)== True):
    print(n,'is valid')
else:
    n = int(input('error please input a positive non-zero number: '))
    if(valid(n)== True):
        print(n,'is valid')
    else:
        n = int(input('error please input a positive non-zero number: '))
        if(valid(n)== True):
            print(n,'is valid')

答案 2 :(得分:0)

提供更简洁的解决方案(和pythonic)。 elif需要一个条件。您可以使用for循环来检查密码三次。如果密码正确,则循环结束。

def valid(x):
    return x > 0

for i in range(3):
    n = input('Please input a positive non-zero number: ')
    if valid(n):
        print(n, 'is valid')
        break