【发布时间】:2013-11-05 03:41:59
【问题描述】:
这可以缩短/改进吗?我正在尝试在 python 中制作密码检查器。
是否可以将 if 放入 for 循环中?如果有,怎么做?
pw = input("Enter password to test: ")
caps = sum(1 for c in pw if c.isupper())
lower = sum(1 for c in pw if c.islower())
nums = sum(1 for c in pw if c.isnumeric())
scr = ['weak', 'medium', 'strong']
r = [caps, lower, nums]
if len(pw) < 6:
print("too short")
elif len(pw) > 12:
print("too long")
if caps >= 1:
if lower >= 1:
if nums >= 1:
print(scr[2])
elif nums < 1:
print("your password is " + scr[1])
elif lower < 1:
print("your password strength is " + scr[0])
elif caps < 1:
print("your password strength is " + scr[1])
感谢您的任何建议:D
【问题讨论】:
-
codereview.stackexchange.com 应该是这个位置。这两个问题的答案我确定是肯定的,它可以缩短和改进
-
scr[1]绝对没有比'medium'更简单或更有意义。 (如果你想让你的字符串可本地化......有更好的方法来做到这一点。) -
这个问题似乎是题外话,因为它是关于审查工作代码。请改用Code Review。
-
@abarnert:我怀疑我们对什么是“工作代码”有不同的看法:)
-
@TimPietzcker:嗯,他假设他的代码是正确的,只是要求我们简化它。