减少数组以及为什么如果比较不起作用或为什么

时间:2017-09-19 03:30:43

标签: python arrays if-statement

我创建了一个读取VPN输出的程序,它返回没有加密的加密映射,但我关注以下事项:

(1)可以减少这个数组:

h.write(all_vpns[n-5]+all_vpns[n-4]+all_vpns[n-3]+all_vpns[n-2]+all_vpns[n-1]+all_vpns[n]+all_vpns[n+1]+"\n\n")

类似

all_vpns[n-5]:all_vpns[n+1] or all_vpns[n-5]-all_vpns[n+1]

(2)有一个函数我用来删除文件中的所有行,当if语句中只有一个规则但当我添加2时它不起作用时效果很好:

with open(in_filename) as infile, open("clean_vpn.txt", "w") as outfile:
    for line in infile.readlines():
        if line!='\n':
            outfile.write(line)

如果在我添加另一个参数时它不起作用

   if line!='\n' or line!='      \n':

有人知道为什么或不工作,但正如我之前提到的,如果我只有任何一个参数,它适用于该声明,但不能同时使用或?

1 个答案:

答案 0 :(得分:0)

(1)你可以这样写:

h.write(''.join(all_vpns[n-5:n+2])+'\n\n')

(2)if中的if line!='\n' or line!=' \n' 总是评估为True。因为or。让我们检查一下line

的值
  • 如果line\n,则第一个条件失败,但第二个条件成功。
  • 如果line' \n',则第一个条件成功。
  • 如果line是其他任何内容,则两种情况都会成功。

如果放置or,那就完全没有条件了。我认为您应该使用and代替or