【问题标题】:Password checker error - python密码检查器错误 - python
【发布时间】:2017-12-03 10:32:54
【问题描述】:

我正在尝试用 Python 制作一个简单的密码检查器。如果密码超过 1 个大小写字母并且长度超过 8 个字符,则它应该接受密码。但是当我运行它时,我从if 语句中得到了“不继续”选项。 if 语句有问题吗?

passwd1 = input("enter your password>>>")
passwd2 = input("re-enter your password>>>")

lower=0
upper=0
for i in passwd1:
    if(i.islower()):
        lower=lower+1
    elif(i.isupper()):
        upper=upper+1

if lower + upper >= 8 and lower<0 and upper<0 and passwd1 == passwd2:
    print("continue")
else:
    print("do not continue")

谢谢

【问题讨论】:

  • 请确保您使用正确的脚本缩进。例如,循环内部条件的缩进在ifelse 分支之间不一致。
  • 例如,lower&lt;0 怎么可能是真的?鉴于您从 lower=0 开始并且只会增加它,这似乎......不太可能。
  • @clemens - 您修改了代码块的缩进 - 这可能是 OP 正在处理的问题 - 将来,请不要在未先验证它的情况下从代码块进行编辑确实是 OP 的意图。
  • @Lix:不,我不会改变缩进深度。这不应该是错误。还有一些其他错误,例如lower + upper &gt;= 8
  • @Lix:我没有说我没有改变缩进。我只是说它没有改变程序的语义。在这个程序中,你不能改变 for 循环的缩进,因为每个块只包含一个语句。

标签: python


【解决方案1】:

你总是会去else块,因为这个条件and lower&lt;0 and upper&lt;0永远不会满足,因为你开始较低,上限为0,并且只有在以下情况下才会增加它们:lower=lower+1upper=upper+1, 为什么你仍然需要这个条件???我看不出这个条件的目的,删除这个条件and lower&lt;0 and upper&lt;0,它会起作用的!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-29
    • 2015-01-05
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2016-12-04
    • 1970-01-01
    相关资源
    最近更新 更多