新手 在做小甲鱼的作业时遇到了一个问题
print('--------密码安全性检查程序-------')temp=input('请键入您的密码')
iftemp.isdigit()==True and len(temp)<16:
print('您的密码安全评级为:低')
print('请以以下方法提升您的密码安全级别')
print('1,密码必须由数字,字母及特殊字符三种组合')
print('2,密码只能由字母开头')
print('3,密码成都不能低于16位')
while temp.isdigit()==True and len(temp)<16 and '~!@#$%^&*()_=-/,.?<>;:[]{}|\' in temp:
print('您的密码不符合要求')
temp=input('请键入您的新密码')
想要检查输入的密码中是否有~!@#$%^&*()_=-/,.?<>;:[]{}|\这几个字符 但是我一这样打就报错 显示temp后面有个红杠 而且打上去in temp也都变成绿色的了 这是怎么回事呀 求大佬帮帮我{:5_100:} {:5_104:} 错误提示是啥? print('--------密码安全性检查程序-------')
temp=input('请键入您的密码')
iftemp.isdigit()==True and len(temp)<16:
print('您的密码安全评级为:低')
print('请以以下方法提升您的密码安全级别')
print('1,密码必须由数字,字母及特殊字符三种组合')
print('2,密码只能由字母开头')
print('3,密码成都不能低于16位')
while temp.isdigit()==True and len(temp)<16 and '~!@#$%^&*()_=-/,.?<>;:[]{}|\' in temp==False:
print('您的密码不符合要求')
temp=input('请键入您的新密码')
iftemp.isdigit()==True and len(temp)>16:
print('您的密码安全评级为:低')
print('请以以下方法提升您的密码安全级别')
print('1,密码必须由数字,字母及特殊字符三种组合')
print('2,密码只能由字母开头')
while temp.isdigit()==True and len(temp)<16:
print('您的密码不符合要求')
temp=input('请键入您的新密码')
改成这样:
print('--------密码安全性检查程序-------')
temp=input('请键入您的密码')
iftemp.isdigit()==True and len(temp)<16:
print('您的密码安全评级为:低')
print('请以以下方法提升您的密码安全级别')
print('1,密码必须由数字,字母及特殊字符三种组合')
print('2,密码只能由字母开头')
print('3,密码成都不能低于16位')
while temp.isdigit()==True and len(temp)<16 and """~!@#$%^&*()_=-/,.?<>;:[]{}|\"""" in temp:
print('您的密码不符合要求')
temp=input('请键入您的新密码') C:\Users\孙赖\Desktop heidern0612 发表于 2020-9-3 09:50
改成这样:
怎么发图片啊,错误就是有一个红杠 heidern0612 发表于 2020-9-3 09:50
改成这样:
在第10行的最后 谢谢大佬
孙赖 发表于 2020-9-3 10:02
在第10行的最后 谢谢大佬
主要是有个斜杠的转义符,把你后面的冒号内容转义掉了。
用个三引号或者r转义下就好。 孙赖 发表于 2020-9-3 10:01
怎么发图片啊,错误就是有一个红杠
https://fishc.com.cn/forum.php?mod=viewthread&tid=128631&extra=page%3D1%26filter%3Dtypeid%26typeid%3D441 heidern0612 发表于 2020-9-3 10:03
主要是有个斜杠的转义符,把你后面的冒号内容转义掉了。
用个三引号或者r转义下就好。
怎么用r转义啊 这个我还不太会用
孙赖 发表于 2020-9-3 10:11
怎么用r转义啊 这个我还不太会用
看这个:戳我前进
小甲鱼的课后作业也有介绍。 本帖最后由 卡着点学习 于 2020-9-3 10:51 编辑
就是因为有 ‘\’,所以里面的字符就会被转义了,但是如果你输入成这样 r'''\\\*&(^^///''', 前面加 r 并用 '''''' 括起来,就可以把 r 后面的字符完整保留了。我之前也在这题出现 traceback ,一直明白,后来认证看来答案再琢磨才懂 你的程序既有语法问题又有逻辑问题
第一个问题:
while循环条件的第二个and后面有语法问题,这个字符串的最后一个字符是反斜杠为转义字符将引号转义了,导致字符串没有后半个引号作为结尾了,因此出现了你所看到的 in temp都变成了绿色
解决办法:1、将末尾反斜杠向前移,不让其在末尾;2、写双反斜杠
第二个问题:while循环条件的第二个and后面这部分,你想表达的意思是:temp中有这个字符串中的某一个或多个字符吧? 但你写的这种形式意思是该字符串是否是temp的子字符串。正确的方式有两种:一种是遍历一个字符串,然后判断每一个字符是否在另一个字符串中;另一种是求两个字符串交集,若有交集说明有相同字符
#第一种:
flag=False
for i in temp:
if i in '~!@#$%^&*()_=-/\,.?<>;:[]{}|\\':
flag = True
#第二种
list(set(temp).intersection(set('~!@#$%^&*()_=-/\,.?<>;:[]{}|\\')))
第三个问题:
你的程序一旦进入if语句,说明temp中只有数字,没有其他字符,那么while循环条件则医院不可能成立,所以说你的while循环写的位置不对,或者就不应该出现while循环 本帖最后由 疾风怪盗 于 2020-9-3 11:36 编辑
print('--------密码安全性检查程序-------')
temp=input('请键入您的密码')
iftemp.isdigit()==True and len(temp)<16:
print('您的密码安全评级为:低')
print('请以以下方法提升您的密码安全级别')
print('1,密码必须由数字,字母及特殊字符三种组合')
print('2,密码只能由字母开头')
print('3,密码成都不能低于16位')
a='~!@#$%^&*()_=-/\,.?<>;:[]{}|\\'
while temp.isdigit()==True and len(temp)<16 and a in temp:
print('您的密码不符合要求')
temp=input('请键入您的新密码')
主要是这个
a='~!@#$%^&*()_=-/\,.?<>;:[]{}|\\' 疾风怪盗 发表于 2020-9-3 11:05
print('--------密码安全性检查程序-------')
temp=input('请键入您的密码')
iftemp.isdigit()==True ...
不要误导人哈
你直接把人家的字符串修改了。。
人家的字符串中是有反斜杠的,但是没有双引号,你这个修改,字符串中的内容被你修改了,
你写的字符串内容是:~!@#$%^&*()_=-/,.?<>;:[]{}|"
人家的字符串内容是:~!@#$%^&*()_=-/,.?<>;:[]{}|\ sunrise085 发表于 2020-9-3 11:10
不要误导人哈
你直接把人家的字符串修改了。。
人家的字符串中是有反斜杠的,但是没有双引号,你这个 ...
没有啊,pycharm里写的时候是正常的,发在论坛上加了code的代码格式,就会自动把最后的\去掉,所以我把代码格式去掉后发出来的 疾风怪盗 发表于 2020-9-3 11:22
没有啊,pycharm里写的时候是正常的,发在论坛上加了code的代码格式,就会自动把最后的\去掉,所以我把代 ...
说的就是你这个字符串a
你的反斜杠是转义那个双引号的。所以你的字符串内容是没有反斜杠的。
但是人家需要的字符串是有反斜杠的,只是写的不符合语法,导致没有反斜杠了
你的写法没有语法问题,在哪儿都能通过,只是你写的不是题主要求的意思
你仔细看一下我在15楼写的最后两行 本帖最后由 sunrise085 于 2020-9-3 11:47 编辑
疾风怪盗 发表于 2020-9-3 11:22
没有啊,pycharm里写的时候是正常的,发在论坛上加了code的代码格式,就会自动把最后的\去掉,所以我把代 ...
给你个字符串,你说说里面有没有反斜杠
a="\n\'\"\t" 本帖最后由 疾风怪盗 于 2020-9-3 11:36 编辑
sunrise085 发表于 2020-9-3 11:28
说的就是你这个字符串a
你的反斜杠是转义那个双引号的。所以你的字符串内容是没有反斜杠的。
但是人 ...
a='~!@#$%^&*()_=-/\,.?<>;:[]{}|\\'
写成这样应该可以了吧
谢谢提醒 sunrise085 发表于 2020-9-3 11:31
给你个字符串,你说说里面有没有反斜杠
\n \' \t
没有\
有3个双引号也不对的吧
页:
[1]
2