Python Function to test ping
Question: I'm trying to create a function that I can call on a timed basis to check for
good ping and return the result so I can update the on-screen display. I am
new to python so I don't fully understand how to return a value or set a
variable in a function.

Here is my code that works:

    
    
    import os
    hostname = "google.com"
    response = os.system("ping -c 1 " + hostname)
    if response == 0:
        pingstatus = "Network Active"
    else:
        pingstatus = "Network Error"
    

Here is my attempt at creating a function:

    
    
    def check_ping():
        hostname = "google.com"
        response = os.system("ping -c 1 " + hostname)
        # and then check the response...
        if response == 0:
            pingstatus = "Network Active"
        else:
            pingstatus = "Network Error"
    

And here is how I display `pingstatus`:

    
    
    label = font_status.render("%s" % pingstatus, 1, (0,0,0))
    

So what I am looking for is how to return pingstatus from the function. Any
help would be greatly appreciated.


Answer: It looks like you want the `return` keyword

    
    
    def check_ping():
        hostname = "taylor"
        response = os.system("ping -c 1 " + hostname)
        # and then check the response...
        if response == 0:
            pingstatus = "Network Active"
        else:
            pingstatus = "Network Error"
    
        return pingstatus
    

You need to capture/'receive' the return value of the function(pingstatus) in
a variable with something like:

    
    
    pingstatus = check_ping()
    

Some info on python functions:

<http://www.tutorialspoint.com/python/python_functions.htm>

<http://www.learnpython.org/en/Functions>

It's probably worth going through a good introductory tutorial to Python,
which will cover all the fundamentals. I recommend investigating
[Udacity.com](https://www.udacity.com/courses#!/all) and
[codeacademy.com](http://www.codecademy.com/tracks/python)

