我是初学者中最初学者,我在'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')
答案 0 :(得分:0)
您的语法无效,因为elif
是else 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