hughsf 发表于 2020-11-17 21:07:18

20讲课后练习关于寻找密码的问题

关于寻找密码的问题,我代码是这样写的:for i in range(len(str1)):
    if str1.islower() and str1.isupper() and str1.isupper() and str1.islower() and str1.islower():
      print (str1)

#str1就是附件的txt文件内容

为什么执行之后显示的是,多了两个字母:
u
i
l
o
v
e
f
i
s
d
h
c

然后这种代码写法和小甲鱼的答案闭起来有什么问题吗?

Twilight6 发表于 2020-11-17 21:07:19



这样的原因是因为 \n 换行符 没有排除掉的原因

把前面的 \n 换行符,都换成空字符即可,可以用 replace 函数进行替换

print 加个参数 end = ' ' 即可不换行

hughsf 发表于 2020-11-17 21:48:40

Twilight6 发表于 2020-11-17 21:15
这样的原因是因为 \n 换行符 没有排除掉的原因

把前面的 \n 换行符,都换成空字符即可,可以用 repl ...

版主牛逼~果然是\n的问题,那这个\n是怎么进行字符串大小写判断的,有没有相关的帖子说明的?

Twilight6 发表于 2020-11-17 21:52:02

hughsf 发表于 2020-11-17 21:48
版主牛逼~果然是\n的问题,那这个\n是怎么进行字符串大小写判断的,有没有相关的帖子说明的?



\n 不属于字母范畴,属于转义字符属于不可见字符的一种

不是字母自然就不能区分大小写问题,而且 \n 是一个字符 不是 \ 和 n 两个字符哈

hughsf 发表于 2020-11-17 22:00:02

Twilight6 发表于 2020-11-17 21:52
\n 不属于字母范畴,属于转义字符属于不可见字符的一种

不是字母自然就不能区分大小写问题,而且...

转义符是不是不参与字符串属性的判断?
比如
a = '''a
b'''
这时候a.islower()就显示为true,但如果通过a.islower单独判断\n的话,就显示FALSE了,但是他也不报错,就很神奇

Twilight6 发表于 2020-11-17 22:03:20

hughsf 发表于 2020-11-17 22:00
转义符是不是不参与字符串属性的判断?
比如
a = '''a




整体判断时候是不包含转义字符的判断,单独判断时可以判断~

hughsf 发表于 2020-11-17 22:05:40

Twilight6 发表于 2020-11-17 22:03
整体判断时候是不包含转义字符的判断,单独判断时可以判断~

{:5_108:}{:5_108:}
页: [1]
查看完整版本: 20讲课后练习关于寻找密码的问题