我在 if 语句中声明了一个名为 length 的变量,该变量检查字符串的长度。之后,我尝试检查长度的值,但收到错误消息,指出它“不与任何值关联”。
我尝试分配长度值1,认为它也可能认为它是正确的,但它不起作用。
欢迎来到 Stack Overflow。
首先,请不要发布代码截图:为什么我不应该上传代码/数据/错误的图片?
其次,您的
length
变量是在 if
块内定义的。如果不满足 if
的条件,则 length
变量永远不会被初始化。您需要在 if
块之前将长度初始化为默认值,或者添加 else
并在那里初始化默认的 length
值
此外,您似乎正在将
length
变量与其他布尔值进行比较。因此,最好将长度设置为布尔值而不是整数
length = False
if len(str) >= 8:
length = True
您还可以简化您的返回语句:如果您只是想返回所有检查是否为真,您可以写:
return all((upper, lower, number, length, special))
如果所有变量都是
True
,则返回 True
,否则返回 False