Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running python script in terminal, nothing prints or shows up - why?

Going through Learn Python the Hard Way, lesson 25.

I try to execute the script, and the result is like so:

myComp:lphw becca$ python l25 

myComp:lphw becca$ 

Nothing prints or displays in terminal.

Here's the code.

def breaks_words(stuff): 
    """This function will break up words for us."""
    words = stuff.split(' ')
    return words 

def sort_words(words):
    """Sorts the words."""
    return sorted(words)

def print_first_word(words):
    """Prints the first word after popping it off."""
    word = words.pop(0)
    print word

def print_last_word(words):
    """Prints the last word after popping it off."""
    word = words.pop(-1)
    print word

def sort_sentence(sentence): 
"""Takes in a full sentence and returns the sorted words."""
    words = break_words(sentence)
    return sort_words(words)

def print_first_and_last(sentence):
    """Prints the first and last words of the sentence."""
    words = break_words(sentence)
    print_first_word(words)
    print_last_word(words)

def print_first_and_last_sorted(sentence):
    """Sorts the words then prints the first and last one."""
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)

Please help!

like image 593
user1186742 Avatar asked Mar 02 '26 01:03

user1186742


1 Answers

All your code is function definitions, but you never call any of the functions, so the code doesn't do anything.

Defining a function with the def keyword just, well, defines a function. It doesn't run it.

For example, say you just have this function in your program:

def f(x):
    print x

You're telling the program that whenever you call f, you want it to print the argument. But you're not actually telling it that you want to call f, just what to do when you do call it.

If you want to call the function on some argument, you need to do so, like this:

# defining the function f - won't print anything, since it's just a function definition
def f(x):
    print x
# and now calling the function on the argument "Hello!" - this should print "Hello!"
f("Hello!")

So if you want your program to print something, you need to put in some calls to the functions you defined. What calls and with what arguments depends on what you want the code to do!

like image 95
weronika Avatar answered Mar 03 '26 15:03

weronika



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!