if((letters[k] > 'a' and letters[k] < 'z')or(letters[k] > 'A' and letters[k] < 'Z')):
今天在做密码学的作业的时候 最开始是这样写的,但是报错是
line too long(89 >79 characters)flake8(E501)
Flake8是啥?
Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。Flake8是对下面三个工具的封装:
1)PyFlakes:静态检查Python代码逻辑错误的工具。
2)Pep8: 静态检查PEP8编码风格的工具。
3)NedBatchelder’s McCabe script:静态分析Python代码复杂度的工具。
不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。
----------------------------------------------------------------------(引:https://www.cnblogs.com/zhangningyang/p/8692546.html)
所以我出的这个问题是因为flake8的检验下,我在同一行里面写了太多内容,不符合代码规范。
于是我就把它分成两行试一下
if((letters[k] > 'a' and letters[k] < 'z')or
(letters[k] > 'A' and letters[k] < 'Z')):
order2[k] = cnt
order = ord(letters[k]) - 97
num[order] = num[order] + 1
cnt = cnt + 1
error并没有消失,而是换成了另外一个
continuation line under-indented for visual indent flake8(E128)
这是什么原因呢,查找了一下发现是因为虽然换行了,但是换下来的一行没有缩进。于是我就缩进了一下:
if((letters[k] > 'a' and letters[k] < 'z')or
(letters[k] > 'A' and letters[k] < 'Z')):
order2[k] = cnt
order = ord(letters[k]) - 97
num[order] = num[order] + 1
cnt = cnt + 1
然而,又出现了另外一个错误:
continuation line with same indent as next logical line flake8(E125)
我可能是非得见到所有错误吧。。。。。
这次的错误原因是,if后面的内容被我分开成两行,其中第二行和if对应的内容语句缩进成了一样的。
在这时候我看到了SO的这一个问题,豁然开朗
改成这样就对了,要括号和括号对齐。
if((letters[k] > 'a' and letters[k] < 'z')or
(letters[k] > 'A' and letters[k] < 'Z')):
order2[k] = cnt
order = ord(letters[k]) - 97
num[order] = num[order] + 1
cnt = cnt + 1
PS:还有一个也是因为太长了所以除了error 不过我没搞懂为什么。。。
if (order2[p] % 6 == 0):
test = (ord('x') - 97 - 97) % 26 + 97
报错是在下面的那一行(明明都不长!!)
不过我还是改了o(´^`)o
这个地方因为没有and,or一类的连接词,所以改成了
if (order2[p] % 6 == 0):
test = (ord('x') - 97 - 97) \
% 26 + 97
加一个‘ \’,还要注意前面有空格呀。
PPS:希望能对看到这的你有帮助ᕦ(・ㅂ・)ᕤ,因为我自己搞了很久还是很烦的....不过万一有什么错误的话请多多包涵,毕竟我很菜...(๑′ᴗ‵๑)