Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Convert Python program to be class based- Python code: import csv import matplot

ID: 3729469 • Letter: C

Question

Convert Python program to be class based-

Python code:

import csv
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

obj=open("bmi.csv");              #opening file

obj_reader=csv.reader(obj,delimiter=' ')
male=[]        # having male's bmi
female=[]      # having female bmi

file_obj2=open("bmi_health.csv","w")     # opening file for adding bmi and status      

for val in obj_reader:
       
    
      bmi=(int(val[1])*2.2*703)/(int(val[2])*int (val[2]))        # bmi calculation
      bmi=round(bmi,2)
      file_obj2.write(val[0])
      file_obj2.write(' ')
      file_obj2.write(val[1])
    
      file_obj2.write(' ')
      file_obj2.write(val[2])
      file_obj2.write(' ')
      file_obj2.write("%0.2f "%bmi)
      file_obj2.write(' ')
          
    
      if val[0]=='male':                    # checking for male
                male.append(bmi)
                if bmi>=19 and bmi<=25:                # bmi healthy status         
                      
                        file_obj2.write('healthy')
                elif bmi>25:
                       
                        file_obj2.write('obese')
                else:
                     
                        file_obj2.write('underweight')
              
                      
      else:                                      # checking for male
                female.append(bmi)
                if bmi>=19 and bmi<=25:              # bmi healthy status

                        file_obj2.write('healthy')
                elif bmi>25:

                        file_obj2.write('obese')
                else:

                        file_obj2.write('underweight')
      
      file_obj2.write(' ')
print(" BMI list for male: ")            
print(male)         # male bmi calculation list
print(" BMI list for female: ")            
print(female)       #female bmi calculation list
    
       
obj.close()                 # closing old file
file_obj2.close()            #closing new file
bins=1     
plt.ylabel('NUMBER')
plt.xlabel('BMI')
plt.title('HISTROGRAM OF BMI OF MALE & FEMALE ')
plt.hist([male,female])      
plt.show()   

INITIAL FILE NAMED AS : bmi.csv

Explanation / Answer

# -*- coding: utf-8 -*-
"""
Created on Wed Mar 14 12:12:00 2018
@author:
"""

import csv
import matplotlib.pyplot as plt

class bmi:
def __init__(self):
self.filename='bmi.csv'; #opening file
  
def readFile(self):
obj=open(self.filename)
obj_reader=csv.reader(obj,delimiter=' ')
male=[] # having male's bmi
female=[] # having female bmi
  
file_obj2=open("bmi_health.csv","w") # opening file for adding bmi and status   
  
for val in obj_reader:
bmi=(int(val[1])*2.2*703)/(int(val[2])*int (val[2])) # bmi calculation
bmi=round( bmi,2)
file_obj2.write(val[0])
file_obj2.write(' ')
file_obj2.write(val[1])
  
file_obj2.write(' ')
file_obj2.write(val[2])
file_obj2.write(' ')
file_obj2.write("%0.2f "%bmi)
file_obj2.write(' ')
  
if val[0]=='male': # checking for male
male.append(bmi)
if bmi>=19 and bmi<=25: # bmi healthy status
file_obj2.write('healthy')
elif bmi>25:   
file_obj2.write('obese')
else:
file_obj2.write('underweight')
else: # checking for male
female.append(bmi)
if bmi>=19 and bmi<=25: # bmi healthy status
file_obj2.write('healthy')
elif bmi>25:
file_obj2.write('obese')
else:
file_obj2.write('underweight')
  
file_obj2.write(' ')
print(" BMI list for male: ")   
print(male) # male bmi calculation list
print(" BMI list for female: ")   
print(female) #female bmi calculation list

obj.close() # closing old file
file_obj2.close() #closing new file
plt.ylabel('NUMBER')
plt.xlabel('BMI')
plt.title('HISTROGRAM OF BMI OF MALE & FEMALE ')
plt.hist([male,female])   
plt.show()
  
ob=bmi()
ob.readFile()

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote