我想知道是否可以将条件语句放在函数中,根据执行的条件,它会移动到另一个函数上。
例如:
def main():
animal = input("Enter an animal name: ")
if animal == cow:
cow()
else:
other()
def cow():
print("You entered cow")
def other():
print("You didn't enter cow")
main()
答案 0 :(得分:1)
是。你的例子几乎就是你如何做到的。但是,您的代码中存在一个问题,那就是您的if
条件。您需要检查animal
返回的值是否为字符串,而不是当前正在执行的函数或变量。
您可以将其更改为:
if animal == "cow":
答案 1 :(得分:0)
是的,您可以在函数内部实现一个控制结构,该结构可以确定要使用的函数。我会将您的代码更改为:
def main():
animal = input("Enter an animal name: ")
if (animal == 'cow'):
cow()
else:
other()
def cow():
print("You entered cow")
def other():
print("You didn't enter cow")
main()
这将允许输入与cow(字符串到字符串比较)进行正确比较。
答案 2 :(得分:0)
是的,您拥有的代码几乎是完美的。唯一的问题是,当你进行比较时,你需要在牛周围加上引号,以便python知道你正在尝试比较字符串" cow"而不是一些未定义的变量牛。此外,如果要使其不区分大小写,可以对动物变量使用.lower()方法。以下代码正常运行:
def main():
animal = input("Enter an animal name: ")
if animal.lower() == "cow":
cow()
else:
other()
def cow():
print("You entered cow")
def other():
print("You didn't enter cow")
main()
答案 3 :(得分:0)
试试这个要短得多:
def main():
animal = input("Enter an animal name: ")
cow() if animal == 'cow' else other()
def cow():
print("You entered cow")
def other():
print("You didn't enter cow")
main()
输出:
Enter an animal name: cow
You entered cow
Enter an animal name: snake
You didn't enter cow