Python 我的elif语句的语法有什么问题?
我是初学者中最初级的一个,我收到了一条关于“elif”后面分号的语法错误消息为什么?另外,代码是否应该以其他方式工作Python 我的elif语句的语法有什么问题?,python,python-3.x,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(inpu
#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')
您的语法无效,因为
elif
是else if
的缩写,并且您没有要测试的条件。试着用else:
就可以了
另外,不要与True
进行比较。就让这个表达独立起来吧。这不是C或Java,因此没有关于条件的参数:
if(valid(n)== True):
print(n,'is valid')
变成:
if valid(n):
print(n, 'is valid')
以下是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')
只是提供了一个更简洁的解决方案(和pythonic)
elif
s需要一个条件。您可以使用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
elif
也需要一个条件;你想的是else
<代码>elif什么,确切地说@Evert,但也不能有两个或s。对于elif
,您必须提到一个条件,如valid(n)=False
@jornsharpe,我知道;但是我猜第二个elif
应该缩进。你不能多次使用else:
。我认为这只是问题的格式错误。里面有一个缩进的if
,可能是;我没想到。如果不是这样的话,我建议你在回答中明确这一点。