为什么我的Python函数不会执行?

时间:2018-02-03 13:03:09

标签: python function

我对编码很陌生。我写了一段简单的代码,它将URL作为输入,加载URL并将该URL的状态代码放在变量中。我把它放在一个函数中。但是,当我运行代码时,我没有错误,但函数将无法运行。似乎翻译只是飞过我的功能。我知道我有一些简单的错误,但无论我搜索多少都无法修复它。请帮我理解。哦,代码不完整。但该功能应该运行。

import urllib.request, click, threading

url = input("Enter domain name >> \n")

def get_stat():
    status = urllib.request.urlopen("http://"+url).getcode()
    if status == 200:
        return "Site loads normally!\nHost Said: '%s'!" %(str(status))
    else:
        return "Site Needs To Be Checked!\nHost Said: '%s'!" %(str(status))
get_stat()

if click.confirm("Would you like to set a uptime watch?"):
    click.echo("You just confirmed something!!")
    count = input("Enter the number of times you wish your site to be checked: ")
    interval = input("Enter the time interval for status requests (Time is in minutes): ")

1 个答案:

答案 0 :(得分:5)

你的功能当然 正在运作。您遇到的问题是您从get_stat()返回一个值(这是return语句所做的),但您实际上从未说过应该打印此值。

我的猜测是你要打印返回的值,在这种情况下你需要添加print语句:

print(get_stat())

或者您可以将值存储为变量:

a = get_stat()
print(a)

如下面quamrana's评论中所述,虽然以下方法被认为是不好的做法,但您可以将print()语句放在函数中以进行调试,并在以后替换它:

if status == 200:
    print("Site loads normally!\nHost Said: '%s'!" %(str(status)))
else:
    print("Site Needs To Be Checked!\nHost Said: '%s'!" %(str(status)))

这将证明该功能确实正在执行。

This post可能会帮助您更好地理解return语句的作用以及如何从中获取值。