From 14ef13bbea05fdf5980f5550e5c0dc65b99f4e12 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 01:59:44 +0600 Subject: [PATCH 01/71] Update Day 3.md --- Status/Day 3.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index 41e1902..0389ae7 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -290,7 +290,18 @@ for i in word: digit += 1 print(f"LETTERS {letter}\n{digits}") # two different types of formating method is shown in both solution ``` +--- +```python +''' Solution by: popomaticbubble +''' +import re +input_string = input('> ') +print() +counter = {"LETTERS":len(re.findall("[a-zA-Z]", input_string)), "NUMBERS":len(re.findall("[0-9]", input_string))} + +print(counter) +``` --- ## Conclusion From 34998a0f9726acca7f22863e62b70dd2bfd98a61 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 02:31:58 +0600 Subject: [PATCH 02/71] Update Day 5.md --- Status/Day 5.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Status/Day 5.md b/Status/Day 5.md index 90bd522..3d4c974 100644 --- a/Status/Day 5.md +++ b/Status/Day 5.md @@ -195,7 +195,25 @@ while True: lst = list(int(i[2:]) if i[0] == 'D' else -int(i[2:]) for i in lines) print(sum(lst)) ``` +--- +```python +'''Solution by: popomaticbubble +''' +transactions = [] +while True: + text = input("> ") + if text: + text = text.strip('D ') + text = text.replace('W ', '-') + transactions.append(text) + else: + break + +transactions = (int(i) for i in transactions) +balance = sum(transactions) +print(f"Balance is {balance}") +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%204.md "Day 4") From e6d80133f2ae5195676a226980d4b9dbd30b1d6d Mon Sep 17 00:00:00 2001 From: Minnie Lahoti <64796044+minnielahoti@users.noreply.github.com> Date: Wed, 20 May 2020 21:38:34 -0500 Subject: [PATCH 03/71] Added my version of solutions The solutions that I have added include a try and except block to ensure the user inputs a number. --- Status/{Day 1.md => Day 1_minnie.md} | 39 +++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) rename Status/{Day 1.md => Day 1_minnie.md} (77%) diff --git a/Status/Day 1.md b/Status/Day 1_minnie.md similarity index 77% rename from Status/Day 1.md rename to Status/Day 1_minnie.md index 524e036..86a0cb8 100644 --- a/Status/Day 1.md +++ b/Status/Day 1_minnie.md @@ -103,7 +103,25 @@ print fact(x) print(shortFact(n)) ``` +- **Including Try and Except Blocks** +```python + #Solution by minnielahoti + + while True: + try: + num = int(input("Enter a number: ")) + break + except ValueError as err: + print(err) + + org = num + fact = 1 + while num: + fact = num * fact + num = num - 1 + + print(f'the factorial of {org} is {fact}') --- # Question 3 @@ -155,12 +173,31 @@ n = int(input()) ans={i : i*i for i in range(1,n+1)} print(ans) ``` +- **Including Try and Except Blocks** +```python + #Solution by minnielahoti + + while True: + try: + num = int(input("Enter a number: ")) + break + except ValueError as err: + print(err) + + dictio = dict() +for item in range(num+1): + if item == 0: + continue + else: + dictio[item] = item * item + +print(dictio) --- ## Conclusion -**_These was the solved problems of day 1. The above problems are very easy for the basic syntex learners.I have shown some easy ways of coding in my solutions. Lets see how to face and attack new problems in the next day._** +**_These were the solved problems of day 1. The above problems are very easy for the basic syntex learners.I have shown some easy ways of coding in my solutions. Lets see how to face and attack new problems in the next day._** [**_go to next day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%202.md "Next Day") From e83a87a8577272d5e2314e73f0e408cfd9891143 Mon Sep 17 00:00:00 2001 From: Minnie Lahoti <64796044+minnielahoti@users.noreply.github.com> Date: Wed, 20 May 2020 21:49:21 -0500 Subject: [PATCH 04/71] Added single line solution to question 4 --- Status/{Day 2.md => Day 2_minnie.md} | 4 ++++ 1 file changed, 4 insertions(+) rename Status/{Day 2.md => Day 2_minnie.md} (98%) diff --git a/Status/Day 2.md b/Status/Day 2_minnie.md similarity index 98% rename from Status/Day 2.md rename to Status/Day 2_minnie.md index ca34f29..13a0d31 100644 --- a/Status/Day 2.md +++ b/Status/Day 2_minnie.md @@ -45,6 +45,10 @@ tpl = tuple(lst) # tuple method converts list to tuple print(lst) print(tpl) ``` +**Single line solution Python 3** +```python solution by minnielahoti + +print(tuple(input("Enter a series of numbers separated by a comma :").split(','))) --- From 3d134ee5041a5cf0db356ce432b3b15689f826a3 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 21:05:31 +0600 Subject: [PATCH 05/71] Revert "Added single line solution to question 4" --- Status/{Day 2_minnie.md => Day 2.md} | 4 ---- 1 file changed, 4 deletions(-) rename Status/{Day 2_minnie.md => Day 2.md} (98%) diff --git a/Status/Day 2_minnie.md b/Status/Day 2.md similarity index 98% rename from Status/Day 2_minnie.md rename to Status/Day 2.md index 13a0d31..ca34f29 100644 --- a/Status/Day 2_minnie.md +++ b/Status/Day 2.md @@ -45,10 +45,6 @@ tpl = tuple(lst) # tuple method converts list to tuple print(lst) print(tpl) ``` -**Single line solution Python 3** -```python solution by minnielahoti - -print(tuple(input("Enter a series of numbers separated by a comma :").split(','))) --- From 5d25bcf203113b6953f3b3d2fb1fc480a814b449 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 21:05:52 +0600 Subject: [PATCH 06/71] Revert "Added my version of solutions" --- Status/{Day 1_minnie.md => Day 1.md} | 39 +--------------------------- 1 file changed, 1 insertion(+), 38 deletions(-) rename Status/{Day 1_minnie.md => Day 1.md} (77%) diff --git a/Status/Day 1_minnie.md b/Status/Day 1.md similarity index 77% rename from Status/Day 1_minnie.md rename to Status/Day 1.md index 86a0cb8..524e036 100644 --- a/Status/Day 1_minnie.md +++ b/Status/Day 1.md @@ -103,25 +103,7 @@ print fact(x) print(shortFact(n)) ``` -- **Including Try and Except Blocks** -```python - #Solution by minnielahoti - - while True: - try: - num = int(input("Enter a number: ")) - break - except ValueError as err: - print(err) - - org = num - fact = 1 - while num: - fact = num * fact - num = num - 1 - - print(f'the factorial of {org} is {fact}') --- # Question 3 @@ -173,31 +155,12 @@ n = int(input()) ans={i : i*i for i in range(1,n+1)} print(ans) ``` -- **Including Try and Except Blocks** -```python - #Solution by minnielahoti - - while True: - try: - num = int(input("Enter a number: ")) - break - except ValueError as err: - print(err) - - dictio = dict() -for item in range(num+1): - if item == 0: - continue - else: - dictio[item] = item * item - -print(dictio) --- ## Conclusion -**_These were the solved problems of day 1. The above problems are very easy for the basic syntex learners.I have shown some easy ways of coding in my solutions. Lets see how to face and attack new problems in the next day._** +**_These was the solved problems of day 1. The above problems are very easy for the basic syntex learners.I have shown some easy ways of coding in my solutions. Lets see how to face and attack new problems in the next day._** [**_go to next day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%202.md "Next Day") From 0004d0ddd3d695f8d5e3994781d8e8f4485fd296 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 21:09:37 +0600 Subject: [PATCH 07/71] Update Day 2.md --- Status/Day 2.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Status/Day 2.md b/Status/Day 2.md index ca34f29..078c47c 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -45,7 +45,12 @@ tpl = tuple(lst) # tuple method converts list to tuple print(lst) print(tpl) ``` - +--- +```python +'''solution by: minnielahoti +''' +print(tuple(input("Enter a series of numbers separated by a comma :").split(','))) +``` --- # Question 5 From 817a53430ad41348a1b4f6d46c9e695a5cf7c3cf Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Thu, 21 May 2020 21:20:01 +0600 Subject: [PATCH 08/71] Update Day 1.md --- Status/Day 1.md | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/Status/Day 1.md b/Status/Day 1.md index 524e036..a19a5d7 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -103,7 +103,25 @@ print fact(x) print(shortFact(n)) ``` - +--- +```python +'''Solution by: minnielahoti +''' + +while True: +try: + num = int(input("Enter a number: ")) + break +except ValueError as err: + print(err) + +org = num +fact = 1 +while num: + fact = num * fact + num = num - 1 +print(f'the factorial of {org} is {fact}') +``` --- # Question 3 @@ -155,7 +173,26 @@ n = int(input()) ans={i : i*i for i in range(1,n+1)} print(ans) ``` - +--- +```python +'''Solution by: minnielahoti +''' + +while True: +try: + num = int(input("Enter a number: ")) + break +except ValueError as err: + print(err) + +dictio = dict() +for item in range(num+1): + if item == 0: + continue + else: + dictio[item] = item * item +print(dictio) +``` --- ## Conclusion From 19107af472e728d4269cec2217f6e0b6311dff95 Mon Sep 17 00:00:00 2001 From: Jafarbek Ulmasov Date: Sun, 31 May 2020 20:13:53 +0500 Subject: [PATCH 09/71] Binary Search solution --- Status/Day_17.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Status/Day_17.md b/Status/Day_17.md index 9fc4ef4..0f1b7e3 100644 --- a/Status/Day_17.md +++ b/Status/Day_17.md @@ -125,7 +125,26 @@ print bin_search(li,12) #to be written ``` - +**Solution by ulmasovjafarbek: Python 3** +```python +def binary_search(lst, item): + low = 0 + high = len(lst) - 1 + + while low <= high: + mid = round((low + high) / 2) + + if lst[mid] == item: + return mid + elif lst[mid] > item: + high = mid - 1 + else: + low = mid + 1 + return None + +lst = [1,3,5,7,] +print(binary_search(lst, 9)) +``` --- **Solution by AasaiAlangaram: Python 3** From b045a18100f580c681336b3aa4a99a05f2b0c4b0 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 31 May 2020 21:15:15 +0600 Subject: [PATCH 10/71] Update Day_16.md --- Status/Day_16.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Status/Day_16.md b/Status/Day_16.md index a905a49..3fcea00 100644 --- a/Status/Day_16.md +++ b/Status/Day_16.md @@ -200,6 +200,22 @@ fibo = [str(i) for i in fibo] # converting integer data to string type ans = ",".join(fibo) # joining all string element of fibo with ',' character print(ans) +``` +--- +```python + +'''Solution by: popomaticbubble +''' +def fibo(n): + if n < 2: return n + return fibo(n-1)+fibo(n-2) + +def print_fiblist(n): + fib_list = [(str(fibo(i))) for i in range(0, n+1)] + return print(",".join(fib_list)) +n = int(input()) +print_fiblist(n) + ``` --- From 9697e3ac2aeb547e0976e17cd82d82c1227fc9e8 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 31 May 2020 21:20:31 +0600 Subject: [PATCH 11/71] Update Day_10.md --- Status/Day_10.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Status/Day_10.md b/Status/Day_10.md index 23d1f65..3116166 100644 --- a/Status/Day_10.md +++ b/Status/Day_10.md @@ -165,7 +165,15 @@ def printList(): printList() ``` - +--- +```python +'''Solution by: popomaticbubble +''' +def squares(n): + squares_list = [i**2 for i in range(1,n+1)] + print(squares_list[0:5]) +squares(20) +``` --- ```python From a812c5606d586020069c40878a856ad6d9c803c5 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 31 May 2020 21:23:26 +0600 Subject: [PATCH 12/71] Update Day_10.md --- Status/Day_10.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Status/Day_10.md b/Status/Day_10.md index 3116166..33be5a7 100644 --- a/Status/Day_10.md +++ b/Status/Day_10.md @@ -223,6 +223,15 @@ def printList(): printList() ``` +--- +```python +'''Solution by: popomaticbubble +''' +def squares(n): + squares_list = [i**2 for i in range(1,n+1)] + print(squares_list[-5:]) +squares(20) +``` --- From 3ab82113408dab600014af274388dc210aaaafa2 Mon Sep 17 00:00:00 2001 From: Pratik B <65227741+pratikb0501@users.noreply.github.com> Date: Tue, 2 Jun 2020 13:22:42 +0530 Subject: [PATCH 13/71] Update Day6.md I've added a short solution, using Regular Expression, to the Question 18. --- Status/Day 6.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Status/Day 6.md b/Status/Day 6.md index 7bba039..bdcff0f 100644 --- a/Status/Day 6.md +++ b/Status/Day 6.md @@ -153,6 +153,18 @@ for i in s: print(",".join(lst)) ``` +**OR** + +'''python +import re + +a = input('Enter passwords: ').split(',') +pass_pattern = re.compile(r"^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[$#@]).{6,12}$") +for i in a: + if pass_pattern.fullmatch(i): + print(i) +''' + --- # Question 19 From baa485251afd9b93ece2f82080370df7870b5e0e Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Tue, 2 Jun 2020 18:08:00 +0600 Subject: [PATCH 14/71] Update Day 6.md --- Status/Day 6.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Status/Day 6.md b/Status/Day 6.md index bdcff0f..aa49d4b 100644 --- a/Status/Day 6.md +++ b/Status/Day 6.md @@ -153,17 +153,18 @@ for i in s: print(",".join(lst)) ``` -**OR** +--- -'''python +```python +'''Solution by: pratikb0501 +''' import re - a = input('Enter passwords: ').split(',') pass_pattern = re.compile(r"^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[$#@]).{6,12}$") for i in a: if pass_pattern.fullmatch(i): print(i) -''' +``` --- From 5870711506369888e7a1d85a34423cee3cfe77d5 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Tue, 2 Jun 2020 22:06:12 +0600 Subject: [PATCH 15/71] Update Day 2.md --- Status/Day 2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Status/Day 2.md b/Status/Day 2.md index 078c47c..ffbcf80 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -384,7 +384,7 @@ for sentence in lines: ```python lst = [] -while input(): +while True: x = input() if len(x)==0: break From 8449fa276de83743dbbb559d900f2fd60adaa057 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Tue, 2 Jun 2020 22:07:57 +0600 Subject: [PATCH 16/71] Update Day 2.md --- Status/Day 2.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Status/Day 2.md b/Status/Day 2.md index ffbcf80..995783b 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -220,7 +220,15 @@ D = input().split(',') D = list(map(calc,D)) # applying calc function on D and storing as a list print(",".join(D)) ``` - +--- +```python +'''Solution by: parian5 +''' +from math import sqrt +C, H = 50, 30 +mylist = input().split(',') +print(*(round(sqrt(2*C*int(D)/H)) for D in mylist), sep=",") +``` --- # Question 7 From 06f452c32946047d92b33d6f2c57e586d5a302f4 Mon Sep 17 00:00:00 2001 From: Pratik B <65227741+pratikb0501@users.noreply.github.com> Date: Wed, 3 Jun 2020 11:11:25 +0530 Subject: [PATCH 17/71] Update Day 7.md I have added a minor tweak to a solution as the solution displays number zero which is not divisible by seven . Therefore, the range should begin from 1 --- Status/Day 7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Status/Day 7.md b/Status/Day 7.md index 6e86094..c11af59 100644 --- a/Status/Day 7.md +++ b/Status/Day 7.md @@ -40,7 +40,7 @@ for i in MyGen().by_seven( int(input('Please enter a number... ')) ): class Divisible: def by_seven(self, n): - for number in range(n + 1): + for number in range(1,n + 1): if number % 7 == 0: yield number From 36d5d4b48bdfda6fce8210b8ed0a977eaa7759c6 Mon Sep 17 00:00:00 2001 From: Pratik B <65227741+pratikb0501@users.noreply.github.com> Date: Wed, 3 Jun 2020 13:43:22 +0530 Subject: [PATCH 18/71] Update Day 7.md I have added another solution using strip method which I think would help other along with the usual split method --- Status/Day 7.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Status/Day 7.md b/Status/Day 7.md index 6e86094..be23cb3 100644 --- a/Status/Day 7.md +++ b/Status/Day 7.md @@ -142,6 +142,29 @@ dist = round(math.sqrt(x**2 + y**2)) # euclidean distance = square root of (x^2 print(dist) ``` +'''python +from math import sqrt + +lst = [] +position = [0,0] +while True: + a = input() + if not a: + break + lst.append(a) +for i in lst: + if 'UP' in i: + position[0] -= int(i.strip('UP ')) + if 'DOWN' in i: + position[0] += int(i.strip('DOWN ')) + if 'LEFT' in i: + position[1] -= int(i.strip('LEFT ')) + if 'RIGHT' in i: + position[1] += int(i.strip('RIGHT ')) +print(round(sqrt(position[1] ** 2 + position[0] ** 2))) + +''' + --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%206.md "Day 6") From ad2f71297be13d32712c129d3a27d5b1dbcad765 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 3 Jun 2020 15:55:39 +0600 Subject: [PATCH 19/71] Update Day 7.md --- Status/Day 7.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Status/Day 7.md b/Status/Day 7.md index be23cb3..9bff8ad 100644 --- a/Status/Day 7.md +++ b/Status/Day 7.md @@ -141,10 +141,12 @@ while True: dist = round(math.sqrt(x**2 + y**2)) # euclidean distance = square root of (x^2+y^2) and rounding it to nearest integer print(dist) ``` +--- +```python +'''Solution by: pratikb0501 +''' -'''python from math import sqrt - lst = [] position = [0,0] while True: @@ -162,9 +164,7 @@ for i in lst: if 'RIGHT' in i: position[1] += int(i.strip('RIGHT ')) print(round(sqrt(position[1] ** 2 + position[0] ** 2))) - -''' - +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%206.md "Day 6") From 548aa8fccd5829498c80bf76e1b25ef51170e210 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 3 Jun 2020 15:59:14 +0600 Subject: [PATCH 20/71] Update Day 4.md --- Status/Day 4.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Status/Day 4.md b/Status/Day 4.md index 4b5c510..78ca2c7 100644 --- a/Status/Day 4.md +++ b/Status/Day 4.md @@ -160,6 +160,16 @@ a = input() total = int(a) + int(2*a) + int(3*a) + int(4*a) # N*a=Na, for example a="23", 2*a="2323",3*a="232323" print(total) ``` +--- +```python +'''Solution by: ChichiLovesDonkeys +''' +from functools import reduce +x = input('please enter a digit:') +# reduce(lambda x, y: int(x) + int(y), [x, x * 2, x * 3, x * 4]) +reduce(lambda x, y: int(x) + int(y), [x*i for i in range(1,5)]) +``` +--- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%203.md "Day 3") From b393683301199bd14b76814aea15be1e9eebcd47 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 3 Jun 2020 15:59:41 +0600 Subject: [PATCH 21/71] Update Day 4.md --- Status/Day 4.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Status/Day 4.md b/Status/Day 4.md index 78ca2c7..4d476ad 100644 --- a/Status/Day 4.md +++ b/Status/Day 4.md @@ -166,7 +166,6 @@ print(total) ''' from functools import reduce x = input('please enter a digit:') -# reduce(lambda x, y: int(x) + int(y), [x, x * 2, x * 3, x * 4]) reduce(lambda x, y: int(x) + int(y), [x*i for i in range(1,5)]) ``` --- From 3c66759fa3c88e4c6813f58d860a2cff935fd4b1 Mon Sep 17 00:00:00 2001 From: Nikita <66539239+nikitaMogilev@users.noreply.github.com> Date: Sat, 6 Jun 2020 19:51:44 -0500 Subject: [PATCH 22/71] Update Day 3.md Another solution for Question 11 --- Status/Day 3.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index 0389ae7..33d1bbe 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -151,6 +151,14 @@ data = list(filter(lambda i:int(i,2)%5==0,data)) # lambda is an operator that print(",".join(data)) ``` +**OR** + +```python +data = input().split(',') +data = [num for num in data if int(num, 2) % 5 == 0] +print(','.join(data)) +``` + --- # Question 12 From ba7d0cc40742a9afa324e2cf13390bffea72bb70 Mon Sep 17 00:00:00 2001 From: Pratik B <65227741+pratikb0501@users.noreply.github.com> Date: Sun, 7 Jun 2020 09:20:52 +0530 Subject: [PATCH 23/71] Update Day_21.md I've added a solution to question 85 using list comprehension and logical operator 'and' --- Status/Day_21.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Status/Day_21.md b/Status/Day_21.md index 17272ac..5c69198 100644 --- a/Status/Day_21.md +++ b/Status/Day_21.md @@ -19,7 +19,6 @@ li = [12,24,35,70,88,120,155] li = [x for (i,x) in enumerate(li) if i not in (0,4,5)] print li ``` - --- **My Solution: Python 3** @@ -28,6 +27,11 @@ print li li = [12,24,35,70,88,120,155] li = [li[i] for i in range(len(li)) if i not in (0,4,5)] print(li) +``` +```python +li = [12, 24, 35, 70, 88, 120, 155] +print(list(j for i, j in enumerate(li) if i != 0 and i != 4 and i != 5)) + ``` --- From b84d6f57c84422722ddf135f9dece4f46c6d7738 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 7 Jun 2020 13:41:03 +0600 Subject: [PATCH 24/71] Update Day_21.md --- Status/Day_21.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Status/Day_21.md b/Status/Day_21.md index 5c69198..9dacb7f 100644 --- a/Status/Day_21.md +++ b/Status/Day_21.md @@ -28,7 +28,10 @@ li = [12,24,35,70,88,120,155] li = [li[i] for i in range(len(li)) if i not in (0,4,5)] print(li) ``` +--- ```python +'''Solution by: pratikb0501 +''' li = [12, 24, 35, 70, 88, 120, 155] print(list(j for i, j in enumerate(li) if i != 0 and i != 4 and i != 5)) From 6d449720a19b4629883a3a66c23f027c1b5a9fa6 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 7 Jun 2020 13:43:13 +0600 Subject: [PATCH 25/71] Update Day 3.md --- Status/Day 3.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Status/Day 3.md b/Status/Day 3.md index 33d1bbe..75e9cfc 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -151,9 +151,11 @@ data = list(filter(lambda i:int(i,2)%5==0,data)) # lambda is an operator that print(",".join(data)) ``` -**OR** +--- ```python +'''Solution by: nikitaMogilev +''' data = input().split(',') data = [num for num in data if int(num, 2) % 5 == 0] print(','.join(data)) From ba5abfc26149b6ed10e0773133498068a4e084fd Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sun, 7 Jun 2020 13:46:12 +0600 Subject: [PATCH 26/71] Update Day 5.md --- Status/Day 5.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Status/Day 5.md b/Status/Day 5.md index 3d4c974..8fd0db9 100644 --- a/Status/Day 5.md +++ b/Status/Day 5.md @@ -215,6 +215,22 @@ balance = sum(transactions) print(f"Balance is {balance}") ``` --- +```python +'''Solution by: ChichiLovesDonkeys +''' + +money = 0 +while 1: + trans = input().split(' ') + if trans[0] == 'D': + money = money + int(trans[1]) + elif trans[0] == 'W': + money = money - int(trans[1]) + elif input() == '': + break + print(f'Your current balance is: {money}') +``` +--- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%204.md "Day 4") From 01a96aa889ad2bd079671c90955a3a4452b3be61 Mon Sep 17 00:00:00 2001 From: Nikita Kukshinski <66539239+nikitaMogilev@users.noreply.github.com> Date: Sun, 7 Jun 2020 14:28:33 -0500 Subject: [PATCH 27/71] Update Day 3.md One line solution with comments for Question 12 --- Status/Day 3.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index 75e9cfc..7af5686 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -227,6 +227,16 @@ print(",".join(lst)) --- +```python +'''Solution by: nikitaMogilev +''' +# map() digits of each number with lambda function and check if all() of them even +# str(num) gives us opportunity to iterate through number by map() and join() +print(','.join([str(num) for num in range(1000, 3001) if all(map(lambda num: int(num) % 2 == 0, str(num)))])) +``` + +--- + # Question 13 ### **Question:** From 49c6ab71256a4b6934c4360c97404c4f964b2cbe Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Mon, 8 Jun 2020 16:58:54 +0600 Subject: [PATCH 28/71] Update Day 4.md --- Status/Day 4.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Status/Day 4.md b/Status/Day 4.md index 4d476ad..b46cfa8 100644 --- a/Status/Day 4.md +++ b/Status/Day 4.md @@ -169,6 +169,16 @@ x = input('please enter a digit:') reduce(lambda x, y: int(x) + int(y), [x*i for i in range(1,5)]) ``` --- +```python +'''Solution by: lcastrooliveira +''' +def question_15(string_digit): + return sum(int(string_digit * n) for n in range(1, 5)) + +inp = input() +print(question_15(inp)) +``` +--- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%203.md "Day 3") From d1df67106e55e9cb526585affcd0a62fe8472fe1 Mon Sep 17 00:00:00 2001 From: Sukanya-Mahapatra <66786398+Sukanya-Mahapatra@users.noreply.github.com> Date: Sun, 14 Jun 2020 10:15:44 +0530 Subject: [PATCH 29/71] Update Day 3.md --- Status/Day 3.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index 7af5686..9f758fa 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -64,6 +64,14 @@ word = sorted(list(set(input().split()))) # input string splits -> print(" ".join(word)) ``` +**OR** +inp_string = input("Enter string: ").split() +out_string = [] +for words in inp_string: + if words not in out_string: + out_string.append(words) +print(" ".join(sorted(out_string))) + --- # Question 11 From 7514be22df2852141d437ac10bc301cdd0bfbbb1 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:29:13 +0600 Subject: [PATCH 30/71] Update Day 1.md --- Status/Day 1.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Status/Day 1.md b/Status/Day 1.md index a19a5d7..e4f5e62 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -194,7 +194,14 @@ for item in range(num+1): print(dictio) ``` --- +```python +'''Solution by: +''' +num = int(input("Number: ")) +print(dict(list(enumerate((i * i for i in range(num+1)))))) +``` +--- ## Conclusion **_These was the solved problems of day 1. The above problems are very easy for the basic syntex learners.I have shown some easy ways of coding in my solutions. Lets see how to face and attack new problems in the next day._** From 3f0889604127229bfcec672e157200a40e5c726a Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:30:00 +0600 Subject: [PATCH 31/71] Update Day 1.md --- Status/Day 1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Status/Day 1.md b/Status/Day 1.md index e4f5e62..d63239a 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -195,7 +195,7 @@ print(dictio) ``` --- ```python -'''Solution by: +'''Solution by: yurbika ''' num = int(input("Number: ")) From eb3e469f22d25712533f264eb95384311ab55104 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:36:00 +0600 Subject: [PATCH 32/71] Update Day_23.md --- Status/Day_23.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Status/Day_23.md b/Status/Day_23.md index 05b94ab..c2f8ada 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -57,6 +57,25 @@ print(L2) print(f'The runner up is {L2[-2]}') ``` +--- +```python +'''Solution by: KailashS3 +''' +num = int(input()) +scores = list(map(int, input().split(' '))) +winner = max(scores) +lst = [] + +if len(scores) != num: + print('length of score is greater than input given') +else: + for score in scores: + if winner > score: + lst.append(score) + +runnerup = max(lst) +print(runnerup) +``` --- # Question 96 From 13eed712199b595c194237f64219e79584295363 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:37:20 +0600 Subject: [PATCH 33/71] Update Day_23.md --- Status/Day_23.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Status/Day_23.md b/Status/Day_23.md index c2f8ada..739e357 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -67,11 +67,11 @@ winner = max(scores) lst = [] if len(scores) != num: - print('length of score is greater than input given') + print('length of score is greater than input given') else: - for score in scores: - if winner > score: - lst.append(score) + for score in scores: + if winner > score: + lst.append(score) runnerup = max(lst) print(runnerup) From a50c8495f0d6d453190e6d74cbd5a12ec0bc3de0 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:41:12 +0600 Subject: [PATCH 34/71] Update Day 1.md --- Status/Day 1.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Status/Day 1.md b/Status/Day 1.md index d63239a..2b11420 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -123,6 +123,18 @@ while num: print(f'the factorial of {org} is {fact}') ``` --- +```python +'''Soltuion by: KruthikaSR +''' +from functools import reduce + +def fun(acc, item): + return acc*item + +num = int(input()) +print(reduce(fun,range(1, num+1), 1)) +``` +--- # Question 3 From 1c4c67f8473d91aa7cfa33b409722d59daa5c3f0 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 09:48:25 +0600 Subject: [PATCH 35/71] Update Day 1.md --- Status/Day 1.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Status/Day 1.md b/Status/Day 1.md index 2b11420..2bea287 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -188,12 +188,11 @@ print(ans) --- ```python '''Solution by: minnielahoti + Corrected by: TheNobleKnight ''' -while True: try: num = int(input("Enter a number: ")) - break except ValueError as err: print(err) @@ -202,7 +201,7 @@ for item in range(num+1): if item == 0: continue else: - dictio[item] = item * item + dictio[item] = item * item print(dictio) ``` --- From 0c0a006dcc064283735d6e095cb8ab5f1108b1c7 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 10:03:52 +0600 Subject: [PATCH 36/71] Update Day 2.md --- Status/Day 2.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/Status/Day 2.md b/Status/Day 2.md index 995783b..1f85905 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -94,9 +94,6 @@ str_obj.print_string() ```python class IOstring(): - def __init__(self): - pass - def get_string(self): self.s = input() From aad2c3c5f62a5ee47d1eb29de8e9d20370527959 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 19 Jun 2020 10:23:12 +0600 Subject: [PATCH 37/71] Update Day 3.md --- Status/Day 3.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Status/Day 3.md b/Status/Day 3.md index 9f758fa..a59f582 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -64,14 +64,17 @@ word = sorted(list(set(input().split()))) # input string splits -> print(" ".join(word)) ``` -**OR** +--- +```python +'''Solution by: Sukanya-Mahapatra +''' inp_string = input("Enter string: ").split() out_string = [] for words in inp_string: if words not in out_string: out_string.append(words) print(" ".join(sorted(out_string))) - +``` --- # Question 11 From 6f4b8b2dee3972d9d03fd729a856575d0d8974d4 Mon Sep 17 00:00:00 2001 From: underlineGalaxy <52989307+underlineGalaxy@users.noreply.github.com> Date: Fri, 19 Jun 2020 02:49:11 -0300 Subject: [PATCH 38/71] Day 6 additional solution and typo fix The other answers didn't really feel Pythonic, so I thought of sharing mine :P Also little typo fix in the end --- Status/Day 6.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Status/Day 6.md b/Status/Day 6.md index aa49d4b..6ac9747 100644 --- a/Status/Day 6.md +++ b/Status/Day 6.md @@ -166,6 +166,24 @@ for i in a: print(i) ``` +**OR** + +```python +import re +def multiple (patterns, string): + for i in patterns: + if not re.search(i, string): + return False + + if 6 <= len(string) <= 12: + return True + else: + return False +x = str(input("Type password: ")) +patterns = [r"[a-z]", r"[A-Z]", r"[0-9]", r"[$|#|@]"] +print(multiple(patterns, x)) +``` + --- # Question 19 @@ -239,7 +257,7 @@ print(lst) ## Conclusion -**_Before the above problems, I didn't even know about re(regular expression) module and its use. I didn't even know how to sort by multiple keys. To solve those problems in different ways I had to explore and learn those syntax.There are a lots of interesting stuffs in re module though I faced quite a bit hardship to understand many of them._** +**_Before the above problems, I didn't even know about re(regular expression) module and its use. I didn't even know how to sort by multiple keys. To solve those problems in different ways I had to explore and learn those syntax. There are a lots of interesting stuffs in re module though I faced quite a bit hardship to understand many of them._** [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%205.md "Day 5") From bdf012a95e1b1a7fd91c2675799f161fc0593b4d Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 19:42:15 +0600 Subject: [PATCH 39/71] Update Day_21.md --- Status/Day_21.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Status/Day_21.md b/Status/Day_21.md index 9dacb7f..380354c 100644 --- a/Status/Day_21.md +++ b/Status/Day_21.md @@ -219,7 +219,31 @@ aFemale= Female() print aMale.getGender() print aFemale.getGender() ``` +--- +```python +'''Solution by: popomaticbubble +''' +class Person(object): + def __init__(self): + self.gender = "unknown" + + def getGender(self): + print(self.gender) +class Male(Person): + def __init__(self): + self.gender = "Male" + +class Female(Person): + def __init__(self): + self.gender = "Female" + +sharon = Female() +doug = Male() +sharon.getGender() +doug.getGender() + +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_20.md "Day 20") From 3845e3a81e90706d659a08d5eb99d15ca34cae70 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 19:54:20 +0600 Subject: [PATCH 40/71] Update Day_20.md --- Status/Day_20.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Status/Day_20.md b/Status/Day_20.md index a2c2f23..978d14d 100644 --- a/Status/Day_20.md +++ b/Status/Day_20.md @@ -97,7 +97,7 @@ print(li) ```python li = [12,24,35,70,88,120,155] -li = [x for (i,x) in enumerate(li) if i%2!=0] +li = [x for (i,x) in enumerate(li) if i%2 != 0 and i <= 6] print li ``` @@ -107,10 +107,19 @@ print li ```python li = [12,24,35,70,88,120,155] -li = [li[i] for i in range(len(li)) if i%2 != 0] +li = [li[i] for i in range(len(li)) if i%2 != 0 and i <= 6] print(li) ``` +--- +```python +'''Solution by: popomaticbubble +''' +orig_lst = [12,24,35,70,88,120,155] +indices = [0, 2, 4, 6] +new_list = [i for (j, i) in enumerate(orig_lst) if j not in indices] +print(new_list) +``` --- # Question 83 @@ -137,18 +146,23 @@ li = [x for (i,x) in enumerate(li) if i<3 or 4 4] print(li) ``` - +--- +```python +'''Solution by: popomaticbubble +''' +orig_list = [12,24,35,70,88,120,155] +new_list = [i for (j, i) in enumerate(orig_list) if j not in range(1,4)] +print(new_list) +``` --- # Question 84 From b623a2f4126cd25a1947aed7754292017247ecc1 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 19:56:53 +0600 Subject: [PATCH 41/71] Update Day_19.md --- Status/Day_19.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Status/Day_19.md b/Status/Day_19.md index 26fd412..f6736c9 100644 --- a/Status/Day_19.md +++ b/Status/Day_19.md @@ -203,6 +203,21 @@ for sub in subjects: for obj in objects: print("{} {} {}".format(sub,verb,obj)) ``` +--- +```python + +'''Solution by: popomaticbubble +''' +import itertools +subject = ["I", "You"] +verb = ["Play", "Love"] +objects = ["Hockey","Football"] + +sentence = [subject, verb, objects] +n = list(itertools.product(*sentence)) +for i in n: + print(i) +``` --- From 659c4fd8d43a71c91e947f53b3e5e375755046a9 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 20:44:48 +0600 Subject: [PATCH 42/71] Update Day 2.md --- Status/Day 2.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Status/Day 2.md b/Status/Day 2.md index 1f85905..3b43863 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -227,6 +227,21 @@ mylist = input().split(',') print(*(round(sqrt(2*C*int(D)/H)) for D in mylist), sep=",") ``` --- +```python + +'''Solution by: saxenaharsh24 +''' + +my_list = [int(x) for x in input('').split(',')] +C, H, x = 50, 30, [] + +for D in my_list: + Q = ((2*C*D)/H)**(1/2) + x.append(round(Q)) + +print(','.join(map(str, x))) +``` +--- # Question 7 From 0624609e106bdd1a3af9199c02c083a23a78cb0a Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 21:27:12 +0600 Subject: [PATCH 43/71] Update Day 3.md --- Status/Day 3.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index a59f582..db5df8d 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -334,6 +334,23 @@ counter = {"LETTERS":len(re.findall("[a-zA-Z]", input_string)), "NUMBERS":len(re print(counter) ``` --- +```python +'''Solution by: MarkisLandis +''' + +sen = input("").split(" ") +alp, digit = 0, 0 + +for item in sen: + lst = [char for char in item] + for j in lst: + if 64 < ord(j) < 123: + alp += 1 + if j.isdigit(): + digit += 1 +print(f"LETTERS : {alp} \n DIGITS : {digit}") +``` +--- ## Conclusion From e801eb0333bbdaa8a03dafdf724367d220868601 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 21:28:51 +0600 Subject: [PATCH 44/71] Update Day 6.md --- Status/Day 6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Status/Day 6.md b/Status/Day 6.md index aa49d4b..7ca221b 100644 --- a/Status/Day 6.md +++ b/Status/Day 6.md @@ -231,7 +231,7 @@ while True: break lst.append(tuple(s)) -lst.sort(key= lambda x:(x[0],x[1],x[2])) # here key is defined by lambda and the data is sorted by element priority 0>1>2 in accending order +lst.sort(key= lambda x:(x[0],int(x[1]),int(x[2]))) # here key is defined by lambda and the data is sorted by element priority 0>1>2 in accending order print(lst) ``` From b8f5a995f1ccaf47ad8428e508841617fc91241a Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 21:41:47 +0600 Subject: [PATCH 45/71] Update Day_16.md --- Status/Day_16.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Status/Day_16.md b/Status/Day_16.md index 3fcea00..327318b 100644 --- a/Status/Day_16.md +++ b/Status/Day_16.md @@ -59,6 +59,17 @@ def f(n): n = int(input()) print(f(n)) +``` +--- +```python + +'''Solution by: NikolayEm +''' + +n = int(input()) +f = lambda x: f(x-1)+100 if x > 0 else 0 +print(f(n)) + ``` --- @@ -126,6 +137,17 @@ n = int(input()) print(f(n)) ``` +--- +```python + +'''Solution by: NikolayEm +''' + +n = int(input()) +f = lambda x: 0 if x == 0 else 1 if x == 1 else f(x-1)+f(x-2) +print(','.join([str(f(x)) for x in range(0, n+1)])) + +``` --- # Question 62 From c4e5fe249ceb40f3e3cb9a1717d698f4f1860e78 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 21:54:22 +0600 Subject: [PATCH 46/71] Update Day_15.md --- Status/Day_15.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Status/Day_15.md b/Status/Day_15.md index 8acdacc..2d6184c 100644 --- a/Status/Day_15.md +++ b/Status/Day_15.md @@ -252,7 +252,15 @@ for i in range(1, n+1): sum+= i/(i+1) print(round(sum, 2)) # rounded to 2 decimal point ``` +--- +```python +'''Solution by: lcastrooliveira +''' +def question_59(n): + print(round(sum(map(lambda x: x/(x+1), range(1, n+1))), 2)) +question_59(5) +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_14.md "Day 14") From 93912352051d7a0faee33788ce8ea82deb27e5f7 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 22:02:24 +0600 Subject: [PATCH 47/71] Update Day_16.md --- Status/Day_16.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Status/Day_16.md b/Status/Day_16.md index 327318b..162a201 100644 --- a/Status/Day_16.md +++ b/Status/Day_16.md @@ -239,7 +239,27 @@ n = int(input()) print_fiblist(n) ``` +--- +```python +'''Solution by: lcastrooliveira +''' +def question_62(n): + if n == 0: + return [0] + if n == 1: + return [0, 1] + sequence = [0, 1] + a, b = 0, 1 + for x in range(2, n+1): + c = a + b + sequence.append(c) + a = b + b = c + return sequence + +print(question_62(10)) +``` --- # Question 63 From 1efc066ed6fb571b81594fe640b08cc62a94f5b1 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 22:04:51 +0600 Subject: [PATCH 48/71] Update Day_19.md --- Status/Day_19.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Status/Day_19.md b/Status/Day_19.md index f6736c9..0f24321 100644 --- a/Status/Day_19.md +++ b/Status/Day_19.md @@ -218,6 +218,23 @@ n = list(itertools.product(*sentence)) for i in n: print(i) ``` +--- +```python + +'''Solution by: lcastrooliveira +''' +from itertools import product + +def question_79(): + subject = ["I", "You"] + verb = ["Play", "Love"] + object = ["Hockey", "Football"] + prod = [p for p in product(range(2), repeat=3)] + for combination in prod: + print(f'{subject[combination[0]]} {verb[combination[1]]} {object[combination[2]]}') + +question_79() +``` --- From 4874285ff446285bb9c2ff81fd0974b7d242cbb9 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Wed, 22 Jul 2020 22:11:17 +0600 Subject: [PATCH 49/71] Update Day 7.md --- Status/Day 7.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Status/Day 7.md b/Status/Day 7.md index cfe1ea3..9003d16 100644 --- a/Status/Day 7.md +++ b/Status/Day 7.md @@ -4,6 +4,19 @@ > **_Define a class with a generator which can iterate the numbers, which are divisible by 7, between a given range 0 and n._** +> **_Suppose the following input is supplied to the program:_** + +``` +7 +``` + +> **_Then, the output should be:_** + +``` +0 +7 +14 +``` --- ### Hints: From ad27771da937b8f64e31e5c0977b48ffa99b5627 Mon Sep 17 00:00:00 2001 From: Rishabh Shukla Date: Thu, 30 Jul 2020 18:09:33 +0530 Subject: [PATCH 50/71] Correction in a Solution of Question 3 --- Status/Day 1.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Status/Day 1.md b/Status/Day 1.md index 2bea287..557714e 100644 --- a/Status/Day 1.md +++ b/Status/Day 1.md @@ -207,10 +207,11 @@ print(dictio) --- ```python '''Solution by: yurbika + Corrected by: developer-47 ''' num = int(input("Number: ")) -print(dict(list(enumerate((i * i for i in range(num+1)))))) +print(dict(enumerate([i*i for i in range(1, num+1)], 1))) ``` --- ## Conclusion From 29953b3baba7a584642b97fcbe827723c2d0c333 Mon Sep 17 00:00:00 2001 From: "hajimalung.baba" Date: Thu, 30 Jul 2020 22:32:11 +0530 Subject: [PATCH 51/71] solution for question 9 added --- Status/Day 2.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Status/Day 2.md b/Status/Day 2.md index 3b43863..9f6ce03 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -428,6 +428,19 @@ for line in map(str.upper, user_input()): print(line) ``` +```python +'''Soltuion by: hajimalung baba +''' +def inputs(): + while True: + string = input() + if not string: + return + yield string + +print(*(line.upper() for line in inputs()),sep='\n') +``` + --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%201.md "Day 1") From 3e83aecabccea709adeb6c8a6d74f36b8f0ee86c Mon Sep 17 00:00:00 2001 From: "hajimalung.baba" Date: Thu, 30 Jul 2020 23:53:34 +0530 Subject: [PATCH 52/71] solution for question 11 is added --- Status/Day 3.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index db5df8d..de6efde 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -172,6 +172,12 @@ data = [num for num in data if int(num, 2) % 5 == 0] print(','.join(data)) ``` +```python +'''Solution by: hajimalung baba +''' +print(*(binary for binary in input().split(',') if int(binary,base=2)%5==0)) +``` + --- # Question 12 From cb5f3bf1dede6c1705d5f7278e7ea38912f56a1a Mon Sep 17 00:00:00 2001 From: "hajimalung.baba" Date: Fri, 31 Jul 2020 00:25:32 +0530 Subject: [PATCH 53/71] adding solution for Question 12 using reduce --- Status/Day 3.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index de6efde..db6334f 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -252,6 +252,17 @@ print(",".join(lst)) print(','.join([str(num) for num in range(1000, 3001) if all(map(lambda num: int(num) % 2 == 0, str(num)))])) ``` +```python +'''Solution by: hajimalung +''' +from functools import reduce +#using reduce to check if the number has only even digits or not +def is_even_and(bool_to_compare,num_as_char): + return int(num_as_char)%2==0 and bool_to_compare + +print(*(i for i in range(1000,3001) if reduce(is_even_and,str(i),True)),sep=',') +``` + --- # Question 13 From a1d9e870ddf0e56e7e46eb4adde096943086f87f Mon Sep 17 00:00:00 2001 From: "hajimalung.baba" Date: Fri, 31 Jul 2020 01:07:02 +0530 Subject: [PATCH 54/71] adding solution for Question 13 --- Status/Day 3.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Status/Day 3.md b/Status/Day 3.md index db6334f..cf099fa 100644 --- a/Status/Day 3.md +++ b/Status/Day 3.md @@ -367,6 +367,20 @@ for item in sen: digit += 1 print(f"LETTERS : {alp} \n DIGITS : {digit}") ``` +```python +'''Solution by: hajimalung +''' +#using reduce for to count +from functools import reduce + +def count_letters_digits(counters,char_to_check): + counters[0] += char_to_check.isalpha() + counters[1] += char_to_check.isnumeric() + return counters + +print('LETTERS {0}\nDIGITS {1}'.format(*reduce(count_letters_digits,input(),[0,0]))) +``` + --- ## Conclusion From e0f2c6322d7409a4dbb1add813ccda32b0e432b3 Mon Sep 17 00:00:00 2001 From: SUGGULA JASWANTH <54682057+suggulajaswanth@users.noreply.github.com> Date: Sun, 2 Aug 2020 20:48:30 +0530 Subject: [PATCH 55/71] Update Day_23.md --- Status/Day_23.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Status/Day_23.md b/Status/Day_23.md index 739e357..4633942 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -214,6 +214,21 @@ if __name__ == '__main__': n = int(input()) print_rangoli(n) ``` +**suggula jaswanth** + +```python3 +def rangoli(n): + # your code goes here + l1=list(map(chr,range(97,123))) + x=l1[n-1::-1]+l1[1:n] + mid=len('-'.join(x)) + for i in range(1,n): + print('-'.join(l1[n-1:n-i:-1]+l1[n-i:n]).center(mid,'-')) + for i in range(n,0,-1): + print('-'.join(l1[n-1:n-i:-1]+l1[n-i:n]).center(mid,'-')) +rangoli(5) + +``` --- From 4f63ea5e3f6d65859818a27073df2fd903923e79 Mon Sep 17 00:00:00 2001 From: Sophie Sun Date: Wed, 12 Aug 2020 23:18:59 -0700 Subject: [PATCH 56/71] updated a solution to question 18 --- notebooks/Day_06.ipynb | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/notebooks/Day_06.ipynb b/notebooks/Day_06.ipynb index d6e1a36..000b171 100644 --- a/notebooks/Day_06.ipynb +++ b/notebooks/Day_06.ipynb @@ -189,6 +189,45 @@ "print(\",\".join(lst))" ] }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + "please give me your passwords: ABd1234@1,a F1#,2w3E*,2We3345,Some@124\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ABd1234@1, Some@124\n" + ] + } + ], + "source": [ + "'''Solution by sophiexsun'''\n", + "\n", + "import re\n", + "\n", + "lower = re.compile(r'[a-z]')\n", + "upper = re.compile(r'[A-Z]')\n", + "digi = re.compile(r'[0-9]')\n", + "schar = re.compile(r'[$#@]')\n", + "\n", + "def password_checker(password):\n", + " if lower.search(password) and upper.search(password) and digi.search(password) and schar.search(password) and 6 <= len(password) <= 12:\n", + " return password\n", + "\n", + "test_pwd = input(\"please give me your passwords:\").split(',')\n", + "\n", + "print(', '.join(filter(password_checker, test_pwd)))" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -276,7 +315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.5" } }, "nbformat": 4, From 2e44d9ea3073148c795ea3113b305fcff614272e Mon Sep 17 00:00:00 2001 From: Ariel Pena-Martinez <47127255+apenam7@users.noreply.github.com> Date: Mon, 17 Aug 2020 22:13:34 -0400 Subject: [PATCH 57/71] Update Day 4.md Another solution for Question 15 --- Status/Day 4.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Status/Day 4.md b/Status/Day 4.md index b46cfa8..2d98a3c 100644 --- a/Status/Day 4.md +++ b/Status/Day 4.md @@ -179,6 +179,11 @@ inp = input() print(question_15(inp)) ``` --- +```python +'''Solution by: apenam7 +''' +a = input() +print(sum(int(i*a) for i in range(1,5))) [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%203.md "Day 3") From 38d671ca3f3aef5be704fc6e169600a0473b61fd Mon Sep 17 00:00:00 2001 From: Utkarsh4697 <68324993+Utkarsh4697@users.noreply.github.com> Date: Tue, 18 Aug 2020 11:19:09 +0530 Subject: [PATCH 58/71] I added my solution. I added my solution. --- Status/Day_22.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Status/Day_22.md b/Status/Day_22.md index f7db8db..24ceb69 100644 --- a/Status/Day_22.md +++ b/Status/Day_22.md @@ -64,9 +64,14 @@ for letter in range(ord('a'),ord('z')+1): # ord() gets the ascii value of a c if cnt > 0: print("{},{}".format(letter,cnt)) ``` - +```python Solution by Utkarsh4697 +s = 'abcdefgabc' +for i in sorted(set(s)): + print(f'{i}, {s.count(i)}') +``` --- + # Question 91 ### **Question** From 8851a7670942a615be46c9f61694500e4c88c63b Mon Sep 17 00:00:00 2001 From: Poonam Verma <70898152+Poonam-glitch@users.noreply.github.com> Date: Wed, 9 Sep 2020 16:24:15 +0530 Subject: [PATCH 59/71] Update Day 2.md Solution to Q.8 --- Status/Day 2.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Status/Day 2.md b/Status/Day 2.md index 3b43863..da37ddf 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -351,6 +351,16 @@ lst = input().split(',') lst.sort() print(",".join(lst)) ``` +#Solution by Poonam-glitch + +``` +def my_func(e): + return e[0] + +my_list = input('Enter a comma separated string').split(",") +my_list.sort(key=my_func) +print(my_list) +``` --- From df3245348aeeb1087a031a5899399271135f774e Mon Sep 17 00:00:00 2001 From: tushar Date: Sun, 20 Sep 2020 00:28:03 +0600 Subject: [PATCH 60/71] merge pull requests rev#1 --- Status/Day 2.md | 11 ++++---- Status/Day 4.md | 2 ++ Status/Day_22.md | 5 +++- notebooks/Day_06.ipynb | 62 +++++++++++++++++++++++++++++++++--------- 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/Status/Day 2.md b/Status/Day 2.md index da37ddf..1d7379e 100644 --- a/Status/Day 2.md +++ b/Status/Day 2.md @@ -351,15 +351,16 @@ lst = input().split(',') lst.sort() print(",".join(lst)) ``` -#Solution by Poonam-glitch - -``` +--- +```python +'''Solution by Poonam-glitch +''' def my_func(e): return e[0] -my_list = input('Enter a comma separated string').split(",") +my_list = input('Enter a comma separated string: ').split(",") my_list.sort(key=my_func) -print(my_list) +print(",".join(my_list)) ``` --- diff --git a/Status/Day 4.md b/Status/Day 4.md index 2d98a3c..af5a343 100644 --- a/Status/Day 4.md +++ b/Status/Day 4.md @@ -184,6 +184,8 @@ print(question_15(inp)) ''' a = input() print(sum(int(i*a) for i in range(1,5))) +``` +--- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day%203.md "Day 3") diff --git a/Status/Day_22.md b/Status/Day_22.md index 24ceb69..ad3073d 100644 --- a/Status/Day_22.md +++ b/Status/Day_22.md @@ -64,7 +64,10 @@ for letter in range(ord('a'),ord('z')+1): # ord() gets the ascii value of a c if cnt > 0: print("{},{}".format(letter,cnt)) ``` -```python Solution by Utkarsh4697 +--- +```python +'''Solution by: Utkarsh4697 +''' s = 'abcdefgabc' for i in sorted(set(s)): print(f'{i}, {s.count(i)}') diff --git a/notebooks/Day_06.ipynb b/notebooks/Day_06.ipynb index d6e1a36..86a3555 100644 --- a/notebooks/Day_06.ipynb +++ b/notebooks/Day_06.ipynb @@ -50,16 +50,19 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": {}, + "execution_count": 2, + "metadata": { + "pycharm": { + "is_executing": false + } + }, "outputs": [ { "name": "stdout", - "output_type": "stream", "text": [ - "aaaaa\n", - "\n" - ] + "ABd1234@1\n" + ], + "output_type": "stream" } ], "source": [ @@ -118,9 +121,21 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "ABd1234@1\n" + ], + "output_type": "stream" + } + ], "source": [ "def check(x):\n", " cnt = 6 <= len(x) and len(x) <= 12\n", @@ -161,9 +176,21 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 4, + "metadata": { + "pycharm": { + "is_executing": false + } + }, + "outputs": [ + { + "name": "stdout", + "text": [ + "ABd1234@1\n" + ], + "output_type": "stream" + } + ], "source": [ "import re\n", "\n", @@ -277,8 +304,17 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "source": [], + "metadata": { + "collapsed": false + } + } } }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file From 7bba5e42d6cdfed933b31b34125f151dcbd1c0fc Mon Sep 17 00:00:00 2001 From: tushar Date: Sun, 20 Sep 2020 00:35:07 +0600 Subject: [PATCH 61/71] [fix] fix solution formats --- Status/Day_23.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Status/Day_23.md b/Status/Day_23.md index 4633942..9a0ed72 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -214,9 +214,10 @@ if __name__ == '__main__': n = int(input()) print_rangoli(n) ``` -**suggula jaswanth** - -```python3 +--- +```python +'''Solution by: suggula jaswanth +''' def rangoli(n): # your code goes here l1=list(map(chr,range(97,123))) From e0c3fa715c4b8e0746fdbd53eabc24d24ebda500 Mon Sep 17 00:00:00 2001 From: tushar Date: Sat, 3 Oct 2020 13:08:35 +0600 Subject: [PATCH 62/71] [Feat] Add Solutions of saxenaharsh24 Branch: master --- Status/Day_11.md | 37 +++++++++++++++++++++++++++++++++---- Status/Day_20.md | 12 +++++++++--- Status/Day_23.md | 17 ++++++++++++----- 3 files changed, 54 insertions(+), 12 deletions(-) diff --git a/Status/Day_11.md b/Status/Day_11.md index a16ec5a..c30f663 100644 --- a/Status/Day_11.md +++ b/Status/Day_11.md @@ -51,8 +51,7 @@ for i in range(5,10): print(lst1) print(lst2) ``` - -**OR** +---- ```python @@ -67,8 +66,6 @@ print(tup[:lt], tup[lt:]) --- -**OR** - ```python ''' @@ -84,6 +81,15 @@ print('The Original Tuple:',tp) ``` --- +```python + +''' +Solution by: saxenaharsh24 +''' + +tup = [i for i in range(1, 11)] +print(f'{tuple(tup[:5])} \n{tuple(tup[5:])}') +``` # Question 39 @@ -227,7 +233,18 @@ li = [1,2,3,4,5,6,7,8,9,10] squaredNumbers = map(lambda x: x**2, li) # returns map type object data print(list(squaredNumbers)) # converting the object into list ``` +--- +```python +''' +Solution by: saxenaharsh24 +''' +def sqrs(item): + return item ** 2 + +lst = [i for i in range(1, 11)] +print(list(map(sqrs, lst))) +``` --- # Question 42 @@ -267,7 +284,19 @@ li = [1,2,3,4,5,6,7,8,9,10] li = map(squer,filter(even,li)) # first filters number by even number and the apply map() on the resultant elements print(list(li)) ``` +--- +```python +""" +Solution by: saxenaharsh24 +""" +def even(item): + if item % 2 == 0: + return item**2 + +lst = [i for i in range(1, 11)] +print(list(filter(lambda j: j is not None, list(map(even, lst))))) +``` --- # Question 43 diff --git a/Status/Day_20.md b/Status/Day_20.md index 978d14d..eeb4349 100644 --- a/Status/Day_20.md +++ b/Status/Day_20.md @@ -157,14 +157,20 @@ print(li) ``` --- ```python -'''Solution by: popomaticbubble -''' +"""Solution by: popomaticbubble +""" orig_list = [12,24,35,70,88,120,155] new_list = [i for (j, i) in enumerate(orig_list) if j not in range(1,4)] print(new_list) ``` --- - +```python +"""Solution by: saxenaharsh24 +""" +lst = [12,24,35,70,88,120,155] +print([i for i in lst if lst.index(i) not in range(2,5)]) +``` +--- # Question 84 ### **Question** diff --git a/Status/Day_23.md b/Status/Day_23.md index 9a0ed72..a611557 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -128,8 +128,8 @@ if __name__ == '__main__': --- ```python -'''Solution by: mishrasunny-coder -''' +"""Solution by: mishrasunny-coder +""" import textwrap string = input() @@ -139,8 +139,8 @@ print(textwrap.fill(string,width)) ``` --- ```python -'''solution by : Prashanth -''' +"""solution by : Prashanth +""" from textwrap import wrap x = str(input(': ')) w = int(input()) @@ -148,7 +148,14 @@ z = list(wrap(x, w)) for i in z: print(i) ``` - +--- +```python +"""solution by : saxenaharsh24 +""" +import textwrap +string = input('') +print('\n'.join(textwrap.wrap(string, width= int(input(''))))) +``` --- # Question 97 From cd225b59d979123fb49a1fe0594ddc51f2fa932c Mon Sep 17 00:00:00 2001 From: tushar Date: Sat, 3 Oct 2020 13:33:16 +0600 Subject: [PATCH 63/71] [Feat] Add Solutions of popomaticbubble Branch: master --- Status/Day_22.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++-- Status/Day_23.md | 21 +++++++++++++++ Status/Day_24.md | 17 ++++++++++++ 3 files changed, 104 insertions(+), 2 deletions(-) diff --git a/Status/Day_22.md b/Status/Day_22.md index ad3073d..b9b57b5 100644 --- a/Status/Day_22.md +++ b/Status/Day_22.md @@ -73,8 +73,30 @@ for i in sorted(set(s)): print(f'{i}, {s.count(i)}') ``` --- +```python +'''Solution by: popomaticbubble +''' +def character_counter(text): + characters_list = list(text) + char_count = {} + for x in characters_list: + if x in char_count.keys(): + char_count[x] += 1 + else: + char_count[x] = 1 + return char_count + + +def dict_viewer(dictionary): + for x, y in dictionary.items(): + print(f"{x},{y}") +text = input("> ") +dict_viewer(character_counter(text)) +``` +--- + # Question 91 ### **Question** @@ -197,7 +219,21 @@ print(ns) import itertools print list(itertools.permutations([1,2,3])) ``` +--- +```python +"""Solution by: popomaticbubble +""" +from itertools import permutations + +def permuation_generator(iterable): + p = permutations(iterable) + for i in p: + print(i) + +x = [1,2,3] +permuation_generator(x) +``` --- # Question 94 @@ -226,12 +262,40 @@ def solve(numheads,numlegs): return i,j return ns,ns -numheads=35 -numlegs=94 +numheads = 35 +numlegs = 94 solutions=solve(numheads,numlegs) print solutions ``` +--- +```python +"""Solution by: popomaticbubble +""" +import itertools +def animal_counter(lst): + chickens = 0 + rabbits = 0 + for i in lst: + if i == 2: + chickens += 1 + elif i == 4: + rabbits += 1 + print(f"Number of chickens is {chickens}\nNumber of rabbits is {rabbits}") + + +def animal_calculator(total_legs, total_heads, legs_of_each_species): + combinations = itertools.combinations_with_replacement(legs_of_each_species, total_heads) + correct_combos = [] + for i in list(combinations): + if sum(i) == total_legs: + correct_combos.append(i) + print(correct_combos) + for i in correct_combos: + animal_counter(i) + +animal_calculator(94, 35, legs_of_each_species=[2,4]) +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_21.md "Day 21") diff --git a/Status/Day_23.md b/Status/Day_23.md index a611557..d7cf0c6 100644 --- a/Status/Day_23.md +++ b/Status/Day_23.md @@ -157,6 +157,27 @@ string = input('') print('\n'.join(textwrap.wrap(string, width= int(input(''))))) ``` --- +```python +"""solution by : popomaticbubble +""" +import itertools +string = input("> ") +width_length = int(input("What is the width of the groupings? ")) + +def grouper(string, width): + iters = [iter(string)] * width + return itertools.zip_longest(*iters, fillvalue='') + +def displayer(groups): + for x in groups: + if x == '': + continue + else: + print(''.join(x)) + +displayer(grouper(string, width_length)) +``` +--- # Question 97 ### **Question** diff --git a/Status/Day_24.md b/Status/Day_24.md index 12cc914..e4c6dd9 100644 --- a/Status/Day_24.md +++ b/Status/Day_24.md @@ -203,7 +203,24 @@ n = int(input()) sum = rec(n) print(sum) ``` +--- +```python +"""Solution by: popomaticbubble +""" +def summer(counter, n, current): + if n == 0: + return 0 + if counter == n: + return current+n + else: + current = current + counter + counter += 1 + return summer(counter, n, current) + +N = int(input("> ")) +print(summer(1, N, 0)) +``` --- [**_go to previous day_**](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_22.md "Day 23") From 25e78f0f532dfbb74d067b4783e0897062cb24bd Mon Sep 17 00:00:00 2001 From: danzvara Date: Mon, 19 Oct 2020 20:28:52 +0200 Subject: [PATCH 64/71] Add Deepnote launch button Hi there, I'm Dan from Deepnote. We're a small startup creating a better data science notebook compatible with Jupyter and one of the things we're really interested is making it easier for people to try and learn from existing projects. I was trying out Deepnote with some interesting public repos, including yours and since I already set it up for myself, I thought it might be useful for others too to have a one-click button to run your repo, so I submitted a PR. Compared to binder, Deepnote offers more advanced features like collaboration or persistent environment so people can save their progress and come back to it later. Hope you find it useful, and thanks for your work! --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e516dd..9422cf6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Python-programming-exercises -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/darkprinx/100-plus-Python-programming-exercises-extended/master?filepath=notebooks%2F) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/darkprinx/100-plus-Python-programming-exercises-extended/master?filepath=notebooks%2F)
+[![Deepnote](https://deepnote.com/buttons/try-in-a-jupyter-notebook.svg +)](https://deepnote.com/launch?url=https%3A%2F%2Fgithub.com%2Fdarkprinx%2F100-plus-Python-programming-exercises-extended%2Fblob%2Fmaster%2Fnotebooks%2FDay_01.ipynb) + --------------------- ## Introduction From 9ea4cb5cd215c9b12614854d5f1952b95357e19c Mon Sep 17 00:00:00 2001 From: jiaming9844 <53041784+jiaming9844@users.noreply.github.com> Date: Mon, 26 Oct 2020 15:05:41 +0800 Subject: [PATCH 65/71] Update Day 5.md --- Status/Day 5.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Status/Day 5.md b/Status/Day 5.md index 8fd0db9..540695d 100644 --- a/Status/Day 5.md +++ b/Status/Day 5.md @@ -57,6 +57,16 @@ seq = [str(i) for i in seq] # All the integers are converted to string to be a print(",".join(seq)) ``` + +```python +'''Solution by: Jack''' +seq = input().split(',') +lst = [int(i) for i in seq] +def flt(i): #Define a filter function + return i % 2 != 0 +result_l = [str(i * i) for i in filter(flt,lst)] +print(",".join(result_l)) +``` --- **_There were a mistake in the the test case and the solution's whice were notified and fixed with the help of @dwedigital. My warm thanks to him._** From e87b795bdd7f910f921788e30d12a7ec21d43aeb Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Fri, 1 Jan 2021 23:58:07 +0600 Subject: [PATCH 66/71] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 9422cf6..56a2d82 100644 --- a/README.md +++ b/README.md @@ -91,5 +91,3 @@ * **[Day 24](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_24.md "Day 24 Status")**- ***Question 100-103*** ----------------------- -### **_Sharing new questions and solutions are warmly welcome. Be a proud contributor of this repository by just making a pull request of your changes._** From 3804295b82f40466e4ce1189334c99832f20cd48 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Mon, 12 Apr 2021 22:52:18 +0600 Subject: [PATCH 67/71] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 38 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From d12bde7e391ad8c05f5f82ddfc3fcc71302df207 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sat, 17 Apr 2021 18:04:06 +0600 Subject: [PATCH 68/71] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 56a2d82..0876056 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# Python-programming-exercises +# Break The Ice With Python + +### A journey of 100+ simple yet interesting problems which are explained, solved, discussed in different pythonic ways [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/darkprinx/100-plus-Python-programming-exercises-extended/master?filepath=notebooks%2F)
[![Deepnote](https://deepnote.com/buttons/try-in-a-jupyter-notebook.svg From 195743ec70c3243efa73ffe94a1d60def8ecb7d3 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sat, 30 Dec 2023 12:33:25 +0600 Subject: [PATCH 69/71] Add files via upload --- bmc-button.png | Bin 0 -> 24415 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bmc-button.png diff --git a/bmc-button.png b/bmc-button.png new file mode 100644 index 0000000000000000000000000000000000000000..464bfd969dc1265095cc53628f71f97146d325ed GIT binary patch literal 24415 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 literal 0 HcmV?d00001 From 7a162b5f917ca2831b558e6ab269b1e598d4e1b1 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sat, 30 Dec 2023 13:03:43 +0600 Subject: [PATCH 70/71] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 0876056..0808031 100644 --- a/README.md +++ b/README.md @@ -93,3 +93,11 @@ * **[Day 24](https://github.com/darkprinx/100-plus-Python-programming-exercises-extended/blob/master/Status/Day_24.md "Day 24 Status")**- ***Question 100-103*** + +--- + +## 🌱 Empower dedication with your generosity +#### Every single coffee boosts towards greater motivation, turning compassion into action. Show your kind support with just a little click! 😃 + +Buy Me A Coffee + From ef063a169cfa7e91056ae95e34ec64354d14d2d6 Mon Sep 17 00:00:00 2001 From: Abdullah Al Masud Tushar Date: Sat, 30 Dec 2023 13:04:19 +0600 Subject: [PATCH 71/71] Delete bmc-button.png --- bmc-button.png | Bin 24415 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bmc-button.png diff --git a/bmc-button.png b/bmc-button.png deleted file mode 100644 index 464bfd969dc1265095cc53628f71f97146d325ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24415 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