你的程序既有语法问题又有逻辑问题
第一个问题:
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循环