这个if-else条件可以用任何运算符替换吗?或者可以用更少的代码编写.如果是,那怎么办



这个if-else条件可以用任何运算符替换吗?或者可以用更少的代码编写。如果是,那怎么办?

if workingPeriod<3 and gender=="male": 
return f"He is not experienced"        
elif workingPeriod<3 and gender =="female":
return f"She is not experienced"        
elif workingPeriod >=3 and gender =="male":            
return f"He is experienced"        
elif workingPeriod >=3 and gender =="female":            
return f"She is experienced"        
else:   
pass  

你有两种情况(男性或女性以及是否有经验(。您正试图解析同一if语句块中的所有条件组合,因此有4个分支,因为有4个组合。

您可以简化为分别解决每个条件,而不是4个分支。这样可以减少代码的复杂性和行数。

prefix = "He" if gender == "male" else "She"
return prefix + (" is experienced" if workingPeriod > 3 else " is not experienced")

假设除了'male''female'之外没有其他性别(如果情况并非如此,则不想返回None(:

return f'{"He" if gender=="male" else "She"} is {"not " if workingPeriod<3 else ""}experienced'

如果你确实有更多的性别(即pass情况`(:

return f'{"He" if gender=="male" else "She" if gender=="female" else "They"} is {"not " if workingPeriod<3 else ""}experienced'

相关内容

最新更新