5.3. Functions¶
5.3.1. Keyboard input, types of variables and type conversion¶
Copy-paste the script in the table below to your editor, save it as name2.py
, and execute it. The function input
reads keyboard input and assigns it to a variable (here, name
).
# program for greeting people
name = input("What is your name?\n")
print("Hello, " + name + "! How are you?")
What is the difference between using +
and ,
in a print statement? Try it!
Copy-paste the script in the table below to your editor, save it as slope.py
, and execute it.
# program to enter the slope in degrees
slope = input("Enter the slope in degrees ")
print("The slope you entered is", slope, "degrees")
Add a statement that prints the type of slope
. Execute the program with different inputs (e.g., 20, 35.2, 0). What is the type of the return value (here: slope
) of the function raw_input
?
If you want to do calculations with slope
(see next section), you need slope
as a floating-point value. Convert the type of slope
and assign the result to a new variable by adding the line
slopeFloat = float(slope)
Add another line to the script printing the type of slopeFloat
and see whether it is converted.
5.3.2. Math functions¶
The Universal Soil Loss Equation contains the S factor (S) representing the effect of slope steepness (s, m/m) on soil erosion. The equation is:
S = 0.065 + 0.045 s + 0.0065 s 2
Open the Python script slope.py
(see previous section) and save it as s.py
. Now modify it, resulting in a script that
asks for an input value of the slope steepness (in degrees),
prints the S factor.
Note that you will need type conversion, and the math
module to convert from degrees to radians, and to calculate the slope as a fraction (m/m, as used in the equation) from the slope in radians (entered by the user). The Python documentation gives a list of all functions in the math module. Let the program print intermediate values of variables, in addition to the final result. Be sure to check the answer created by the script before answering the next question!
Question Run your script and enter an input value of 20 for the slope in degrees. What is S?
0.032
0.82
0.082
0.32
Correct answers: c.
- Feedback:
import math # program to calculate the s factor in the USLE slope = input("Enter the slope in degrees ") print("The slope you entered is", slope, "degrees.") slopeFloat=float(slope) # slope in radians slopeRadians = (slopeFloat/360) * 2.0 * math.pi print("This corresponds to a slope of ", slopeRadians, "in radians.") # slope in m/m slopeFraction = math.tan(slopeRadians) print("This corresponds to a slope of ", slopeFraction, "(m/m)") # slope factor S = 0.065 + 0.045 * slopeFraction + 0.0065 * slopeFraction**2.0 print("The slope factor is", S)