Receiving the following error in output: == RESTART: C:Usersanjm_OneDriveDesktopUSE THISWk8_Anjanette_Vazquez.py == 1. Add 2. Subtract 3. Multiply
Question:
Receiving the following error in output:
== RESTART: C:\Users\anjm_\OneDrive\Desktop\USE THIS\Wk8_Anjanette_Vazquez.py ==
1. Add
2. Subtract
3. Multiply
4. Divide
5. Scalc
6. AllinOne
7. Exit
8. WritetoFile
9. ReadfromFile
Select an option ---> 8
Enter your Lower Range --->1
Enter your Higher Range --->100
Enter your first number --->2
Enter your second number --->3
Enter a file name to write ---> mathhhhhhh.txt
Filename is successfully written.
1. Add
2. Subtract
3. Multiply
4. Divide
5. Scalc
6. AllinOne
7. Exit
8. WritetoFile
9. ReadfromFile
Select an option ---> 9
Traceback (most recent call last):
File "C:\Users\anjm_\OneDrive\Desktop\USE THIS\Wk8_Anjanette_Vazquez.py", line 71, in
wrfile.readFromFile(self)
NameError: name 'self' is not defined
Here is my Main.py:
import W8_Anjanette_Vazquez_Mylib
from W8_Anjanette_Vazquez_Mylib import Addition #Importing the classes from the W8_Anjanette_Vazquez_Mylib.
from W8_Anjanette_Vazquez_Mylib import Subtraction
from W8_Anjanette_Vazquez_Mylib import Multiplication
from W8_Anjanette_Vazquez_Mylib import Division
from W8_Anjanette_Vazquez_Mylib import ValidRange
from W8_Anjanette_Vazquez_Mylib import SplCalculator
from W8_Anjanette_Vazquez_Mylib import AllInOneCalculator
from W8_Anjanette_Vazquez_Mylib import wrfile
menu_options = ["1. Add", #Lists the options on the menu.
"2. Subtract",
"3. Multiply",
"4. Divide",
"5. Scalc",
"6. AllinOne",
"7. Exit",
"8. WritetoFile",
"9. ReadfromFile"
]
while True: #The loop simulates the menu options.
for menu in menu_options: #Prints the menu options.
print(menu)
option = input("\nSelect an option ---> ") #Takes the input for the menu selection.
if option in ['1','2','3','4','6','8']: #If the option is 1,2,3,4, or 6 then the if block will be executed.
try: #The exception checks the user input.
lowerRange = int(input("Enter your Lower Range --->"))
higherRange = int(input("Enter your Higher Range --->"))
number1=float(input("Enter your first number --->"))
number2=float(input("Enter your second number --->"))
print()
if ValidRange.inRange(lowerRange,higherRange,number1,number2) == True: #If the values are in range the results will be printed.
if option == '1':
print("The Result of", number1, "+", number2, "=", Addition.add(number1, number2))
elif option == '2':
print("The Result of", number1, "-", number2, "=", Subtraction.subtract(number1, number2))
elif option == '3':
print("The Result of", number1, "*", number2, "=", Multiplication.multiply(number1, number2))
elif option == '4':
print("The Result of", number1, "/", number2, "=", Division.divide(number1, number2))
elif option == '6':
res = AllInOneCalculator.allInOne(number1, number2)
print(number1,'+',number2,"=",res['add'])
print(number1,'-',number2,"=",res['sub'])
print(number1,'*',number2,"=",res['mult'])
print(number1,'/',number2,"=",res['div'])
elif option == '8':
res = AllInOneCalculator.allInOne(number1, number2)
wrfile.writeToFile(number1, number2, res)
except ValueError: #If the values are not in range, it will print an error and ask to try again.
print("Error. The input values are out side the input ranges. Please check the number and try again.")
elif option == '5':
string = input("Enter first number, second number, and an operator +,-,*,/: ")
print("The result is: ", SplCalculator.scalc(string))
elif option == '7':
print("Thanks for using our calculator.")
break
elif option =='9':
wrfile.readFromFile(self)
else:
print("Invalid selection. Please try again.")
print()
Here is my library.py:
class Addition(): #Class created for addition, subtraction, multiplication, division, validRange, SplCalculator, and AllinOneCalculator.
def add(number1, number2):
return number1 + number2
class Subtraction():
def subtract(number1, number2):
return number1 - number2
class Multiplication():
def multiply(number1, number2):
return number1 * number2
class Division():
def divide(number1, number2):
try:
div = number1 / number2
return div
except ZeroDivisionError:
return "Error. You cannot divide by zero."
class ValidRange():
def inRange(lowerRange, higherRange, number1, number2):
if (lowerRange
else:
print("Error. The input values are outside the input ranges. Please check the numbers and try again.")
class SplCalculator():
def scalc(p1):
splits = p1.split(",")
number1 = float(splits[0])
number2 = float(splits[1])
operator = splits[2]
if operator == "+":
return Addition.add(number1, number2)
elif operator == "-":
return Subtraction.subract(number1, number2)
elif operator == "*":
return Multiplication.multiply(number1, number2)
elif operator == "/":
return Division.divide(number1, number2)
else:
return "Invalid operator. Do not add any spaces between the commas. Please try again."
class AllInOneCalculator():
def allInOne(number1, number2):
result = dict()
result["add"] = Addition.add(number1, number2)
result["sub"] = Subtraction.subtract(number1, number2)
result["mult"] = Multiplication.multiply(number1, number2)
result["div"] = Division.divide(number1, number2)
return result
class wrfile:
def writeToFile(number1, number2, dictionary):
filename = input("Enter a file name to write ---> ")
File = open(filename, 'w')
File.write(str(number1)+' + '+str(number2)+" = "+str(dictionary['add'])+'\n')
File.write(str(number1)+' - '+str(number2)+" = "+str(dictionary['sub'])+'\n')
File.write(str(number1)+' * '+str(number2)+" = "+str(dictionary['mult'])+'\n')
File.write(str(number1)+' / '+str(number2)+" = "+str(dictionary['div'])+'\n')
File.close()
print("Filename is successfully written.")
def readFromFile(self):
filename = input("Enter a filename to read ---> ")
try:
File = open(filename, 'r')
except FileNotFoundError:
print(filename, "Error. Not found.")
else:
for line in File:
line = line.strip()
print(line)
File.close()
Income Tax Fundamentals 2013
ISBN: 9781285586618
31st Edition
Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill