0

TCS python hands-on problem 2023

def firt(n):
    return n[0] 

def sort(lst):
    return sorted(lst,key=firt)

class City:
    def __init__(self,city_id,state_name,city_name,covidbeds,avlblcovbeds,ventilbeds,avlblventilbeds):
      self.city_id = city_id
      self.state_name = state_name
      self.city_name = city_name
      self.covidbeds = covidbeds
      self.avlblcovbeds = avlblcovbeds
      self.ventilbeds = ventilbeds
      self.avlblventilbeds = avlblventilbeds
    
  
class CovBedsAnalysis:
  def __init__(self,analysis_name,city_list):
    self.analysis_name = analysis_name
    self.city_list = city_list
    
  def get_StateWiseAvlblBedStats(self):
    self.state = []
    self.list_of_state = []
    for city in self.city_list:
        if city.state_name not in self.state:
          self.state.append(city.state_name)
          self.list_of_state.append([city.state_name,city.avlblcovbeds,city.avlblventilbeds])
        else:
          for st in self.list_of_state:
            if(st[0] == city.state_name):
              st[1] += city.avlblcovbeds
              st[2] += city.avlblventilbeds
    out_list = []
    for statee in self.list_of_state:
      out_list.append(tuple(statee))
    return sort(out_list)

  def count_no_city(self,state_nm):
      count = 0
      for city in self.city_list:
          if city.state_name == state_nm:
              count = count + 1
      return count

  def get_CiitesWithMoreThanAvgOccupiedbeds(self,state_nm):
    avgCobBed = 0
    avgVetBed = 0
    out_dict = {}
    for stt in self.list_of_state:
      if(stt[0] == state_nm):
        avgCobBed = stt[1]/self.count_no_city(state_nm)
        avgVetBed = stt[2]/self.count_no_city(state_nm)
        break
    for city in self.city_list:
      if city.state_name == state_nm:
        if city.avlblcovbeds > avgCobBed and city.avlblventilbeds > avgVetBed:
          out_dict[city.city_name] = (city.covidbeds - city.avlblcovbeds, city.ventilbeds - city.avlblventilbeds)
    return out_dict
              
        

          
    
    
    
if __name__ == "__main__":
  t = int(input())
  list_of_city = []
  while t > 0:
    city_id = int(input())
    state_name = input()
    city_name = input()
    covidbeds = int(input())
    avlblcovbeds = int(input())
    ventilbeds = int(input())
    avlblventilbeds = int(input())
    temp_obj_city = City(city_id,state_name,city_name,covidbeds,avlblcovbeds,ventilbeds,avlblventilbeds)
    list_of_city.append(temp_obj_city)
    t = t - 1
  st = input()
  analysis = CovBedsAnalysis("name",list_of_city)
  state_list_analysis = analysis.get_StateWiseAvlblBedStats()
  for statet in state_list_analysis:
        print(str(statet[0])+" "+str(statet[1])+" "+ str(statet[2]))

  mor_than_avg = analysis.get_CiitesWithMoreThanAvgOccupiedbeds(st)

  if(len(mor_than_avg) == 0):
    print("No city available")
  else:
    for city,lst in mor_than_avg.items():
      print(city+" "+str(lst[0])+" "+str(lst[1]))

            

Compile this code it's shows Traceback (most recent call last): File "/tmp/2199945_1680193329/22896116737.py", line 74, in EOFError: EOF when reading a line

Input: 5 101 Delhi Delhi 100000 20000 5000 2000 102 Telangana Hyderabad 200000 40000 1000 500 103 Telangana Warangal 100000 30000 2000 1000 104 AndhraPradesh Vijayawada 800000 300000 30000 2500 105 AndhraPradesh Vizag 500000 100000 6000 1000 AndhraPradesh

Output:

AndhraPradesh 400000 3500 Delhi 20000 2000 Telangana 70000 1500 Vijayawada 500000 27500

  • Would [this](https://stackoverflow.com/questions/17675925/eoferror-eof-when-reading-a-line?rq=2) or [this one](https://stackoverflow.com/questions/17758782/python-eoferror-eof-when-reading-a-line?rq=2) solve your problem? – HoRn Apr 01 '23 at 04:54

0 Answers0