我试图返回None,并且不在函数外打印任何内容。例如,一旦我调用了doAtest
函数,如果返回True
,我将打印“有效信息”。如果返回False
,我将打印“错误无效字母”。
但是,我要在这里实现的是一旦它进入else
函数中的doAtest
块,我只希望它仅打印“错误:无效格式”。
现在,尽管我返回“无”,但它仍会打印“错误:格式无效”和“错误:字母无效”。我有什么办法可以返回一个Null函数,使它不会在函数中输出任何内容?
def doAtest(user):
#Do some calculations
if(some condition):
if(some condition):
return True
else:
return False
elif(some condition):
if (some condition):
return True
else:
return False
else:
print("Error: Invalid Format")
return None
user_raw = input("Enter your employee code :")
if doAtest(user_raw): # Here prints True condition
print("Valid Information")
else:
print("Error: Invalid Letter") # Here prints False condition
答案 0 :(得分:0)
正如@Patrick Haugh在评论中解释的那样,None
被认为是“虚假的”。因此,使用以下代码,如果doAtest()
返回None
,则将执行else
块:
if doAtest(user_raw):
print("Valid Information")
else:
print("Error: Invalid Letter")
您可以检查结果是否is True
,然后检查是否is not None
,而不使用else
。
此外,您可能希望通过添加将处理print()
的{{1}}子句来组合对else
的所有调用,而不是在None
函数中处理它
doAtest()