python - 为什么我的代码返回两个结果而不是一个
问题描述
我正在为密码控制器编写一个简单的代码,如果字符串包含少于 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"))
解决方案
第一个输出 ( true
or false
) 是因为您的函数在您调用它时正在执行此操作,通过print("true")
or print("false")
。
第二个输出是因为您的函数返回自身:
return password
...并在调用它时打印该返回值(函数):
print(password("gtbd"))
如果您希望它print
打印true
or false
,请不要在函数中打印它,并从函数中返回它:
def password(str):
return len(str) >= 8
或者,如果您希望函数返回字符串而不是布尔值:
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"
推荐阅读
- azure - 在 Powershell 中找不到与参数名称“PasswordPolicies”匹配的参数
- android - 仅将图片分享到 Instagram,图片+文字分享到 WhatsApp、Telegram 和其他应用程序
- javascript - 在某些情况下冷启动会好吗?(云功能)
- python - Websocket 握手 - WebSocket 握手期间出错:“Sec-WebSocket-Accept”标头值不正确
- node.js - Firebase 管理员:代表第三方管理员访问数据库
- php - 我如何永久减去?
- pandas - 即使日期列设置为索引,日期也不起作用
- python - numpy中沿轴的最大值
- python - 附加新列,从不同数据帧(不同长度)的列中识别匹配的日期时间日期
- reactjs - 如何在FullCalendar的反应js中附加和显示具有其他属性的标题?