Python Programming (May 2022)
Python Programming (May 2022)
Scratchpad #3
# # Currency Convert # # print("Amount of USD you want to convert") # usd = input("Amount of USD you want to convert: ") # inr = float(usd) * 75.43 # inr = round(inr, 2) # print(f"USD {usd} is equal to Rs. {inr}") # # ----------------- # city = input("Enter your city: ") # # city = city.lower() # if city == "bejing": # print("You are not welcome") # elif city == "mumbai": # print("You are always welcome") # elif city == "delhi": # print("Nahi aana hai!") # else: # print("You are also welcome") # --------------------------------------- # city = "askdmkdsa" # if city: # print(f"{city} is a great place") # else: # print("Please enter something") # loggedInUser = "" # if loggedInUser: # print("Welcome") # else: # print("Please log in") # ------------------- # age = int(input("Please enter your age: ")) # if age >= 65: # print("Drink are free!") # elif age >= 21: # print("You are allowed to enter and drink") # elif age >= 18: # print("You can enter, but you cannot drink") # else: # print("Entry denied!") # if age >= 18 and age < 21: # print("You can enter, but you cannot drink") # elif age >= 21 and age < 65: # print("You are allowed to enter and drink") # elif age >= 65: # print("Drink are free!") # else: # print("Entry denied!") isLoggedIn = False user_role = "moderator" if isLoggedIn: if user_role == "admin": print("You have access to everything") else: print("You can access fewer things") else: print("Please log in first")
Scratchpad #4
# for char in "hello": # print(char) # for num in range(0, 1000): # print(num) # print(f"{num}: Hello World") # for num in range(1, 11): # print(num) # print("Goodbye World") # for char in "Hello World": # print(char) # for num in range(14, 0): # print(num) # for num in range(0, 10, 3): # print(num) # for num in range(11, 0, -2): # print(num) # for num in range(0, 10, 2): # print(num) # for num in range(1, 21): # if num == 5 or num == 16: # print(f"{num} - FizzBuzz") # elif num % 2 == 0: # print(f"{num} - Fizz is even") # elif num % 2 != 0: # print(f"{num} - Fizz is odd") # password = input("Please enter your password: ") # while password != "helloworld": # print("ACCESS DENIED!") # password = input("Please enter your password again: ") # while password == "helloworld": # if password == "helloworld": # print("Welcome") # elif password != "helloworld": # print("Access Denined") # print("Welcome") # while password != "helloworld": # print("ACCESS DENIED!") # password = input("Please enter your password again: ") # for num in range(0, 10): # print(num) # count = 0 # while count < 11: # print(count) # count += 1 # count = 3 # password = input("Please enter your password: ") # while True: # if count < 1: # print("All your chances are over! Bhag ja!") # break # if password == "helloworld": # break # print("ACCESS DENIED") # print(f"{count} chances remaining") # password = input("Please enter your password again: ") # count -= 1 # ----------------------------- player1 = input("Enter player1's choice: ") player2 = input("Enter player2's choice: ") if ( (player1 == "rock" and player2 == "scissors") or (player1 == "paper" and player2 == "rock") or (player1 == "scissors" and player2 == "paper") ): print("Player 1 wins") elif ( (player2 == "rock" and player1 == "scissors") or (player2 == "paper" and player1 == "rock") or (player2 == "scissors" and player1 == "paper") ): print("Player 2 wins") elif player1 == player2: print("It's a tie") else: print("Something went wrong")
Scratchpad #5
# todo = [] # while True: # task = input("Add task to list. (q to quit) ") # if task == "": # print("Please enter a valid task") # elif task == "q": # break # else: # todo.append(task) # print(f"You have {len(todo)} tasks in your list.") # print("Your TODOs are as follows: ") # for task in todo: # print("- " + task) # # print(todo) numbers = [1, 2, 3, 4] count = 0 while count < len(numbers): print(numbers[count]) count += 1 for num in numbers: print(num) # rahul@rstforum.co.in
Scratchpad #6
# numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] # # numbers # # None # # print("Hello World") # # print(10000) # numbers[1][1] + 10 # numbers = [1, 2, 3, 4, 5, 6] # # numbers2 = [] # # for num in numbers: # # numbers2.append(num / 2) # # numbers3 = [num / 3 for num in numbers] # # print(numbers2) # # print(numbers3) # numbers = [1, 2, 3, 4.5, 5.3, 6] # n2 = [n * 2 for n in numbers] # print(n2) nested_list = [ [[1, 2, 3], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]], ] # for lst in nested_list: # for num in lst: # print(num)
Scratchpad #7
product = ["iPhone 13", "Apple", "Some description...", 100000, 500, True] # products = [ # ["iPhone 13", "Apple", "Some description...", 100000, 500, True], # ["iPhone 13", "Apple", "Some description...", 100000, 500, True], # ["iPhone 13", "Apple", "Some description...", 500, 100000, True], # ] # product[0] # product[1] # product = { # 2: "Apple", # 5: 100000, # 4: 500, # 1: "Some description...", # 3: "iPhone 13", # 0: "Hello", # } # product2 = ["Hello", "Some description...", "Apple", "iPhone 13", 500, 100000] # print(product2[0]) # print(product[0]) # product[3] # print(product["name"]) # print(product[0]) # print(product2[0]) # profile1 = { # "name": "John Doe", # "age": 20, # } # profile2 = dict(name="John Doe", age=20) # print(profile1) # print(profile2) # book = { # "name": "The theory of everything", # "author": "Stephen Hawking", # "pages": 140, # "language": "English", # "in_stock": True, # 73: 1001001, # } # print(book["author"]) # print(book["author"]) # print(book["description"]) # for key in book: # print(book[key]) # for value in book.values(): # print(value) # for item in book.items(): # print(item[0]) # print(item[1]) # for key, value in book.items(): # print(key, value) song = { "name": "Parabola", "artist": "Tool", "album": "Lateralus", "released": 2001, "genres": ["Progressive/Art Rock", "Progressive metal"], } # >>> song = { # ... "name": "Parabola", # ... "artist": "Tool", # ... "album": "Lateralus", # ... "released": 2001, # ... "genres": ["Progressive/Art Rock", "Progressive metal"], # ... } # >>> # >>> song # {'name': 'Parabola', 'artist': 'Tool', 'album': 'Lateralus', 'released': 2001, 'genres': ['Progressive/Art Rock', 'Progressive metal']} # >>> # >>> # >>> "Tool" in song # False # >>> # >>> "Tool" in song.keys() # False # >>> # >>> "Tool" in song.keys() # False # >>> # >>> "Tool" in song.values() # True # >>> # >>> "artist" in song.keys() # True # >>> # >>> "artist" in song # True # >>> # >>> song # {'name': 'Parabola', 'artist': 'Tool', 'album': 'Lateralus', 'released': 2001, 'genres': ['Progressive/Art Rock', 'Progressive metal']} # >>> # >>> # >>> # >>> x = {"a": "1", "b": "2", "c": "3"} # >>> # >>> # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> # >>> # >>> x.clear() # >>> # >>> x # {} # >>> # >>> # >>> x = {"a": "1", "b": "2", "c": "3"} # >>> # >>> # >>> y = x # >>> # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> x.clear() # >>> # >>> y # {} # >>> x = {"a": "1", "b": "2", "c": "3"} # >>> # >>> # >>> y = x.copy() # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> x.clear() # >>> x # {} # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> x # {} # >>> # >>> x = {"a": "1", "b": "2", "c": "3"} # >>> # >>> # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> # >>> y = x # >>> # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> # >>> x is y # True # >>> y = x.copy() # >>> # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> y is x # False # >>> x is y # False # >>> x == y # True # >>> y = x # >>> x == y # True # >>> x is y # True # >>> x # {'a': '1', 'b': '2', 'c': '3'} # >>> y # {'a': '1', 'b': '2', 'c': '3'} # >>> # >>> # >>> # >>> # >>> # >>> # >>> {}.fromkeys("hello", True) # {'h': True, 'e': True, 'l': True, 'o': True} # >>> # >>> # >>> {}.fromkeys(["name", "age", "address", "phone"], None) # {'name': None, 'age': None, 'address': None, 'phone': None} # >>> # >>> # >>> {}.fromkeys(True, None) # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # TypeError: 'bool' object is not iterable # >>> # >>> # >>> {}.fromkeys(["name", "age"], None) # {'name': None, 'age': None} # >>> # >>> {}.fromkeys("abcd", None) # {'a': None, 'b': None, 'c': None, 'd': None} # >>> # >>> {}.fromkeys(100, None) # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # TypeError: 'int' object is not iterable # >>> # >>> # >>> # >>> # >>> # >>> {} # {} # >>> # >>> type({}) # <class 'dict'> # >>> # >>> {"name": "John Doe"} # {'name': 'John Doe'} # >>> # >>> # >>> song = { # ... "name": "Sober", # ... "artist": "Tool", # ... "album": "Undertow", # ... } # >>> # >>> # >>> # >>> song # {'name': 'Sober', 'artist': 'Tool', 'album': 'Undertow'} # >>> # >>> # >>> song["name"] # 'Sober' # >>> # >>> song["artist"] # 'Tool' # >>> # >>> song["length"] # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # KeyError: 'length' # >>> # >>> # >>> song # {'name': 'Sober', 'artist': 'Tool', 'album': 'Undertow'} # >>> # >>> song.get("name") # 'Sober' # >>> song.get("artist") # 'Tool' # >>> song.get("length") # >>> # >>> result = song.get("length") # >>> # >>> result # >>> print(result) # None # >>> # >>> song # {'name': 'Sober', 'artist': 'Tool', 'album': 'Undertow'} # >>> # >>> song["name"] # 'Sober' # >>> # >>> song.get("name") # 'Sober' # >>> song["hello"] # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # KeyError: 'hello' # >>> song.get("hello") # >>> # >>> # >>> song = { # ... "name": "Vicarious", # ... "album": "10,000 Days" # ... } # >>> # >>> # >>> song.pop() # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # TypeError: pop expected at least 1 argument, got 0 # >>> # >>> song.pop("name") # 'Vicarious' # >>> # >>> song # {'album': '10,000 Days'} # >>> # >>> # >>> song = { # ... "name": "Vicarious", # ... "album": "10,000 Days" # ... } # >>> # >>> song # {'name': 'Vicarious', 'album': '10,000 Days'} # >>> # >>> # >>> song.pop("hello") # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # KeyError: 'hello' # >>> # >>> song.pop("name") # 'Vicarious' # >>> song # {'album': '10,000 Days'} # >>> # >>> # >>> song = { # ... "name": "The Pot", # ... "artist": "Tool", # ... "album": "10,000 Days" # ... } # >>> # >>> song # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> song.popItem() # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # AttributeError: 'dict' object has no attribute 'popItem'. Did you mean: 'popitem'? # >>> song.popItem() # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # AttributeError: 'dict' object has no attribute 'popItem'. Did you mean: 'popitem'? # >>> # >>> # >>> song.popitem() # ('album', '10,000 Days') # >>> # >>> # >>> # >>> # >>> # >>> song.popitem("artist") # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # TypeError: dict.popitem() takes no arguments (1 given) # >>> # >>> song = {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> # >>> # >>> song # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> # >>> # >>> song2 = {} # >>> # >>> song # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> song2 # {} # >>> song2.update(song) # >>> # >>> song2 # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> song2["name"] # 'The Pot' # >>> # >>> song2["name"] = "Sober" # >>> # >>> song2 # {'name': 'Sober', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> # >>> # >>> song2.update({"length": 2.45}) # >>> # >>> song2 # {'name': 'Sober', 'artist': 'Tool', 'album': '10,000 Days', 'length': 2.45} # >>> # >>> song2["name"] = "Hello" # >>> # >>> song2 # {'name': 'Hello', 'artist': 'Tool', 'album': '10,000 Days', 'length': 2.45} # >>> # >>> song2.update({"name": "World"}) # >>> song2 # {'name': 'World', 'artist': 'Tool', 'album': '10,000 Days', 'length': 2.45} # >>> # >>> # >>> song2.update({"name": "Sober", "album": "Something"}) # >>> # >>> song2 # {'name': 'Sober', 'artist': 'Tool', 'album': 'Something', 'length': 2.45} # >>> # >>> # >>> # >>> song # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> # >>> {key for key in song} # {'album', 'artist', 'name'} # >>> # >>> # >>> {key:True for key in song} # {'name': True, 'artist': True, 'album': True} # >>> # >>> # >>> # >>> {key:value for key,value in song.items()} # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> # >>> song # {'name': 'The Pot', 'artist': 'Tool', 'album': '10,000 Days'} # >>> # >>> {key:value.upper() for key,value in song.items()} # {'name': 'THE POT', 'artist': 'TOOL', 'album': '10,000 DAYS'} # >>> {key.upper():value.upper() for key,value in song.items()} # {'NAME': 'THE POT', 'ARTIST': 'TOOL', 'ALBUM': '10,000 DAYS'} # >>> # >>> # >>> # >>> {num:True for num in range(10)} # {0: True, 1: True, 2: True, 3: True, 4: True, 5: True, 6: True, 7: True, 8: True, 9: True} # >>> # >>> {num:num for num in range(10)} # {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} # >>> # >>> {num:num*2 for num in range(10)} # {0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18} # >>> {num:num**2 for num in range(10)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} # >>>
Scratchpad #8
# def hello(): # print("Hello World") # print("Hello World") # hello() # def greet(): # print("TEST") # return "Hello John" # message = greet() # print(greet()) # print(greet()) # print(message) import random # def flip_coin(): # if random.random() > 0.5: # return "HEADS" # else: # return "TAILS" # print(flip_coin()) # print(flip_coin()) # print(flip_coin()) # def greet(person): # parameter # return f"Hello, {person}" # print(greet("James")) # argument # print(greet("John")) # def greet(person, message): # parameter # return f"{message}, {person}" # print(greet("James", "Hello")) # def add(a, b): # return a + b # print(add(10, 5.4)) # def sum_odd_nums(nums): # total = 0 # for num in nums: # if num % 2 == 1: # total += num # return total # print(sum_odd_nums([1, 2, 3, 4, 5])) # def is_odd_num(num): # if num % 2 == 0: # return False # return True # print(is_odd_num(2)) # def greet(message, name="John"): # return f"{message.upper()}, {name}" # print(greet("John Doe", "hi")) # print(greet("James")) # def add(a, b): # return a + b # def sub(a, b): # return a - b # def math(a, b, fn=add): # return fn(a, b) # print(math(10, 50)) # def full_name(first_name="A", last_name="B"): # return f"{first_name} {last_name}" # print(full_name("john", "doe")) # print(full_name(last_name="doe", first_name="john")) # print(full_name()) # name = "James Smith" # def greet(): # name = "John Doe" # print(name) # print(name) # greet() # total = 50 # global scope # def math(a, b): # total = 10 # local scope # print(a + b + total) # math(10, 20) # total = 0 # def static(): # global total # total += 1 # return total # def increment(num): # num += 1 # return num # total = increment(total) # print(static()) # 0 # print(total) # def outer(): # count = 0 # def inner(): # nonlocal count # count += 1 # return count # return inner() def greet(message, name): """ This function takes a message and a name. It concatenates it and upper-cases it and return the value ## Example greet("Hi", "John") @params message: str name: str """ return f"{message}, {name}".upper() # print(greet("Hi", "John")) # print(greet.__doc__) # print(help(greet)) # import random
Scratchpad #9
# def add(*nums): # total = 0 # for num in nums: # total += num # return total # print(add( # 10, # 5, # 10, # 4, # )) # def add(special_num, *nums): # print(nums, special_num) # add(20, 1, 12, 12) # def profile(**kwargs): # print(kwargs) # profile(name="John Doe", age=20, profession="Programmer") # def show_info(a, b, *args, role="moderator", **kwargs): # return [a, b, args, role, kwargs] # print( # show_info(1, # 2, # 3, # 4, # True, # role="programmer", # first_name="John", # last_name="Doe")) # def add_all_values(*args): # total = 0 # for num in args: # total += num # print(total) # # Array / List # nums = [1, 2, 3, 4, 5, 6, 7, 8] # add_all_values(*nums) # def say_name(first, last): # print(f"My name is {first} {last}.") # data = {"first": "John", "last": "Doe"} # say_name(**data) # def square(num): # return num * num # cube = lambda num: num * num * num # print(cube(10)) # something = 10 # something = square # print(something(2)) # def math(a, b, fn): # return fn(a, b) # print(math(10, 2, lambda a, b: a + b)) # print(math(10, 2, lambda a, b: a - b)) # add = lambda a, b, c: a + b + c # def add(a, b): # return a + b # def sub(a, b): # return a - b # math(10, 2, sub) # print(math(10, 10, add)) # nums = [1, 2, 3, 4, 5, 6, 7, 8] # doubles = map(lambda num: num * 2, nums) # doubles2 = [num * 2 for num in nums] # # print(list(doubles)) # # print(doubles2) # for num in doubles: # print(num) # nums = [1, 2, 3, 4, 5, 6, 7, 8] # evens = filter(lambda num: num % 2 == 0, nums) # print(list(evens)) # even_doubles = map(lambda num: num * 2, filter(lambda num: num % 2 == 0, nums)) # print(list(even_doubles)) # data = [ # { # "name": "Product #1", # "price": 1000 # }, # { # "name": "Product #2", # "price": 2000 # }, # { # "name": "Product #3", # "price": 4000 # }, # { # "name": "Product #4", # "price": 5000 # }, # { # "name": "Product #5", # "price": 10000 # }, # ] # filtered_data = filter(lambda product: product["price"] > 4000, data) # data_in_rupees = map( # lambda product: { # "name": product["name"], # "price": product["price"] * 75 # }, filtered_data) # print(list(data_in_rupees)) # print(all([0, 1, 2, 3])) # nums = [2, 4, 6, 8] # all_evens = map(lambda num: num % 2 == 0, nums) # print(all(nums)) # people = ['John', 'Jack', 'James', 'Jason', 'Aane', 'Jacob'] # print(any(map(lambda name: name[0] == 'A', people))) numbers = [2, 3, 7, 3, 9, 1] sorted_numbers = sorted(numbers) print(sorted_numbers) print(numbers)
Scratchpad #10
# def func: # pass # hello = "world" # print(hello) # len(True) # 10 + "10" # lst = [1, 2, 3, 4] # print(lst[20]) # print(int("hell # collection = {} # print(collection["name"]) # def add(a, b): # if type(a) != int or type(b) != int: # raise TypeError("Please only provide integers") # return a + b # print(add("10", 10)) # def colorize(text, color): # colors = ("red", "yellow", "blue", "green") # # raise ZeroDivisionError("akjsndkjsa") # if type(text) is not str: # raise TypeError("text should be a string") # if type(color) is not str: # raise TypeError("color should be a string") # if color not in colors: # raise ValueError("invalid color provided") # # some logic # print(f"Printed {text} in {color}") # try: # colorize("10", "purple") # except Exception as error: # print(error) # # except (TypeError, ValueError, ZeroDivisionError) as error: # # print(error) # print("AFTER COLORIZE - Hello World") # def divide(a, b): # try: # result = a / b # except Exception as error: # return error # else: # return result # finally: # print("I am going to no matter if it succeeds or it fails") # print(divide(10, "msad")) # class User: # pass # john = User() # instance of the class User # # is a User # jane = User() # print(type(john)) # def Person(first_name, last_name, phone): # return {"first_name": first_name, "last_name": last_name, "phone": phone} class User: def __init__(self, first_name, last_name, phone, age): self.first_name = first_name self.last_name = last_name self.phone = phone self.__age = age # name mangling def greet(self): print(self.first_name, self.last_name) # def get_age(self): # return self._age john = User("John", "Doe", "921098321", 25) jane = User("Jane", "Doe", "324345435", 20) print(john._User__age) # john.greet() # jack = Person("Jack", "Smith", "3243243") # print(john.first_name, john.last_name) # print(jane.first_name, jane.last_name) # # print(jack["first_name"], jack["last_name"])
Scratchpad #11
# # class User: # # nationality = "Indian" # # total_users = 0 # # total_active_users = 0 # # def __init__(self, first_name, last_name, age): # # self.first_name = first_name # # self.last_name = last_name # # self._age = age # # self.profession = "programmer" # # User.total_users += 1 # # def __str__(self): # # return f"{self.first_name} {self.last_name}\n{self._age}" # # def login(self): # # print("You have logged in") # # User.total_active_users += 1 # # def logout(self): # # print("You have logged out") # # User.total_active_users -= 1 # # def greet(self, message): # # print(f"{message} {self.first_name} {self.last_name}") # # def get_age(self): # # print("Someone is trying to access the age") # # return self._age # # @classmethod # # def get_total_user(cls): # # return cls.total_users # # john = User("john", "doe", 20) # # jane = User("jane", "smith", 22) # # print(john) # # print(jane) # # # john.login() # # # john.logout() # # # print(User.get_total_user()) # # # print(User.total_users) # # # print(User.total_active_users) # # # john.nationality = "Nepali" # # # print(john.nationality) # # # print(jane.nationality) # # # print(User.nationality) # # # john.greet() # # # print(john.first_name) # # # print(type(jane)) # # # print(john.get_age()) # # # jane.profession = "developer" # # # print(jane.profession) # # # print(john.profession) # # # jane.greet("hello my name is, ") # # # class Math: # # # @classmethod # # # def add(cls, a, b): # # # return a + b # # # @classmethod # # # def sub(cls, a, b): # # # return a - b # # # @classmethod # # # def mul(cls, a, b): # # # return a # # # @classmethod # # # def square(cls, x): # # # return x * x # # # print(Math.square(10)) # # class User: # # total_users = 0 # # total_active_users = 0 # # def __init__(self, first_name, last_name, age): # # self.first_name = first_name # # self.last_name = last_name # # self._age = age # # self.role = "user" # # User.total_users += 1 # # def login(self): # # print("You have logged in") # # User.total_active_users += 1 # # def logout(self): # # print("You have logged out") # # User.total_active_users -= 1 # # class Admin(User): # # def login(self): # # print("Hello Admin. You have logged in") # # User.total_active_users += 1 # # def create_group(self, name): # # print(f"{name} group created") # # john = User("john", "doe", 20) # # jane = Admin("jane", "daljit wasan", 20) # # john.login() # # jane.login() # # jane.create_group("python") # # # john.create_group("python") # # print(Admin.total_active_users) # class User: # def __init__(self, first_name, last_name, age): # self.first_name = first_name # self.last_name = last_name # self._age = age # @property # def age(self): # return f"{self.first_name} is {self._age} years old" # @age.setter # def age(self, new_age): # self._age = new_age # print("The age has been changed") # # def get_age(self): # # return self._age # # def set_age(self, new_age): # # self._age = new_age # # print("Age has been modified") # john = User("john", "doe", 20) # john.age = 25 # print(john.age) # # print(john.get_age()) # # john.set_age(24) # # print(john.get_age()) # class User: # def __init__(self, first_name, last_name, age): # self.first_name = first_name # self.last_name = last_name # self._age = age # @property # def age(self): # return f"{self.first_name} is {self._age} years old" # @age.setter # def age(self, new_age): # self._age = new_age # print("The age has been changed") # class Admin(User): # def __init__(self, first_name, last_name, age, email): # super().__init__(first_name, last_name, age) # self.email = email # john = Admin("john", "doe", 20, "john@rstforum.net") # print(john.email) # class Human: # def __init__(self, name, age): # self.name = name # self.age = age # def speak(self): # print(f"Hello, my name is {self.name}") # def work(self): # print("I am working") # class Animal: # def __init__(self, name, age): # self.name = name # self.age = age # def speak(self): # print(f"#### #### ##### ###") # def run(self): # print("The thing is running") # class Mutant(Animal, Human): # pass # dj = Mutant("Daljit", 16) # dj.work() # dj.run() # dj.speak() # class User: # def __init__(self, first_name, last_name, age): # self.first_name = first_name # self.last_name = last_name # self._age = age # def speak(self): # raise NotImplementedError("Subclasses need to implement this method") # def __len__(self): # return self._age # def __add__(self, other): # if not isinstance(other, User): # raise TypeError("This is sick!") # return User("Unnamed", self.last_name, 0) # def __repr__(self): # return self.first_name # class Admin(User): # def __init__(self, first_name, last_name, age, email): # super().__init__(first_name, last_name, age) # self.email = email # def speak(self): # print( # f"My name is {self.first_name} {self.last_name} and I am an admin." # ) # class Moderator(User): # def __init__(self, first_name, last_name, age, email): # super().__init__(first_name, last_name, age) # self.email = email # def speak(self): # print( # f"My name is {self.first_name} {self.last_name} and I am an moderator." # ) # class Animal: # pass # # john = Admin("john", "doe", 20, "john@rstforum.net") # jane = User("Jane", "Smith", 25) # john = User("John", "Doe", 25) # liger = Animal() # daljit = User("Daljit", "Wasan", 16) # daljit + liger # # result = john + jane # # print(result) # # print(isinstance(jane, Moderator)) # # jane.speak() # # john.speak() # # print(len(jane)) # # a = 10 # # b = 20 # # print(a + b) # nums = [1, 2, 3, 4, 5] # name = "john" # nums_iter = iter(nums) # print(next(nums_iter)) # for num in nums: # print(num) # for char in name: # print(char) class Counter: def __init__(self, start, end, step): self.start = start self.end = end self.step = step def __iter__(self): return self def __next__(self): if self.start < self.end: num = self.start self.start += self.step return num else: raise StopIteration def __repr__(self): return f"Counter({self.start}, {self.end})" c = Counter(0, 10, 2) # print(c) # for next(num) in iter(c): # c = iter(c) # print(next(num)) # c_iter = iter(c) # print(next(c_iter)) # print(next(c_iter)) # print(next(c_iter))
Scratchpad #12
# def my_map(fn, iterable): # iterator = iter(iterable) # while True: # try: # fn(next(iterator)) # except StopIteration: # break # my_map(lambda a: print(a**a), [1, 2, 3, 4, 5, 6, 7]) # print(list(map(lambda a: a**a, [1, 2, 3, 4, 5, 6, 7]))) # def count_up_to_gen(max): # count = 1 # while count <= max: # yield count # count += 1 # def count_up_to_fn(max): # result = [] # count = 1 # while count <= max: # result.append(count) # count += 1 # return result # # res = count_up_to_fn(10000000000000000000000) # res = count_up_to_gen(10000000000000000000000) # for num in res: # print(num) # print(count_up_to_gen(10000000000000000000000)) # res = count_up_to_gen(10) # for num in res: # print(num) # nums = (num for num in range(100)) # print(nums) # def fib_list(max): # nums = [] # a, b = 0, 1 # while len(nums) < max: # nums.append(b) # a, b = b, a + b # return nums # def fib_gen(max): # a, b = 0, 1 # count = 0 # while count < max: # a, b = b, a + b # yield a # count += 1 # # res = fib_list(10000) # res2 = fib_gen(100000) # for num in res2: # print(num) # Higher order function # def math(a, b, fn): # return fn(a, b) # def add(a, b): # # return a + b # # print(math(10, 5, add)) # # print(math(10, 5, lambda a, b: a - b)) from random import choice # def say_something(): # def words(): # w = choice(["hello", "hi", "namaste", "satsriakal", "salaam"]) # return w # return words # # higher order function (function factories) # def say_something(words_list): # def words(): # w = choice(words_list) # return w # return words # a = 10 # b = say_something(["hello", "hi", "namaste", "satsriakal", "salaam"]) # print(b()) # def sum(n, func): # total = 0 # for num in range(1, n + 1): # total += func(num) # return total # def square(n): # return n * n # def cube(n): # return n * n * n # print(sum(3, square)) # print(sum(3, cube)) # def greet(person): # def get_mood(): # mood = ["Hey", "What!", "What the heck do you want!", "Get lost!"] # msg = choice(mood) # return msg # result = f"{get_mood()} {person}" # return result # print(greet("John")) # import random # def make_greet_func(person): # def make_message(): # msg = random.choice( # ["Hello", "What!", "What the heck do you want!", "Get lost!"]) # return f"{msg} {person}" # return make_message # greet_me = make_greet_func("John") # print(greet_me()) # def greet(fn): # def wrapper(): # # Decorator function # def stars(fn): # def wrapper(): # print("*" * 10) # fn() # print("*" * 10) # return wrapper # @stars # greet = stars(greet) # def greet(): # print("Hello, My name is John") # # greet = stars(greet) # greet() from functools import wraps def make_upper_case(fn): """This is the doc for make_upper_case""" @wraps(fn) # wrapper = wraps(wrapper) def wrapper(*args, **kwargs): """This is the doc for wrapper""" return fn(*args, **kwargs).upper() return wrapper # @make_upper_case # say_hello = make_upper_case(say_hello) # def say_hello(name): # return f"Hello, {name}." # @make_upper_case # say_message = make_upper_case(say_message) # def say_message(name, message): # """This is the docs for say_message""" # return f"{message}, {name}" # # print(say_hello("James")) # # print(say_message("James", "Hi")) # print(say_message.__doc__) # def ensure_first_arg(val): # def inner(fn): # def wrapper(*args, **kwargs): # if args and args[0] != val: # raise ValueError(f"First argument needs to be {val}") # else: # return fn(*args, **kwargs) # return wrapper # return inner # @ensure_first_arg("biryani") # def fav_food(*foods): # fav_food = inner(fav_food) # print(foods) # fav_food = ensure_first_arg("biryani")(fav_food) # fav_food("biryani", "butter chicken", "tandori", "panner masala") def enforce(*types): def inner(fn): def wrapper(*args, **kwargs): new_args = [] for a, t in zip(args, types): # [("hello", str), (5, int)] try: new_args.append(t(a)) # str(10) except (ValueError, TypeError): return "Something went wrong" return fn(*new_args) return wrapper return inner @enforce(str, int) def announce(msg, times): print((msg + "\n") * times) announce(int, 5)