#!/usr/bin/python import sys import getopt ''' input : > -n "A+ b- C+ b+ A- C-" output : > Sebuah mesin membutuhkan dua aktuator pneumatic. Silinder A dan C menggunakan silinder double-acting. Silinder B menggunakan silinder single-acting. Silinder mesin tersebut bergerak sesuai dengan notasi: "A+ B- B+ A-". ''' def main(argv): try: opts, args = getopt.getopt(argv, "hn:", ["notasi="]) except getopt.GetoptError: print('parameternya nggak ketemu, coba pakai "-h" untuk selengkapnya') sys.exit(2) main_text = [] _notasi = "" _aktuator = ["", ""] for opt, arg in opts: if opt == '-h': print( 'python pneumatic2txt.py ... \n \ \n\ -n \t --notasi \t option WAJIB dengan sebagai notasinya ex: "A+ b- b+ A-" \ \t \t \t \t \t upper/lower-case menandakan silinder double/single-acting \ ') sys.exit() elif opt in ("-n", "--notasi"): _notasi = arg # Menghitung, memilah, dan menata Aktuator for c in _notasi: if (c.isalpha() & ("".join(_aktuator).find(c) == -1)): _aktuator[0 if c.isupper() else 1] += c main_text.append("Sebuah mesin membutuhkan {} aktuator pneumatic. " .format("".join(_aktuator).__len__())) for _ak in _aktuator: if(_ak.__len__() != 0): main_text.append("\nSilinder {}{}menggunakan silinder {}-acting. " .format( "".joinwxHexEditor( ["{}, ".format(_c) for _c in _ak[0:(_ak.__len__()-1)]]) if _ak.__len__() > 1 else _ak.upper(), "dan {} ".format(list(_ak).pop()) if _ak.__len__() > 1 else " ", "double" if _ak.isupper() else "single" )) main_text.append("\nSilinder mesin tersebut bergerak sesuai dengan notasi: \n\"{}\"." .format(_notasi.upper())) print("".join(main_text)) if __name__ == "__main__": main(sys.argv[1:])