def get_valid_input(value): while True: try: return float( input( value ) ) except ValueError: print( 'LOL, your input is not valid, please try again!!' ) ... ... CABLES = [10, 16, 25, 35, 50, 70, 95, 120, 150, 185, 240, 300, 400, 500, 630] ... ... def get_valid_cable_size(): print('Please take a note that acceptable cable size (sq.mm) are as follow: ') print(CABLES) while True: cableSize = get_valid_input( 'Please enter a cable size:' ) cableSize = int(cableSize) if cableSize in CABLES: return cableSize print('Please enter a valid cable size') ... ... def installation_methods(): print( 'Please choose the installation method\n\ (1) Mobile installation in open air, ambient temperature 30 deg C\n\ (2) Fixed and protected installation in open air, ambient temperature 30 deg C' ) while True: installation_method = get_valid_input( '1 or 2?' ) if installation_method in (1, 2): return installation_method ... ... def get_required_set_of_cables(Ampere, cableSize): while installation_method == 1: if cableSize == 10: return Ampere / 53 elif cableSize == 16: return Ampere / 71 elif cableSize == 25: return Ampere / 94 elif cableSize == 35: return Ampere / 117 elif cableSize == 50: return Ampere / 148 elif cableSize == 70: return Ampere / 185 elif cableSize == 95: return Ampere / 222 elif cableSize == 120: return Ampere / 260 elif cableSize == 150: return Ampere / 300 elif cableSize == 185: return Ampere / 341 elif cableSize == 240: return Ampere / 407 elif cableSize == 300: return Ampere / 468 elif cableSize == 400: return Ampere / 553 elif cableSize == 500: return Ampere / 620 elif cableSize == 630: return Ampere / 742 while installation_method == 2: if cableSize == 10: return Ampere / 77 elif cableSize == 16: return Ampere / 102 elif cableSize == 25: return Ampere / 136 elif cableSize == 35: return Ampere / 168 elif cableSize == 50: return Ampere / 203 elif cableSize == 70: return Ampere / 254 elif cableSize == 95: return Ampere / 299 elif cableSize == 120: return Ampere / 363 elif cableSize == 150: return Ampere / 416 elif cableSize == 185: return Ampere / 475 elif cableSize == 240: return Ampere / 559 elif cableSize == 300: return Ampere / 637 elif cableSize == 400: return Ampere / 722 elif cableSize == 500: return Ampere / 833 elif cableSize == 630: return Ampere / 833 ... ... if __name__ == '__main__': while True: print('******This program\'s algorithm behind is only for 1C H07RN-F insulated cable. Developed by Kyaw Myo Oo*****\n' 'Also please take a note that there is no consideration for voltage drop and other factor such as Ca, Cg & Ci. ') Ampere = get_valid_input( 'Please enter an Ampere:' ) cableSize = get_valid_cable_size() installation_method = installation_methods() required_set_of_cables = get_required_set_of_cables(Ampere, cableSize) print(f'The cables sets required for {cableSize}sq.mm cable are{required_set_of_cables: .2f} sets per phase for {Ampere}A' ) print('The program ends here! Good Luck!!\n-----------------------------------')Finally, my small program successfully works. Thanks Yoriz for the guide and teach me....Thanks you so much.....Finally, I fall in love with Python. I am from non-IT industry, working as electrical engineer...
How to keep looping until the user input is valid ?
Users browsing this thread: 1 Guest(s)