Python 3, an Illustrated Tour Transcripts
Chapter: The standard library
Lecture: Walk-through: Print Function
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
In this video, we're going to look at print_test.py, open it up in your editor. Let's run it and make sure that it works.
0:07
So in order to run it, I right click in PyCharm and say run print_test this just validates that it's being run with pytest, in this case it is,
0:16
it says there are 2 failures, let's look at the test here. There are 2 failures because there are 2 tests
0:22
this one here that starts with test and this function here that starts with test.
0:25
The description is this comment right here and we need to do what it says. It says print the numbers from 10 down to 0 with a space between them
0:33
and a new line at the end. And so the default behavior for the print function
0:37
puts a space between a new line at the end, so let's just try and say print nums and run that and see what happens here.
0:44
Okay, we still get 2 failures, let's see if the output from pytest helps us at all. We have an assertion, the assertion failed and said
0:54
that this string here is not equal to this string, the difference between these two strings is
1:00
that this one has a list embedded in it, and this one does not. So when we print out an object here, it just prints the __stir__ version of that
1:09
and if we want to make it so rather than the print out a list we want the individual items of the list, we need to use what's called unpacking
1:17
so we can just put a star in front of that and that should unpack them. Let's try it again, unpack the individual items from that string
1:26
and it looks like we only get one failure now, so we're good with this first one. Let's look at the assignment for the second one,
1:32
print the numbers from 10 down to 0 with a - * - between them and no new line at the end. So print, we're going to say *nums here again,
1:42
and we're going to say sep is equal to - * - and end is equal to a blank string. Let's run it and make sure that it works.
1:55
Okay, it looks like it works, let's look at the test a little bit and try and dig into what's actually going on here.
2:01
If you'll notice the import here, I'm importing stringIO this is an object that behaves as a file buffer,
2:09
and what I'm doing here is patching or monkey patching sys.stdout, I'm creating a stringIO instance, and pointing sys.stdout to it.
2:18
So when I call print down here, rather than printing out to the screen, it's printing out the string buffer
2:24
and we're pulling the value from that stream buffer out and checking the value of it. So that's how our little test is working.
2:31
Hopefully you understand a little bit about print now and again, in Python 3 print is now a function
2:37
and we can use these keyword arguments to change the behavior of the function.