from __future__ import division, print_function import sys if sys.version_info.major == 2: input = raw_input print("Halt!") s = 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 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.
Unfortunately, Python 2 and Python 3 have different names for
input
. The second, third and fourth line of this code will be
explained in more detail later in the tutorial, for now they will just
have be considered magic. In Python 2 the function used for input is
raw_input
so the following code in program checks for that and
renames it if needed:
import sys if sys.version_info.major == 2: input = raw_input
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:
from __future__ import division, print_function 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:
from __future__ import division, print_function 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:
from __future__ import division, print_function import sys if sys.version_info.major == 2: input = raw_input num = float(input("Type in a Number: ")) str = 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 <class 'float'> num * 2 = 24.68 str = Hello str is a <class 'str'> str * 2 = HelloHello
Notice that num
was gotten with float(input) while str
was gotten with input
. input
returns a string and the function float converts it to a floating point number.
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!" |
Rate_times.py
from __future__ import division, print_function #This programs calculates rate and distance problems print("Input a rate and a distance") rate = float(input("Rate:")) distance = float(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
from __future__ import division, print_function #This program calculates the perimeter and area of a rectangle print("Calculate information about a rectangle") length = float(input("Length:")) width = float(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
from __future__ import division, print_function #Converts Fahrenheit to Celsius temp = float(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
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.