On 09/04/14 17:49, Jared Nielsen wrote:
Hi Pythons,
Could someone explain the difference between expressions and statements?
I know that expressions are statements that produce a value.

Yep, that's it.

I'm unclear on functions and especially strings.

Unclear in what way? Both functions and strings are expressions,
in that they produce, or are, values.

Are any of the following expressions?
print(42)
print("spam")
spam = 42
print(spam)

Yes, 3 are expressions, and all 4 are statements containing expressions.

Is the first example producing a value or simply displaying an integer?

It does actually produce a value but its not the integer that is displayed. The default value for any function (including print() )
is None... You can prove that by trying:

>>> print( print(42) )
42
None

The 42 is the output displayed by the innermost print()
The None is the value returned by the inner print function.

The Python interpreter normally suppresses the None from a print function but because I explicitly told it to print the return from print it did it in this case.

Does a string count as a value?

Yes, certainly.

Is a variable assignment considered a value?

No, its a statement but not an expression.
(In Python at least, in some other languages the rules are different)

If I print a variable is that considered production of a value?

Yes, as above. But the value produced is the None returned
by the print function not the value that print displays.


HTH

And did I just do your homework? hmmm... I'll give
you the benefit of the doubt.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to