From 683d4950409a6e88a2cb57f6ac8ed6123f477cfe Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 09:59:08 +0530 Subject: [PATCH 01/18] Add files via upload --- add.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 add.py diff --git a/add.py b/add.py new file mode 100644 index 0000000..c744d31 --- /dev/null +++ b/add.py @@ -0,0 +1,4 @@ +def add(a, b): + print a + b + +add(1, -2) \ No newline at end of file From f4a5612298bd40f66fc63d0ab677cfa51a547a41 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 11:45:14 +0530 Subject: [PATCH 02/18] Add files via upload last 2 tasks --- dict.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 dict.py diff --git a/dict.py b/dict.py new file mode 100644 index 0000000..6a5f147 --- /dev/null +++ b/dict.py @@ -0,0 +1,20 @@ +D = {} + +def makeD(s): + a = s.split(";") + for i in a: + key, val = i.split("=") + D[key] = val + +def makeDshort(s): + return dict([i.split("=") for i in s.split(";")]) + +def dictocs(d): + s = '' + for i in d: + s += str(i) + '=' + str(d[i]) + return s + +makeD("a=bc;d=efg;h=ijkl;m=n") +print D +print dictocs({'a': 'bc', 'h': 'ijkl', 'm': 'n', 'd': 'efg'}) \ No newline at end of file From f4ce8dc5eec07b4d651a1e66bc81e9d5b9b63231 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 16:02:33 +0530 Subject: [PATCH 03/18] roots --- root.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 root.py diff --git a/root.py b/root.py new file mode 100644 index 0000000..ec6c878 --- /dev/null +++ b/root.py @@ -0,0 +1,10 @@ +def root(a, b, c): + sq = b * b - 4 * a * c + if sq < 0: + r1 = str(pow(abs(b * b - 4 * a * c), 0.5)) + 'i' + r2 = -b / 2 * a + return str(r2) + ' + ' + r1, str(r2) + ' - ' + r1 + else: + return (-b + pow(b * b - 4 * a * c, 0.5)) / (2 * a), (-b - pow(b * b - 4 * a * c, 0.5)) / (2 * a) + +print root(2, 3, 5) \ No newline at end of file From 8f7f84b4718ebc731b119516fd7dc2f8dd8261df Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 16:24:36 +0530 Subject: [PATCH 04/18] Add files via upload --- rootV2.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 rootV2.py diff --git a/rootV2.py b/rootV2.py new file mode 100644 index 0000000..111fdfe --- /dev/null +++ b/rootV2.py @@ -0,0 +1,10 @@ +def root(a, b, c): + sq = b * b - 4 * a * c + if sq < 0: + r1 = pow(abs(b * b - 4 * a * c), 0.5) + r2 = -b / 2 * a + return complex(r2, r1), complex(r2, -r1) + else: + return (-b + pow(b * b - 4 * a * c, 0.5)) / (2 * a), (-b - pow(b * b - 4 * a * c, 0.5)) / (2 * a) + +print root(2, 3, 5) \ No newline at end of file From afb7951327dc5252aaae2fcf1c2564be6dfcab25 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 16:43:55 +0530 Subject: [PATCH 05/18] updated --- rootV2.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/rootV2.py b/rootV2.py index 111fdfe..a43de1e 100644 --- a/rootV2.py +++ b/rootV2.py @@ -1,10 +1,6 @@ +import cmath + def root(a, b, c): - sq = b * b - 4 * a * c - if sq < 0: - r1 = pow(abs(b * b - 4 * a * c), 0.5) - r2 = -b / 2 * a - return complex(r2, r1), complex(r2, -r1) - else: - return (-b + pow(b * b - 4 * a * c, 0.5)) / (2 * a), (-b - pow(b * b - 4 * a * c, 0.5)) / (2 * a) + return (-b + cmath.sqrt(b * b - 4 * a * c)) / (2 * a), (-b - cmath.sqrt(b * b - 4 * a * c)) / (2 * a) -print root(2, 3, 5) \ No newline at end of file +print root(2, 3, 5) From aa342de38b4e64203baa63aa86c11f2f125d6486 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 17:31:03 +0530 Subject: [PATCH 06/18] menu class --- menu.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 menu.py diff --git a/menu.py b/menu.py new file mode 100644 index 0000000..eebbdac --- /dev/null +++ b/menu.py @@ -0,0 +1,12 @@ +class Menu: + def __init__(self): + self.d = {'vada' : 10} + def show(self): + for i in self.d.items(): + print str(i[0]) + ' costs ' + str(i[1]) + def add(self, a, b): + self.d[a] = b + +c = Menu() +c.add('idly', 20) +c.show() \ No newline at end of file From b6057f9124925418b5a5a6d6d58bdf088c47627a Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 18:16:43 +0530 Subject: [PATCH 07/18] Not sure, seems ok. --- order.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 order.py diff --git a/order.py b/order.py new file mode 100644 index 0000000..48bcffa --- /dev/null +++ b/order.py @@ -0,0 +1,46 @@ +class Menu: + def __init__(self): + self.d = {'vada' : 10} + + def __getitem__(self, i): + try: + return self.d[i] + except: + print('not in menu') + + def __setitem__(self, key, item): + self.d[key] = item + + def show(self): + print 'menu' + for i in self.d.items(): + print str(i[0]) + ' costs ' + str(i[1]) + + def add(self, a, b): + self.d[a] = b + +class Order: + d = {} + def __getitem__(self, i): + return self.d[i] + + def __setitem__(self, key, item): + Mobj = Menu() + if Mobj[key] is not None: + if Mobj[key] == item: + self.d[key] = item + else: + print 'wrong price' + + def show(self): + print 'order' + for i in self.d.items(): + print str(i[0]) + ' costs ' + str(i[1]) + + +c = Menu() +c['idly'] = 20 +c.show() +o = Order() +o['vaa'] = 10 +o.show() From f6f833bfee69b141e58989d00cbfca1f88063490 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 19:09:26 +0530 Subject: [PATCH 08/18] updated --- order.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/order.py b/order.py index 48bcffa..fb74695 100644 --- a/order.py +++ b/order.py @@ -6,7 +6,7 @@ def __getitem__(self, i): try: return self.d[i] except: - print('not in menu') + print('not in menu') def __setitem__(self, key, item): self.d[key] = item @@ -21,26 +21,32 @@ def add(self, a, b): class Order: d = {} + ord = {} + def __init__(self, m): + for i in m.d: + self.d[i] = m.d[i] + def __getitem__(self, i): return self.d[i] def __setitem__(self, key, item): - Mobj = Menu() - if Mobj[key] is not None: - if Mobj[key] == item: - self.d[key] = item + try: + if self.d[key] == item: + self.ord[key] = item else: print 'wrong price' + except: + print 'not in menu' def show(self): print 'order' - for i in self.d.items(): + for i in self.ord.items(): print str(i[0]) + ' costs ' + str(i[1]) c = Menu() c['idly'] = 20 c.show() -o = Order() -o['vaa'] = 10 +o = Order(c) +o['vada'] = 10 o.show() From 14934afc94c9b76363aecd5fb6f37df810dba2d1 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 18 Oct 2017 20:26:26 +0530 Subject: [PATCH 09/18] Update order.py --- order.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/order.py b/order.py index fb74695..7699b86 100644 --- a/order.py +++ b/order.py @@ -1,6 +1,6 @@ class Menu: def __init__(self): - self.d = {'vada' : 10} + self.d = {'vada' : 10, 'idly' : 20} def __getitem__(self, i): try: @@ -20,9 +20,9 @@ def add(self, a, b): self.d[a] = b class Order: - d = {} - ord = {} def __init__(self, m): + self.d = {} + self.ord = {} for i in m.d: self.d[i] = m.d[i] @@ -48,5 +48,7 @@ def show(self): c['idly'] = 20 c.show() o = Order(c) +o2 = Order(c) o['vada'] = 10 o.show() +o2.show() From 27efe36bb40e789ea6edca29ac373dfb3ef6ba8c Mon Sep 17 00:00:00 2001 From: adithm Date: Fri, 20 Oct 2017 11:43:59 +0530 Subject: [PATCH 10/18] changed --- order.py | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/order.py b/order.py index 7699b86..6106f91 100644 --- a/order.py +++ b/order.py @@ -2,53 +2,62 @@ class Menu: def __init__(self): self.d = {'vada' : 10, 'idly' : 20} + def __contains__(self, key): + return key in self.d + def __getitem__(self, i): try: return self.d[i] - except: - print('not in menu') + except Exception as error: + print 'not in menu. error - ' + repr(error) def __setitem__(self, key, item): self.d[key] = item def show(self): - print 'menu' + print 'menu :' for i in self.d.items(): - print str(i[0]) + ' costs ' + str(i[1]) + print '\t' + str(i[0]) + ' costs ' + str(i[1]) def add(self, a, b): self.d[a] = b class Order: + d = Menu() def __init__(self, m): - self.d = {} + self.d = m self.ord = {} - for i in m.d: - self.d[i] = m.d[i] def __getitem__(self, i): - return self.d[i] + try: + return self.ord[i] + except Exception as error: + print 'not in menu. error - ' + repr(error) def __setitem__(self, key, item): try: - if self.d[key] == item: + #if self.d[key] == item: + if key in self.d: self.ord[key] = item else: print 'wrong price' - except: - print 'not in menu' + except Exception as error: + print 'not in menu. error - ' + repr(error) def show(self): - print 'order' + print 'order :' for i in self.ord.items(): - print str(i[0]) + ' costs ' + str(i[1]) + print '\t' + str(i[0]) + ' costs ' + str(i[1]) c = Menu() c['idly'] = 20 +print c['i'] c.show() -o = Order(c) +o1 = Order(c) o2 = Order(c) -o['vada'] = 10 -o.show() +o1['vada'] = 10 +o2['idly'] = 20 +print o1['vada'] +o1.show() o2.show() From 64265fc6d1b10631265adc2e25924377e1bac09d Mon Sep 17 00:00:00 2001 From: adithm Date: Fri, 20 Oct 2017 11:50:41 +0530 Subject: [PATCH 11/18] exceptions updated --- order.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/order.py b/order.py index 6106f91..8383448 100644 --- a/order.py +++ b/order.py @@ -35,14 +35,13 @@ def __getitem__(self, i): print 'not in menu. error - ' + repr(error) def __setitem__(self, key, item): - try: - #if self.d[key] == item: if key in self.d: - self.ord[key] = item + if self.d[key] == item: + self.ord[key] = item + else: + raise Exception('wrong price') else: - print 'wrong price' - except Exception as error: - print 'not in menu. error - ' + repr(error) + raise Exception('not in menu') def show(self): print 'order :' From 2241dd91c6d4faaca6419a66b04a81ff5aeab60f Mon Sep 17 00:00:00 2001 From: adithm Date: Sun, 29 Oct 2017 08:11:52 +0530 Subject: [PATCH 12/18] exceptions (final) --- order.py | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/order.py b/order.py index 8383448..8635c29 100644 --- a/order.py +++ b/order.py @@ -1,17 +1,23 @@ +class ITEMNOTINMENU(Exception): + pass +class WrongPrice(Exception): + pass + + class Menu: - def __init__(self): + def _init_(self): self.d = {'vada' : 10, 'idly' : 20} - def __contains__(self, key): + def _contains_(self, key): return key in self.d - def __getitem__(self, i): - try: + def _getitem_(self, i): + if i in self.d: return self.d[i] - except Exception as error: - print 'not in menu. error - ' + repr(error) - - def __setitem__(self, key, item): + else: + raise ITEMNOTINMENU + + def _setitem_(self, key, item): self.d[key] = item def show(self): @@ -24,24 +30,24 @@ def add(self, a, b): class Order: d = Menu() - def __init__(self, m): + def _init_(self, m): self.d = m self.ord = {} - def __getitem__(self, i): - try: + def _getitem_(self, i): + if i in self.ord: return self.ord[i] - except Exception as error: - print 'not in menu. error - ' + repr(error) + else: + raise ITEMNOTINMENU - def __setitem__(self, key, item): + def _setitem_(self, key, item): if key in self.d: if self.d[key] == item: self.ord[key] = item else: - raise Exception('wrong price') + raise WrongPrice else: - raise Exception('not in menu') + raise ITEMNOTINMENU def show(self): print 'order :' @@ -51,12 +57,21 @@ def show(self): c = Menu() c['idly'] = 20 -print c['i'] +try: + print c['unknown'] +except ITEMNOTINMENU: + print 'not in menu' + c.show() o1 = Order(c) o2 = Order(c) -o1['vada'] = 10 -o2['idly'] = 20 -print o1['vada'] +try: + o1['vada'] = 10 + o2['idly'] = 20 +except ITEMNOTINMENU: + print 'not in menu' +except WrongPrice: + print 'wrong price' + o1.show() o2.show() From ece21ad910d2a62e38ac842510c5faacdea7e365 Mon Sep 17 00:00:00 2001 From: adithm Date: Sun, 29 Oct 2017 09:00:13 +0530 Subject: [PATCH 13/18] Exceptions (final) --- order.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/order.py b/order.py index 8635c29..966151c 100644 --- a/order.py +++ b/order.py @@ -3,21 +3,20 @@ class ITEMNOTINMENU(Exception): class WrongPrice(Exception): pass - class Menu: - def _init_(self): + def __init__(self): self.d = {'vada' : 10, 'idly' : 20} - def _contains_(self, key): + def __contains__(self, key): return key in self.d - def _getitem_(self, i): + def __getitem__(self, i): if i in self.d: return self.d[i] else: raise ITEMNOTINMENU - def _setitem_(self, key, item): + def __setitem__(self, key, item): self.d[key] = item def show(self): @@ -28,19 +27,19 @@ def show(self): def add(self, a, b): self.d[a] = b -class Order: +class Order(): d = Menu() - def _init_(self, m): + def __init__(self, m): self.d = m self.ord = {} - def _getitem_(self, i): + def __getitem__(self, i): if i in self.ord: return self.ord[i] else: raise ITEMNOTINMENU - def _setitem_(self, key, item): + def __setitem__(self, key, item): if key in self.d: if self.d[key] == item: self.ord[key] = item From d0d602414b2886650ba6abaab51c8264c9807a6f Mon Sep 17 00:00:00 2001 From: adithm Date: Sun, 29 Oct 2017 10:23:03 +0530 Subject: [PATCH 14/18] inheritance (not sure) --- orderInheritance.py | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 orderInheritance.py diff --git a/orderInheritance.py b/orderInheritance.py new file mode 100644 index 0000000..81ec9eb --- /dev/null +++ b/orderInheritance.py @@ -0,0 +1,78 @@ +class ITEMNOTINMENU(Exception): + pass +class WrongPrice(Exception): + pass + +class Help(object): + def getitem(self, i, a): + if i in a: + return a[i] + else: + raise ITEMNOTINMENU + + def show(self, a): + for i in a.items(): + print '\t' + str(i[0]) + ' costs ' + str(i[1]) + +class Menu(Help): + def __init__(self): + self.d = {'vada' : 10, 'idly' : 20} + + def __getitem__(self, i): + return super(Menu, self).getitem(i, self.d) + + def __contains__(self, key): + return key in self.d + + def __setitem__(self, key, item): + self.d[key] = item + + def show(self): + print 'menu :' + super(Menu, self).show(self.d) + + def add(self, a, b): + self.d[a] = b + +class Order(Help): + def __init__(self, m): + self.d = m + self.ordL = {} + + def __getitem__(self, i): + return super(Order, self).getitem(i, self.ordL) + + def __setitem__(self, key, item): + if key in self.d: + if self.d[key] == item: + self.ordL[key] = item + else: + raise WrongPrice + else: + raise ITEMNOTINMENU + + def show(self): + print 'order :' + super(Order, self).show(self.ordL) + + +c = Menu() +c['idly'] = 20 +try: + print c['unknown'] +except ITEMNOTINMENU: + print 'not in menu' + +c.show() +o1 = Order(c) +o2 = Order(c) +try: + o1['vada'] = 10 + o2['idly'] = 20 +except ITEMNOTINMENU: + print 'not in menu' +except WrongPrice: + print 'wrong price' + +o1.show() +o2.show() \ No newline at end of file From 3e60de8d70abba9fabf86b7384a6bcd3668a9c4f Mon Sep 17 00:00:00 2001 From: adithm Date: Tue, 31 Oct 2017 17:16:16 +0530 Subject: [PATCH 15/18] Add files via upload --- inherit dict.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 inherit dict.py diff --git a/inherit dict.py b/inherit dict.py new file mode 100644 index 0000000..ff4e479 --- /dev/null +++ b/inherit dict.py @@ -0,0 +1,71 @@ +class ITEMNOTINMENU(Exception): + pass +class WrongPrice(Exception): + pass + +class Menu(dict): + def __init__(self): + self.d = {'vada' : 10, 'idly' : 20} + + def __getitem__(self, i): + return dict.__getitem__(self.d, i) + + def __contains__(self, key): + return key in self.d + + def __setitem__(self, key, item): + dict.__setitem__(self.d, key, item) + + def show(self): + print 'menu :' + for i in self.d.items(): + print '\t' + str(i[0]) + ' costs ' + str(i[1]) + + def add(self, a, b): + self.d[a] = b + +class Order(dict): + def __init__(self, m): + self.d = m.d + self.ordL = {} + + def __getitem__(self, i): + return dict.__getitem__(self.ordL, i) + + def __setitem__(self, key, item): + if key in self.d: + if self.d[key] == item: + self.ordL[key] = item + else: + raise WrongPrice + else: + raise ITEMNOTINMENU + pass + + def show(self): + print 'order :' + for i in self.ordL.items(): + print '\t' + str(i[0]) + ' costs ' + str(i[1]) + + +c = Menu() +c['idly'] = 30 +print c['idly'] +try: + print c['unknown'] +except KeyError: + print 'not in menu' + +c.show() +o1 = Order(c) +o2 = Order(c) +try: + o1['vada'] = 10 + o2['idly'] = 30 +except ITEMNOTINMENU: + print 'not in menu' +except WrongPrice: + print 'wrong price' + +o1.show() +o2.show() \ No newline at end of file From d4f7f56ba1627a6ca422cf689089b6fce9fbf496 Mon Sep 17 00:00:00 2001 From: adithm Date: Wed, 1 Nov 2017 15:44:51 +0530 Subject: [PATCH 16/18] Update inherit dict.py --- inherit dict.py | 51 +++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/inherit dict.py b/inherit dict.py index ff4e479..d6c84b1 100644 --- a/inherit dict.py +++ b/inherit dict.py @@ -1,71 +1,60 @@ + class ITEMNOTINMENU(Exception): pass class WrongPrice(Exception): pass class Menu(dict): - def __init__(self): - self.d = {'vada' : 10, 'idly' : 20} - def __getitem__(self, i): - return dict.__getitem__(self.d, i) - - def __contains__(self, key): - return key in self.d - - def __setitem__(self, key, item): - dict.__setitem__(self.d, key, item) - - def show(self): - print 'menu :' - for i in self.d.items(): - print '\t' + str(i[0]) + ' costs ' + str(i[1]) - - def add(self, a, b): - self.d[a] = b + if self.get(i) is None: + raise ITEMNOTINMENU + else: + return self.get(i) class Order(dict): def __init__(self, m): - self.d = m.d - self.ordL = {} - - def __getitem__(self, i): - return dict.__getitem__(self.ordL, i) + self.d = m + dict.__init__(self) def __setitem__(self, key, item): if key in self.d: if self.d[key] == item: - self.ordL[key] = item + self.update({key : item}) else: raise WrongPrice else: raise ITEMNOTINMENU - pass def show(self): print 'order :' - for i in self.ordL.items(): + for i in self.items(): print '\t' + str(i[0]) + ' costs ' + str(i[1]) c = Menu() +c['vada'] = 10 c['idly'] = 30 -print c['idly'] +print c['vada'] try: print c['unknown'] -except KeyError: +except ITEMNOTINMENU: print 'not in menu' -c.show() o1 = Order(c) o2 = Order(c) try: o1['vada'] = 10 +except ITEMNOTINMENU: + print 'not in menu' +except WrongPrice: + print 'wrong price' + +try: o2['idly'] = 30 except ITEMNOTINMENU: print 'not in menu' except WrongPrice: print 'wrong price' - + o1.show() -o2.show() \ No newline at end of file +o2.show() From b0658175dc09f89d4e74ce3e44282f87705f5c8a Mon Sep 17 00:00:00 2001 From: adithm Date: Sun, 12 Nov 2017 11:13:17 +0530 Subject: [PATCH 17/18] Add files via upload --- files.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 files.py diff --git a/files.py b/files.py new file mode 100644 index 0000000..5845f5c --- /dev/null +++ b/files.py @@ -0,0 +1,4 @@ +with open('first.txt', 'r') as inp: + with open('second.txt', 'w') as out: + for line in inp: + out.write(line) \ No newline at end of file From d09b783271b7084a0d43990e3c011b5b40811420 Mon Sep 17 00:00:00 2001 From: adithm Date: Sun, 12 Nov 2017 20:56:41 +0530 Subject: [PATCH 18/18] Update files.py --- files.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/files.py b/files.py index 5845f5c..4cd03f9 100644 --- a/files.py +++ b/files.py @@ -1,4 +1,7 @@ -with open('first.txt', 'r') as inp: - with open('second.txt', 'w') as out: - for line in inp: - out.write(line) \ No newline at end of file +try: + with open('first.txt', 'r') as inp: + with open('second.txt', 'w') as out: + for line in inp: + out.write(line) +except IOError: + print "Wrong file or file path"