Keywords: easytut

Next: Count to 10 Up: Non-Programmers Tutorial For Python Previous: Hello, World Contents
Subsections

- Input and Variables
- Examples
- Exercises

# Who Goes There?

# Input and Variables

Now I feel it is time for a really complicated program. Here it is:

    print "Halt!"
    s = raw_input("Who Goes there? ")
    print "You may pass,", s

When I ran it here is what my screen showed:

    Halt!
    Who Goes there? Josh
    You may pass, Josh

Of course when you run the program your screen will look different because of the `raw_input` statement. When you ran the program you probably noticed (you did run the program, right?) how you had to type in your name and then press Enter. Then the program printed out some more text and also your name. This is an example of input. The program reaches a certain point and then waits for the user to input some data that the program can use later.

Of course, getting information from the user would be useless if we didn't have anywhere to put that information and this is where variables come in. In the previous program `s` is a variable. Variables are like a box that can store some piece of data. Here is a program to show examples of variables:

    a = 123.4
    b23 = 'Spam'
    first_name = "Bill"
    b = 432
    c = a + b
    print "a + b is", c
    print "first_name is", first_name
    print "Sorted Parts, After Midnight or",b23

And here is the output:

    a + b is 555.4
    first_name is Bill
    Sorted Parts, After Midnight or Spam

Variables store data. The variables in the above program are `a`, `b23`, `first_name`, `b`, and `c`. The two basic types are strings and numbers. Strings are a sequence of letters, numbers and other characters. In this example `b23` and `first_name` are variables that are storing strings. `Spam`, `Bill`, `a + b is`, and `first_name is` are the strings in this program. The characters are surrounded by `"` or `'`. The other type of variables are numbers.

Okay, so we have these boxes called variables and also data that can go into the variable. The computer will see a line like `first_name = "Bill"` and it reads it as Put the string `Bill` into the box (or variable) `first_name`. Later on it sees the statement `c = a + b` and it reads it as Put `a + b` or `123.4 + 432` or `555.4` into `c`.

Here is another example of variable usage:

    a = 1
    print a
    a = a + 1
    print a
    a = a * 2
    print a

And of course here is the output:

    1
    2
    4

Even if it is the same variable on both sides the computer still reads it as: First find out the data to store and than find out where the data goes.

One more program before I end this chapter:

    num = input("Type in a Number: ")
    str = raw_input("Type in a String: ")
    print "num =", num
    print "num is a ",type(num)
    print "num * 2 =",num*2
    print "str =", str
    print "str is a ",type(str)
    print "str * 2 =",str*2

The output I got was:

    Type in a Number: 12.34
    Type in a String: Hello
    num = 12.34
    num is a  <type 'float'>
    num * 2 = 24.68
    str = Hello
    str is a  <type 'string'>
    str * 2 = HelloHello

Notice that `num` was gotten with `input` while `str` was gotten with `raw_input`. `raw_input` returns a string while `input` returns a number. When you want the user to type in a number use `input` but if you want the user to type in a string use `raw_input`.

The second half of the program uses `type` which tells what a variable is. Numbers are of type `int` or `float` (which are short for 'integer' and 'floating point' respectively). Strings are of type `string`. Integers and floats can be worked on by mathematical functions, strings cannot. Notice how when python multiples a number by a integer the expected thing happens. However when a string is multiplied by a integer the string has that many copies of it added i.e. `str * 2 = HelloHello`.

The operations with strings do slightly different things than operations with numbers. Here are some interative mode examples to show that some more.

    >>> "This"+" "+"is"+" joined."
    'This is joined.'
    >>> "Ha, "*5
    'Ha, Ha, Ha, Ha, Ha, '
    >>> "Ha, "*5+"ha!"
    'Ha, Ha, Ha, Ha, Ha, ha!'
    >>>

Here is the list of some string operations:

Operation | Symbol | Example
Repetition | `*` | `"i"*5 == "iiiii"`
Concatenation | `+` | `"Hello, "+"World!" == "Hello, World!"`

# Examples

Rate_times.py

    #This programs calculates rate and distance problems
    print "Input a rate and a distance"
    rate = input("Rate:")
    distance = input("Distance:")
    print "Time:",distance/rate

Sample runs:

    > python rate_times.py
    Input a rate and a distance
    Rate:5
    Distance:10
    Time: 2
    > python rate_times.py
    Input a rate and a distance
    Rate:3.52
    Distance:45.6
    Time: 12.9545454545

Area.py

    #This program calculates the perimeter and area of a rectangle
    print "Calculate information about a rectangle"
    length = input("Length:")
    width = input("Width:")
    print "Area",length*width
    print "Perimeter",2*length+2*width

Sample runs:

    > python area.py
    Calculate information about a rectangle
    Length:4
    Width:3
    Area 12
    Perimeter 14
    > python area.py
    Calculate information about a rectangle
    Length:2.53
    Width:5.2
    Area 13.156
    Perimeter 15.46

temperature.py

    #Converts Fahrenheit to Celsius
    temp = input("Farenheit temperature:")
    print (temp-32.0)*5.0/9.0

Sample runs:

    > python temperature.py
    Farenheit temperature:32
    0.0
    > python temperature.py
    Farenheit temperature:-40
    -40.0
    > python temperature.py
    Farenheit temperature:212
    100.0
    > python temperature.py
    Farenheit temperature:98.6
    37.0

# Exercises

Write a program that gets 2 string variables and 2 integer variables from the user, concatenates (joins them together with no spaces) and displays the strings, then multiplies the two numbers on a new line.

Next: Count to 10 Up: Non-Programmers Tutorial For Python Previous: Hello, World Contents