繁体   English   中英

为什么我的代码返回两个结果而不是一个

[英]Why is my code returning two results instead of one

我正在为密码 controller 编写一个简单的代码,如果字符串包含少于 8 个字符,则返回 false,如果字符串包含 8 个或更多字符,则返回 false。 但我得到两个响应,一个是真或假,另一个结果是 <function password at 0x00000272BA8B7F70>。

这是我写的代码:

def password(str):
    if len(str) >= 8:
        print("true")
    else:
        print("false")
    return password
print(password("gtbd"))

第一个 output ( truefalse )是因为您的 function 在您通过print("true")print("false")调用它时正在执行此操作。

第二个 output 是因为您的 function 返回自身:

return password

...并在调用它时打印该返回值(函数):

print(password("gtbd"))

如果您希望该print打印truefalse请不要在 function 中打印它,并从 function 中返回它:

def password(str):
    return len(str) >= 8

或者,如果您希望 function 返回字符串而不是 boolean:

def password(s):
    return str(len(s) >= 8)

(请注意,我必须更改参数的名称。)

如果你真的想要小写:

def password(s):
    return str(len(s) >= 8).lower()

或者,当然,手动进行:

def password(s):
    if len(s) >= 8:
        return "true"
    return "false"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM