编辑:如果有人可以解释为什么它不起作用,我将不胜感激。我不需要任何人为我做这件事,因为我可以走很长一段路。我只想了解为什么这不起作用。谢谢!
编辑#2:我知道https:google.com不是网址,但这只是为了测试代码。
我正在测试不同的方法来检查url参数是否在前11个字符中包含字符串'http','www'或'https'。我会弄乱索引吗?还是我不了解“参与”和“不参与”的工作方式?
def check_url(url):
first = ['www', 'http', 'https']
for x in first:
if x not in url[0:11]:
return '[-] url fails'
else:
...other stuff I need to check if it passes
hi = check_url('https:google.com')
print(hi)
输出显示url失败。
我尝试使用“ in”而不是“ not in”(当然也要重新排列措词以满足要求),但这也不起作用。
我知道我可以做多个if语句来分别检查每个字符串,但这是很多代码,当然,我想使其尽可能整洁和可读。
答案 0 :(得分:0)
您的函数在处理return
后立即中断。因此for
循环不再重复。将return
语句移到函数的 end 处。例如:
def check_url(url):
first = ['www', 'http', 'https']
for x in first:
if url.startswith(x):
# ...other stuff I need to check if it passes
# if successful:
# return 'url passes'
return '[-] url fails'
hi = check_url('https:google.com')