函数在 Python 中继续执行 else 语句

Function keeps executing else statement in Python

def capitalize(string, *restToLower):
    if (restToLower == True):
        print(string.capitalize())
                    
    else: print(string[0].upper() + string[1:])

def capitalize(string, *restToLower):
    if (restToLower == True):
        print(string.capitalize())
                    
    print(string[0].upper() + string[1:])

上面提到的函数总是运行else语句。

我创建了这个函数来获取一个字符串并将其转换为 capitalize 格式。

我想要的

if capitalize('apple') - “苹果”

如果capitalize('aPPle') - “APPle”

如果 capitalize('aPPle', restToLower = True')capitalize('aPPle', True) - “Apple”

这不是您提供的方式 default values for arguments。如果您希望它默认为 False,则需要执行 def capitalize(string, restToLower=False)。按照您定义它的方式,restToLower 是一个 tuple,其中包含您在第一个参数之后输入的任意数量的参数,因此它将 永远不会 等于 True.

作为实验:

def capitalize(string, *restToLower):
    print(restToLower)

capitalize("abcd")              # ()
capitalize("abcd", True)        # (True,)
capitalize("abcd", True, False) # (True, False)
capitalize("abcd", True, 1234)  # (True, 1234)

你可以试试这个,但你总是必须输入布尔值 True 或 False。

def capitalize(string, restToLower: bool):
    if restToLower == True:
        return string.capitalize()
    else:
        return string[0].upper() + string[1:]


var = capitalize('aPPle', True)
print(var)