75.2k views
1 vote
Reduce Re-use and Recycle!

Required Materials
OnlineGDB (login required)
Word processing software
Part A
One of the biggest benefits of writing code inside functions is that we can reuse the code. We simply call it whenever we need it!

Let’s take a look at a calculator program that could be rewritten in a more reusable way with functions. Notice that two floats (decimal numbers, but they can also include integers) are inputted by the user, as an operation that the user would like to do. A series of if statements are used to determine what operation the user has chosen, and then the answer is printed inside a formatted print statement.

num1 = float(input("Enter your first number: "))
num2 = float(input("Enter your second number: "))
operation = input("What operation would you like to do? Type add, subtract, multiply, or divide.")
if operation == "add":
print(num1, "+", num2,"=", num1 + num2)
elif operation == "subtract":
print(num1, "-", num2,"=", num1 - num2)
elif operation == "multiply":
print(num1, "*", num2,"=", num1 * num2)
elif operation == "divide":
print(num1, "/", num2,"=", num1 / num2)
else:
print("Not a valid operation.")
Your job is to rewrite the program using functions. We have already looked at a function that adds two numbers. Using that as a starting point, we could call the add function from within our program in this way:

if operation == "add":
result = add(num1, num2)
print(num1, "+", num2,"=",result)
Now it’s your turn to do the following:

Type all of the original code into a new file in OnlineGDB.
Copy the add function from the unit and paste it at the top of your program.
Write three additional functions: subtract, multiply, and divide. Pay careful attention to the parameters and return statement. Remember to put the three functions at the top of your Python program before your main code.
Rewrite the main code so that your functions are called.
Part B
There are many different ways that a user could tell us that they would like to add two numbers in our calculator program. The user could type “add”, “Add”, “ADD”, or “+”, to name a few possibilities. Of course, as humans, we know exactly what is meant, even if the word is capitalized. But the Python Interpreter can’t tell that “add” is the same as “Add”.

We can use a list to make our program a bit more robust. We can also use the IN operator to check for certain values in that list. Take a look at this if statement’s opening line:

if operation in ["add", "Add", "ADD", "+"]:
Make those changes in your program and verify that it works.
Consider all of the possible words the user might enter to subtract, multiply, or divide.
Rewrite the first lines of each of your if statements to use lists.
Thoroughly test your new program, trying out each of the four operations.
When you have tested your program, click the save button. Then click Share and copy the program link. Paste the link in a word processing document and submit using this unit’s dropbox. If your program does not work properly, also include a paragraph explaining what you did to troubleshoot it.

User Heikura
by
8.1k points

1 Answer

1 vote

To rewrite the given calculator program using functions, you can follow these steps:

1. Start by copying all of the original code into a new file in OnlineGDB.

2. Copy the add function from the unit and paste it at the top of your program. This function should take two parameters, num1 and num2, and return the sum of the two numbers.

3. Write three additional functions: subtract, multiply, and divide. Each function should take two parameters and return the result of the corresponding operation. Here's an example of how you can implement the subtract function:

```

def subtract(num1, num2):

return num1 - num2

```

4. Put the four functions (add, subtract, multiply, and divide) at the top of your Python program before your main code.

5. Rewrite the main code to call the appropriate function based on the user's chosen operation. Use if statements to check the value of the operation variable and call the corresponding function. Here's an example of how you can modify the main code:

```

if operation == "add":

result = add(num1, num2)

print(num1, "+", num2, "=", result)

elif operation == "subtract":

result = subtract(num1, num2)

print(num1, "-", num2, "=", result)

elif operation == "multiply":

result = multiply(num1, num2)

print(num1, "*", num2, "=", result)

elif operation == "divide":

result = divide(num1, num2)

print(num1, "/", num2, "=", result)

else:

print("Not a valid operation.")

```

Now, let's move on to Part B.

To make the program more robust and accept different variations of the operation input, you can use lists and the in operator to check for certain values. Here's an example for the addition operation:

```

if operation.lower() in ["add", "+"]:

```

This will allow the program to accept variations such as "add", "Add", "ADD", or "+". You can apply the same approach to the subtract, multiply, and divide operations.

Remember to thoroughly test your program by trying out each of the four operations. Make sure to test different variations of the operation input to ensure that the program handles them correctly.

Once you have tested your program and it is working properly, save it and click the Share button. Copy the program link and paste it into a word processing document for submission.

If your program doesn't work properly, make sure to double-check your code for any errors or typos. You can also add print statements to debug and see the values of variables at different points in the program. If you're still having trouble, you can explain the steps you took to troubleshoot the program in your submission paragraph

User Digdigdoot
by
7.8k points