Now it is time to pick up the pace. I have got you doing a lot of printing so that you get used to typing simple things, but those simple things are fairly boring. What we want to do now is get data into your programs. This is a little tricky because you have to learn to do two things that may not make sense right away, but trust me and do it anyway. It will make sense in a few exercises. Most of what software does is the following:
So far you have only been printing, but you haven’t been able to get any input from a person or change it. You may not even know what “input” means, so rather than talk about it, let’s have you do some and see if you get it. In the next exercise, we’ll do more to explain it.
print ("How old are you?",)
age = input()
print ("How tall are you?",)
height = input()
print ("How much do you weigh?",)
weight = input()
print ("So, you're %r old, %r tall and %r heavy." % (age, height, weight))
In [ ]:
NOTE: Notice that we put a , (comma) at the end of each print line. This is so that print doesn’t end the line with a new line character and go to the next line.
How old are you?
2
How tall are you?
3
How much do you weigh?
2
So, you're '2' old, '3' tall and '2' heavy.
How do I get a number from someone so I can do math?
That’s a little advanced, but try x = int(raw_input()), which gets the number as a string from raw_input() then converts it to an integer using int().
I put my height into raw input like raw_input("6'2") but it doesn’t work.
You don’t put your height in there; you type it directly into your Terminal. First thing is, go back and make the code exactly like mine. Next, run the script, and when it pauses, type your height in at your keyboard. That’s all there is to it.
Why do you have a new line on line 8 instead of putting it on one line? That’s so that the line is less than 80 characters long, which is a style that Python programmers like. You could put it on one line if you like.
What’s the difference between input() and raw_input()?
The input() function will try to convert things you enter as if they were Python code, but it has security problems so you should avoid it.
When my strings print out there’s a u in front of them, as in u'35'.
That’s how Python tells you that the string is Unicode. Use a %s format instead and you’ll see it printed like normal.