首页 > 解决方案 > 为什么以下 python 代码打印 4 行而不是 3 行?

问题描述

def beauty():
    print("Belle")
    return "Beast"

def gaston():
    if beauty() == "Beast":
        print("No one’s as slick")
    elif beauty() == None:
        print("No one’s as quick")
    if beauty() == "Belle":
        print("What a guy")
    else:
        print("Belle")  

gaston()

谁能解释一下为什么上面的代码打印 4 行而不是 3 行?

标签: pythonfunctionif-statement

解决方案


当您检查 ifbeauty()是否等于 时text,正在调用该函数。而且你有多个if/elif语句......所以油膏被多次调用。所以我建议调用一次函数并将其存储在一个变量中。

def beauty():
    print("Belle")
    return "Beast"

def gaston(butty):
    if butty == "Beast":
        print("No one’s as slick")
    elif butty == None:
        print("No one’s as quick")
    if butty == "Belle":
        print("What a guy")
    else:
        print("Belle")  

butty = beauty()
gaston(butty)

推荐阅读