# excercise 1: Number guessing game
from random import randint
def guess_the_number():
number = randint(1, 100)
while True:
choice = int(input('Guess the number(1 to 100) : '))
if choice == number:
print('You guessed it correct')
break # break the infinite loop
elif choice > number:
print('Your guess is little higher side')
else:
print('Your guess is little lower side')
# Exercise 2
def my_sum(n, *numbers):
output = 0
for number in numbers[:n]:
output += number
return output
print(my_sum(2,1,1,1,2,3,4,1))
# In Python, enumerate function help to get not just the elements of the sequence,
# but also the index of each element.
# example 1
for index, letter in enumerate('Afiz'):
print(index, letter)
# enumerate function accepts optional second parameter as
# a starting value for the index
# example 2: index starts from 1 instead of 0
for index, letter in enumerate('Afiz', 1):
print(index, letter)
class CustomEnumerator():
def __init__(self, data, start_index=0):
self.data = data
self.index = start_index
def __iter__(self):
return self
def __next__(self):
if self.index >= len(self.data): # stop iteration if we are at the end
raise StopIteration
result = (self.index, self.data[self.index])
self.index += 1
return result
# example 1
for index, letter in CustomEnumerator('Afiz'):
print(index, letter)
# 0 A
# 1 f
# 2 i
# 3 z
# example 1
for index, letter in CustomEnumerator('Afiz', 2):
print(index, letter)
# 2 A
# 3 f
# 4 i
# 5 z
# 28 Joining Numbers
def join_numbers(n):
return ','.join(str(i) for i in range(1, n+1))
join_numbers(10)
from typing import Iterator
flatter = lambda x: n for n in x if not isinstance(n, list) else flatter(n)
a = [1,2,3]
isinstance(a, (list, tuple))
flatter = lambda x: [n if not isinstance(n,list) else flatter(n) for n in x]
flatter([1,2,3,[4]])
def flatten_list(my_list):
output = []
if not isinstance(my_list, (list, tuple)):
output.append(my_list)
else:
for ele in my_list:
flatten_list(ele)
return output
print(flatten_list([[1,2, [5,6]], [3,4]]))