def calc(self, d=1): d = round(d) try: out = "--- {0} damage ---\nHELMET: {1}, VEST: {2}, RANGE: {3}m\n".format( self.target_name.replace("-", " "), self.helmet.capitalize() if not int(self.helmet[-1:]) == 0 else self.__na, self.vest.capitalize() if not int(self.helmet[-1:]) == 0 else self.__na, d) except AttributeError: print("Weapon is not found.") sys.exit(-1) d = self.__distance(d) for name, member in list( self.target.value.keys())[0].__members__.items(): try: if name in self.__no_armor: damage = list( self.target.value.values())[0] * d * member.value else: if name in self.__head: damage = list(self.target.value.values() )[0] * d * member.value * ARMOR[ self.helmet.upper()].value else: damage = list(self.target.value.values() )[0] * d * member.value * ARMOR[ self.vest.upper()].value if damage < 0.05: damage = self.__na else: damage = deci(str(damage)).quantize( deci("0.1"), rounding=ROUND_HALF_DOWN) out += "\n{0}: {1}({2})".format(name, damage, self.__tokill(damage)) except KeyError: print("Armor level is injustice.") sys.exit(-1) print(out)
def convert(fromUnit, toUnit, value): #converts a given value to a different unit types value fU = fromUnit[:3].lower() tU = toUnit[:3].lower() value = deci(value) if fU == tU: return float(value) elif tU in F1[fU]: conversion = ((value + F1[fU][tU][0]) * (F1[fU][tU][1]) + (F1[fU][tU][2])) return round(float(conversion), 3) else: raise ConversionNotPossible
def __tokill(self, dmg): if type(dmg) is str: return self.__na return deci(str(100 / dmg)).quantize(deci("0"), rounding=ROUND_CEILING)
def convertCelsiusToKelvin(degrees): #converts celsius to kelvin degrees = str(degrees) convert = (deci(degrees) + deci('273.15')) return (float(convert))
def convertKelvinToFahrenheit(degrees): #converts kelvin to fahrenheit degrees = str(degrees) convert = (((deci(degrees) * 9) / deci('5')) - deci('459.67')) return (float(convert))
def convertKelvinToCelsius(degrees): #converts kelvin to celsius degrees = str(degrees) convert = (deci(degrees) - deci('273.15')) return (float(convert))
def convertFahrenheitToKelvin(degrees): #converts fahrenheit to kelvin degrees = str(degrees) convert = ((deci(degrees) + deci('459.67')) * 5 / deci('9')) return (float(convert))
def convertFahrenheitToCelsius(degrees): #converts fahrenheit to celsius degrees = str(degrees) convert = ((deci(degrees) - 32) * 5) / deci('9') return (float(convert))
def convertCelsiusToFahrenheit(degrees): #converts celsius to fahrenheit degrees = str(degrees) convert = (deci(degrees) / deci('5') * 9) + 32 return (float(convert))
#! /usr/bin/env python3 #IS211 Assignment 6 - refactored conversions import unittest from decimal import Decimal as deci class ConversionNotPossible(Exception): #class for conversion, not possible pass KCDIF = deci('273.15') KFDIF = deci('459.67') NDIVF = deci('9') / 5 FDIVN = deci('5') / 9 F1 = {'cel': {'kel': (KCDIF, 1, 0), 'fah': (0, NDIVF, 32)}, 'kel': {'cel': (-KCDIF, 1, 0), 'fah': (0, NDIVF, -KFDIF)}, 'fah': {'cel': (-32, FDIVN, 0), 'kel': (KDIF, FDIVN, 0)}, 'mil': {'yar': (0, deci(1760), 0), 'met': (0, deci(1609.34), 0)}, 'yar': {'mil': (0, deci(.00056818), 0), 'met': (0, deci(.9144), 0)}, 'met': {'mil': (0, deci(.00062137), 0), 'yar': (0, deci(1.09361), 0)} } def convert(fromUnit, toUnit, value): #converts a given value to a different unit types value fU = fromUnit[:3].lower() tU = toUnit[:3].lower() value = deci(value) if fU == tU: return float(value)