Python 功能不正常 运行

Python functions not running correctly

我编写了这段代码来将字符串转换为大写和小写,但是当我调用我的函数时,它没有 运行。

# take the input for the string
string = input("Enter any string: ")


def string_upper(up):
    return up.upper()

    print("Uppercase Output: ", string_upper(string))

def string_lower(low):
    return low.lower()
    print("Lowercase Output: ", string.lower(string))

if __name__ == "__main__":
    string_upper(up)
    string_lower(low)

知道如何解决这个问题吗?

错误是:NameError: name 'up' is not defined

在您的代码中,您正在调用 string_upper(up)up 未在任何地方定义,这就是您收到错误的原因。同样的问题是 string_lower().

另一个问题是您从 string_upper()string_lower() returning 但没有在任何地方使用 return 值。除此之外,在 return 语句之后的这两个函数中还有一个 print 语句。因此,这些打印语句永远不会执行,输出中也不会打印任何内容。

如果只想打印输入的大小写,可以修改如下函数-

def string_upper(s):
    print("Uppercase Output: ", s.upper()) # Only printing the values and not returning

def string_lower(s):
    print("Lowercase Output: ", s.lower()) # Same as string_upper

请注意 lower()upper() 不带任何参数。要调用这些函数,您应该这样做 -

if __name__ == "__main__":
    s = input("Enter any string: ")
    string_upper(s) # the functions will print, so no need to capture return values
    string_lower(s)

对于像大写或小写这样的简单转换,您可以完全跳过函数,只需执行 -

if __name__ == "__main__":
    s = input("Enter any string: ")
    print("Uppercase Output: ", s.upper())
    print("Lowercase Output: ", s.lower())

您遇到的一个问题是您在打印输出之前return输入一个值,尝试先打印该值,然后return输入一个值。

return 将阻止函数中的其余代码 运行...

当你在函数中 return 时,这意味着函数已经结束。因此,要打印结果,您可以在 main

中打印值 returned
string = input("Enter any string: ")

def string_upper(up):
    return up.upper()

def string_lower(low):
    return low.lower()

if __name__ == "__main__":
    print("Uppercase Output: ",string_upper(up))
    print("Lowercase Output: ",string_lower(low))