关于零基础学python第14讲动动手0的一个问题!(小甲鱼给的答案是否存在不严谨?)
55.# 打印结果56.while 1 :
57. print("您的密码安全级别评定为:", end='')
58. if flag_len == 1 or flag_con == 1 :
59. print("低")
60. elif flag_len == 2 or flag_con == 2 :
61. print("中")
62. else :
63. print("高")
64. print("请继续保持")
65. break
上面是小甲鱼给出答案的一部分代码,假如输入的密码为:‘+=&~’,那么输出的结果会是“低”。但这个密码与题目要求里的:
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
第1点要求不符。
这里是否存在问题呢?是否应该还要加多一个判定:当密码长度小于等于8位时,不能有特殊字符存在。
求各位同学解答!! 1. 密码由单纯的数字或字母组成
2. 密码长度小于等于8位这两个条件是或的关系 永恒的蓝色梦想 发表于 2020-4-28 19:13
这两个条件是或的关系
那我又有一个问题了:假如输入的密码是:‘+++++++++’。它的等级是多少呢?如果按照小甲鱼的程序判断,它是“低”等级;但这个密码显然跟题目要求是不符合低等级的。 一文先生 发表于 2020-4-28 19:54
那我又有一个问题了:假如输入的密码是:‘+++++++++’。它的等级是多少呢?如果按照小甲鱼的程序判断, ...
代码给我 永恒的蓝色梦想 发表于 2020-4-28 19:57
代码给我
1.# 密码安全性检查代码
2.#
3.# 低级密码要求:
4.# 1. 密码由单纯的数字或字母组成
5.# 2. 密码长度小于等于8位
6.#
7.# 中级密码要求:
8.# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
9.# 2. 密码长度不能低于8位
10.#
11.# 高级密码要求:
12.# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
13.# 2. 密码只能由字母开头
14.# 3. 密码长度不能低于16位
15.
16.symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
17.chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
18.nums = '0123456789'
19.
20.passwd = input('请输入需要检查的密码组合:')
21.
22.# 判断长度
23.length = len(passwd)
24.
25.while (passwd.isspace() or length == 0) :
26. passwd = input("您输入的密码为空(或空格),请重新输入:")
27.
28.if length <= 8:
29. flag_len = 1
30.elif 8 < length < 16:
31. flag_len = 2
32.else:
33. flag_len = 3
34.
35.flag_con = 0
36.
37.# 判断是否包含特殊字符
38.for each in passwd:
39. if each in symbols:
40. flag_con += 1
41. break
42.
43.# 判断是否包含字母
44.for each in passwd:
45. if each in chars:
46. flag_con += 1
47. break
48.
49.# 判断是否包含数字
50.for each in passwd:
51. if each in nums:
52. flag_con += 1
53. break
54.
55.# 打印结果
56.while 1 :
57. print("您的密码安全级别评定为:", end='')
58. if flag_len == 1 or flag_con == 1 :
59. print("低")
60. elif flag_len == 2 or flag_con == 2 :
61. print("中")
62. else :
63. print("高")
64. print("请继续保持")
65. break
66.
67. print("请按以下方式提升您的密码安全级别:\n\
68. \t1. 密码必须由数字、字母及特殊字符三种组合\n\
69. \t2. 密码只能由字母开头\n\
70. \t3. 密码长度不能低于16位'")
71. break 一文先生 发表于 2020-4-28 20:02
1.# 密码安全性检查代码
2.#
3.# 低级密码要求:
这样发不行啊,你要人一个个把你的前面数字给删了嘛。。。。
如何正确地发代码、上传图片和附件?
https://fishc.com.cn/thread-52272-1-1.html
(出处: 鱼C论坛)
一文先生 发表于 2020-4-28 20:02
1.# 密码安全性检查代码
2.#
3.# 低级密码要求:
只能说你是杠精
不符合中级密码和高级密码的要求,不是低级密码是什么? Twilight6 发表于 2020-4-28 20:04
这样发不行啊,你要人一个个把你的前面数字给删了嘛。。。。
如何正确地发代码、上传图片和附件?
这是它的代码# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
# 判断长度
length = len(passwd)
while (passwd.isspace() or length == 0) :
passwd = input("您输入的密码为空(或空格),请重新输入:")
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
# 判断是否包含特殊字符
for each in passwd:
if each in symbols:
flag_con += 1
break
# 判断是否包含字母
for each in passwd:
if each in chars:
flag_con += 1
break
# 判断是否包含数字
for each in passwd:
if each in nums:
flag_con += 1
break
# 打印结果
while 1 :
print("您的密码安全级别评定为:", end='')
if flag_len == 1 or flag_con == 1 :
print("低")
elif flag_len == 2 or flag_con == 2 :
print("中")
else :
print("高")
print("请继续保持")
break
print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位'")
break 永恒的蓝色梦想 发表于 2020-4-28 20:09
这是它的代码
。。兄弟你是如何做到的
一文先生 发表于 2020-4-28 19:54
那我又有一个问题了:假如输入的密码是:‘+++++++++’。它的等级是多少呢?如果按照小甲鱼的程序判断, ...
不需要太过严谨,小甲鱼的代码是拿来练习的,肯定可以加以修饰,如果你要考虑这么多,那就自己写出来,这是练习题,不是叫你做项目哈。而且你这个八个加号重复了8次,肯定是低等级吧 Twilight6 发表于 2020-4-28 20:13
。。兄弟你是如何做到的
交互式中exec("l=[]\n\ntry:\n while True:\n l.append(input())\nexcept:pass\n\nfor i in l:\n print(i.replace(' ',' '))")然后把他发的东西输进去,Ctrl+c,就可以看到输出了 永恒的蓝色梦想 发表于 2020-4-28 20:23
交互式中然后把他发的东西输进去,Ctrl+c,就可以看到输出了
{:10_284:}一脸懵逼 永恒的蓝色梦想 发表于 2020-4-28 20:09
这是它的代码
首先谢谢帮我复制了源代码进来,我是新手,不熟操作。{:5_109:}
然后,我不是杠精啦.. 因子在做题时候就被题目的要求所困惑了,想了好久,最后在看小甲鱼给出的答案时,发现了有个矛盾的地方:确实假如输入的密码是‘+++++++++’这个的话,程序最终给出的结果跟原题目给出的要求是有出入的,我才困惑。(要么题目不够严谨,要么程序还未完善好,我是这么觉得的,就有点困惑)
最后还是非常感谢大神能抽时间帮我解答 Twilight6 发表于 2020-4-28 20:18
不需要太过严谨,小甲鱼的代码是拿来练习的,肯定可以加以修饰,如果你要考虑这么多,那就自己写出来,这 ...
+号是9次哦!你说这属于低级密码还是中级密码呢? 一文先生 发表于 2020-4-28 20:39
+号是9次哦!你说这属于低级密码还是中级密码呢?
既然不符合中级,那就是低级 永恒的蓝色梦想 发表于 2020-4-28 20:40
既然不符合中级,那就是低级
然而,'+++++++++'(9个+号),这个密码抽出来考虑它是符合题目中:
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
的第二点要求的。如果上面2点是或的关系,则上面密码是属于中级密码... 一文先生 发表于 2020-4-28 20:46
然而,'+++++++++'(9个+号),这个密码抽出来考虑它是符合题目中:
# 中级密码要求:
# 1....
???你是真的杠
直接当低级密码要求不存在,非中级密码即低级密码 永恒的蓝色梦想 发表于 2020-4-28 20:50
???你是真的杠
直接当低级密码要求不存在,非中级密码即低级密码
这怎么会是杠呢?在实事求是啊。
那我问阿:中级密码要求中的两点,是和关系还是或关系?
1.如果是和关系,那么‘+++++++++’则不是中级,即低级密码。但这时候低级密码要求的两点如果同样是和关系,就有另外一个问题:举例:密码‘+++’也就不是低级密码。
2.如果是或关系,‘+++++++++’正是属于中级密码啊 一文先生 发表于 2020-4-28 21:13
这怎么会是杠呢?在实事求是啊。
那我问阿:中级密码要求中的两点,是和关系还是或关系?
1.如果是和关 ...
应该是和关系吧~别在意这么多了,先继续学下去,这练习题真的只是练习作用,你能加以修改的更加完美那不就是小甲鱼所希望的举一反三嘛?所以说,认真写完这个代码,继续看下一课时吧 一文先生 发表于 2020-4-28 21:13
这怎么会是杠呢?在实事求是啊。
那我问阿:中级密码要求中的两点,是和关系还是或关系?
1.如果是和关 ...
直接输出“不合法”
页:
[1]
2