Python IF语句的行为相反
我已经写了一个小脚本,用下面的格式扫描文本文件 然后,仅当存在重定向时,才输出带有重定向URL的不同文本文件。否则,我想打印“无重定向”。但出于某种原因,情况恰恰相反 下面是我的代码,你能解释一下我做错了什么吗Python IF语句的行为相反,python,python-3.x,urllib,Python,Python 3.x,Urllib,我已经写了一个小脚本,用下面的格式扫描文本文件 然后,仅当存在重定向时,才输出带有重定向URL的不同文本文件。否则,我想打印“无重定向”。但出于某种原因,情况恰恰相反 下面是我的代码,你能解释一下我做错了什么吗 import urllib.request inc_input = input("Please enter the file name\n") file_name = open(inc_input) f = open('output.txt', 'w') for line in fi
import urllib.request
inc_input = input("Please enter the file name\n")
file_name = open(inc_input)
f = open('output.txt', 'w')
for line in file_name:
eachurl = line.strip()
redirected = urllib.request.urlopen(eachurl)
finalurl = redirected.geturl()
if eachurl == finalurl:
f.write(eachurl + "\t" + finalurl + "\n")
else:
f.write(eachurl + "\t" + "No redirection" + "\n")
f.close()
您的逻辑似乎与您的预期相反,我添加了一些评论以澄清:
if eachurl == finalurl:
# no redirection happened since we're in the original url (==)
f.write(eachurl + "\t" + finalurl + "\n")
else:
# redirection happened, different url
f.write(eachurl + "\t" + "No redirection" + "\n")
使用
not
可反转状况或反转车身。目前,该信息具有误导性。您的逻辑似乎与您的预期相反,我添加了一些评论以澄清:
if eachurl == finalurl:
# no redirection happened since we're in the original url (==)
f.write(eachurl + "\t" + finalurl + "\n")
else:
# redirection happened, different url
f.write(eachurl + "\t" + "No redirection" + "\n")
使用
not
可反转状况或反转车身。目前,该消息具有误导性。如果您将测试文本作为纯文本包含,则我们可以测试您的代码。您能否在测试前打印eachull
和finalurl
strip()
很有用,但可能还有其他问题。你可以试着打印每一个chull和finalur,你就会找到答案。你的代码中的逻辑是错误的。如果eachull
和finalurl
不同,您可以打印“无重定向”
。如果您将测试文本包含为纯文本,则我们可以测试您的代码。您可以在测试前打印eachull
和finalurl
吗strip()
很有用,但可能还有其他问题。你可以试着打印每一个chull和finalur,你就会找到答案。你的代码中的逻辑是错误的。如果eachull
和finalurl
不同,则打印“无重定向”
。如果您想这样写if
,则使用eachull!=最终结果
。事实上,我第一次读你的答案时,我甚至没有看到而不是,并且感到困惑!但即便如此,我认为最好交换这两个子句,而不是在包含else
子句的if
语句中进行否定比较。如果你想这样写if
,那么使用eachull!=最终结果
。事实上,我第一次读你的答案时,我甚至没有看到而不是,并且感到困惑!但即便如此,我认为最好交换这两个子句,而不是在包含else
子句的if
语句中进行否定比较。或者=代码>而不是=
或=代码>而不是==