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

sam*_*idi 1 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): ")
Run Code Online (Sandbox Code Playgroud)

Sim*_*mon 5

你的功能肯定有效的.您面临的问题是您正在返回一个值get_stat()(这是return语句所做的),但您实际上从未说过应该打印此值.

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

print(get_stat())
Run Code Online (Sandbox Code Playgroud)

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

a = get_stat()
print(a)
Run Code Online (Sandbox Code Playgroud)

正如下面的quamrana评论中所述,虽然以下方法被认为是不好的做法,但您可以将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)))
Run Code Online (Sandbox Code Playgroud)

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

这篇文章可能会帮助您更好地理解return语句的作用以及如何从中获取值.

  • 任何上述建议都适用于调试,它们表明函数*确实运行*.请注意,在函数中执行`print()`通常是一个坏主意,一旦发现问题就应该删除它们. (2认同)