Code With Python – Telegram
Code With Python
39K subscribers
843 photos
24 videos
22 files
747 links
This channel delivers clear, practical content for developers, covering Python, Django, Data Structures, Algorithms, and DSA – perfect for learning, coding, and mastering key programming skills.
Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
# In __init__, add the tabs and call the setups
self.tabs.addTab(self.production_tab, "Production")
self.setup_production_ui()
self.tabs.addTab(self.reports_tab, "Reporting")
self.setup_reports_ui()

# Define Bill of Materials (can be moved to DB in a real app)
self.bill_of_materials = {
'Wooden Table': {'Wood Plank': 5, 'Varnish': 1},
'Wooden Chair': {'Wood Plank': 2, 'Nail': 10}
}

def setup_production_ui(self):
layout = QVBoxLayout()
form = QFormLayout()
self.product_to_make = QComboBox()
self.product_to_make.addItems(self.bill_of_materials.keys())
self.production_qty = QSpinBox()
self.production_qty.setRange(1, 100)

form.addRow("Product:", self.product_to_make)
form.addRow("Quantity:", self.production_qty)
produce_btn = QPushButton("Produce Items")
produce_btn.clicked.connect(self.run_production)

layout.addLayout(form)
layout.addWidget(produce_btn)
self.production_tab.setLayout(layout)

def run_production(self):
product_name = self.product_to_make.currentText()
qty_to_make = self.production_qty.value()
bom = self.bill_of_materials[product_name]

# 1. Check stock for all required materials
for material, required_qty in bom.items():
item_data = db.find_item_by_name(material)
if not item_data or item_data[2] < required_qty * qty_to_make:
QMessageBox.critical(self, "Production Halt", f"Not enough {material} in stock.")
return

# 2. If stock is sufficient, consume materials
for material, required_qty in bom.items():
item_data = db.find_item_by_name(material)
db.update_item_quantity(item_data[0], - (required_qty * qty_to_make))

# 3. Add finished product to inventory
finished_product = db.find_item_by_name(product_name)
if finished_product:
db.update_item_quantity(finished_product[0], qty_to_make)
else:
# You'd calculate a price here in a real app
db.add_inventory_item(product_name, qty_to_make, price=50.0)

QMessageBox.information(self, "Success", f"Produced {qty_to_make} of {product_name}.")
self.load_inventory_data()
self.update_item_combos()

def setup_reports_ui(self):
layout = QVBoxLayout()
label = QLabel("Select a report to export to CSV:")
self.report_type = QComboBox()
self.report_type.addItems(["Current Inventory", "Sales History"]) # Add more as needed
export_btn = QPushButton("Export Report")
export_btn.clicked.connect(self.export_report)

layout.addWidget(label)
layout.addWidget(self.report_type)
layout.addWidget(export_btn)
layout.addStretch()
self.reports_tab.setLayout(layout)

def export_report(self):
report = self.report_type.currentText()
path, _ = QFileDialog.getSaveFileName(self, "Save CSV", "", "CSV Files (*.csv)")
if not path:
return

try:
if report == "Current Inventory":
data = db.get_inventory()
headers = ['ID', 'Name', 'Quantity', 'Price']
with open(path, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(data)
# Add other report types here
# elif report == "Sales History": ...

QMessageBox.information(self, "Success", f"Report exported to {path}")
except Exception as e:
QMessageBox.critical(self, "Export Error", f"An error occurred: {e}")

# Hashtags: #Production #Reporting #CSVExport #BusinessLogic


---

#Step 5: Final Results and Discussion
By combining all the code from the steps above into database.py and main.py, you have a robust, database-driven desktop application.

Results:
Data Persistence: Your inventory and invoice data is saved in warehouse.db and will be there when you restart the application.
Integrated Workflow: Adding a purchase directly increases stock. A sale checks for and decreases stock. Production consumes raw materials and creates finished goods, all reflected in the central inventory table.
Separation of Concerns: The UI logic in main.py is cleanly separated from the data logic in database.py, making the code easier to maintain and extend.
Reporting: You can easily export a snapshot of your current inventory to a CSV file for analysis in other programs like Excel or Google Sheets.

Discussion and Next Steps:
Scalability: While SQLite is excellent for small-to-medium applications, a large-scale, multi-user system would benefit from a client-server database like PostgreSQL or MySQL.
Invoice Complexity: The current invoice system is simplified. A real system would allow multiple items per invoice and store historical invoice data for viewing and printing.
User Interface (UI/UX): The UI is functional but could be greatly improved with better layouts, icons, search/filter functionality in tables, and more intuitive workflows.
Error Handling: The error handling is basic. A production-grade app would have more comprehensive checks for user input and database operations.
Advanced Features: Future additions could include user authentication, supplier and customer management, barcode scanning, and more detailed financial reporting.

This project forms a powerful template for building custom internal business tools with Python.

#ProjectComplete #SoftwareEngineering #ERP #PythonGUI #BusinessApp

━━━━━━━━━━━━━━━
By: @DataScience4
Build a Python MCP Client to Test Servers From Your Terminal

📖 Follow this Python project to build an MCP client that discovers MCP server capabilities and feeds an AI-powered chat with tool calls.

🏷️ #intermediate #ai #projects
1
structured output | AI Coding Glossary

📖 Model responses that conform to a specified format, such as a JSON Schema.

🏷️ #Python
jailbreak | AI Coding Glossary

📖 A method of prompting that bypasses model safety constraints to elicit disallowed or unintended behavior.

🏷️ #Python
#Python #Top60 #BuiltInFunctions
👇👇👇👇👇
Please open Telegram to view this post
VIEW IN TELEGRAM
#Python #Top60 #BuiltInFunctions

#1. print()
Prints the specified message to the screen.

print("Hello, World!")

Hello, World!


#2. len()
Returns the number of items in an object.

my_list = [1, 2, 3, 4]
print(len(my_list))

4


#3. type()
Returns the type of an object.

name = "Python"
print(type(name))

<class 'str'>


#4. input()
Allows user input.

username = input("Enter your name: ")
print("Hello, " + username)

Enter your name: Alex
Hello, Alex


#5. int()
Converts a value to an integer number.

string_number = "101"
number = int(string_number)
print(number + 9)

110

---
#Python #DataTypes #Conversion

#6. str()
Converts a value to a string.

age = 25
print("My age is " + str(age))

My age is 25


#7. float()
Converts a value to a floating-point number.

integer_value = 5
print(float(integer_value))

5.0


#8. bool()
Converts a value to a Boolean (True or False).

print(bool(1))
print(bool(0))
print(bool("Hello"))
print(bool(""))

True
False
True
False


#9. list()
Converts an iterable (like a tuple or string) to a list.

my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list)

[1, 2, 3]


#10. tuple()
Converts an iterable to a tuple.

my_list = [4, 5, 6]
my_tuple = tuple(my_list)
print(my_tuple)

(4, 5, 6)

---
#Python #Math #Functions

#11. sum()
Returns the sum of all items in an iterable.

numbers = [10, 20, 30]
print(sum(numbers))

60


#12. max()
Returns the largest item in an iterable.

numbers = [5, 29, 12, 99]
print(max(numbers))

99


#13. min()
Returns the smallest item in an iterable.

numbers = [5, 29, 12, 99]
print(min(numbers))

5


#14. abs()
Returns the absolute (positive) value of a number.

negative_number = -15
print(abs(negative_number))

15


#15. round()
Rounds a number to a specified number of decimals.

pi = 3.14159
print(round(pi, 2))

3.14

---
#Python #Iterables #Functions

#16. range()
Returns a sequence of numbers, starting from 0 by default, and increments by 1.

for i in range(5):
print(i)

0
1
2
3
4


#17. sorted()
Returns a new sorted list from the items in an iterable.

unsorted_list = [3, 1, 4, 1, 5, 9]
sorted_list = sorted(unsorted_list)
print(sorted_list)

[1, 1, 3, 4, 5, 9]


#18. enumerate()
Returns an enumerate object, which contains pairs of index and value.

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit)

0 apple
1 banana
2 cherry


#19. zip()
Returns an iterator that aggregates elements from two or more iterables.

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old.")

Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.


#20. map()
Applies a given function to each item of an iterable and returns a map object.
1
def square(n):
return n * n

numbers = [1, 2, 3, 4]
squared_numbers = map(square, numbers)
print(list(squared_numbers))

[1, 4, 9, 16]

---
#Python #FunctionalProgramming #Keywords

#21. filter()
Constructs an iterator from elements of an iterable for which a function returns true.

def is_even(n):
return n % 2 == 0

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers))

[2, 4, 6]


#22. lambda
Creates a small anonymous function.

multiply = lambda a, b: a * b
print(multiply(5, 6))

30


#23. def
Keyword used to define a function.

def greet(name):
return f"Hello, {name}!"

print(greet("World"))

Hello, World!


#24. return
Keyword used to exit a function and return a value.

def add(a, b):
return a + b

result = add(7, 8)
print(result)

15


#25. isinstance()
Checks if an object is an instance of a specified class.

number = 10
print(isinstance(number, int))
print(isinstance(number, str))

True
False

---
#Python #ControlFlow #Keywords

#26. if, elif, else
Used for conditional execution.

score = 85
if score >= 90:
print("Grade A")
elif score >= 80:
print("Grade B")
else:
print("Grade C")

Grade B


#27. for
Used to iterate over a sequence (like a list, tuple, or string).

colors = ["red", "green", "blue"]
for color in colors:
print(color)

red
green
blue


#28. while
Creates a loop that executes as long as a condition is true.

count = 0
while count < 3:
print(f"Count is {count}")
count += 1

Count is 0
Count is 1
Count is 2


#29. break
Exits the current loop.

for i in range(10):
if i == 5:
break
print(i)

0
1
2
3
4


#30. continue
Skips the rest of the code inside the current loop iteration and proceeds to the next one.

for i in range(5):
if i == 2:
continue
print(i)

0
1
3
4

---
#Python #StringMethods #TextManipulation

#31. .upper()
Converts a string into upper case.

message = "hello python"
print(message.upper())

HELLO PYTHON


#32. .lower()
Converts a string into lower case.

message = "HELLO PYTHON"
print(message.lower())

hello python


#33. .strip()
Removes any leading and trailing whitespace.

text = "   some space   "
print(text.strip())

some space


#34. .split()
Splits the string at the specified separator and returns a list.

sentence = "Python is fun"
words = sentence.split(' ')
print(words)

['Python', 'is', 'fun']


#35. .join()
Joins the elements of an iterable to the end of the string.

words = ['Python', 'is', 'awesome']
sentence = " ".join(words)
print(sentence)

Python is awesome

---
#Python #MoreStringMethods #Text

#36. .replace()
Returns a string where a specified value is replaced with another value.

text = "I like cats."
new_text = text.replace("cats", "dogs")
print(new_text)

I like dogs.
#37. .startswith()
Returns True if the string starts with the specified value.

filename = "document.pdf"
print(filename.startswith("doc"))

True


#38. .endswith()
Returns True if the string ends with the specified value.

filename = "image.jpg"
print(filename.endswith(".jpg"))

True


#39. .find()
Searches the string for a specified value and returns the position of where it was found. Returns -1 if not found.

text = "hello world"
print(text.find("world"))

6


#40. f-string (Formatted String Literal)
A way to embed expressions inside string literals.

name = "Alice"
age = 30
print(f"{name} is {age} years old.")

Alice is 30 years old.

---
#Python #ListMethods #DataStructures

#41. .append()
Adds an element at the end of the list.

fruits = ['apple', 'banana']
fruits.append('cherry')
print(fruits)

['apple', 'banana', 'cherry']


#42. .pop()
Removes the element at the specified position.

fruits = ['apple', 'banana', 'cherry']
fruits.pop(1) # Removes 'banana'
print(fruits)

['apple', 'cherry']


#43. .remove()
Removes the first item with the specified value.

fruits = ['apple', 'banana', 'cherry', 'banana']
fruits.remove('banana')
print(fruits)

['apple', 'cherry', 'banana']


#44. .insert()
Adds an element at the specified position.

fruits = ['apple', 'cherry']
fruits.insert(1, 'banana')
print(fruits)

['apple', 'banana', 'cherry']


#45. .sort()
Sorts the list in place.

numbers = [3, 1, 5, 2]
numbers.sort()
print(numbers)

[1, 2, 3, 5]

---
#Python #DictionaryMethods #DataStructures

#46. dict()
Creates a dictionary.

my_dict = dict(name="John", age=36)
print(my_dict)

{'name': 'John', 'age': 36}


#47. .keys()
Returns a view object displaying a list of all the keys in the dictionary.

person = {'name': 'Alice', 'age': 25}
print(person.keys())

dict_keys(['name', 'age'])


#48. .values()
Returns a view object displaying a list of all the values in the dictionary.

person = {'name': 'Alice', 'age': 25}
print(person.values())

dict_values(['Alice', 25])


#49. .items()
Returns a view object displaying a list of a given dictionary's key-value tuple pairs.

person = {'name': 'Alice', 'age': 25}
print(person.items())

dict_items([('name', 'Alice'), ('age', 25)])


#50. .get()
Returns the value of the specified key. Provides a default value if the key does not exist.

person = {'name': 'Alice', 'age': 25}
print(person.get('city', 'Unknown'))

Unknown

---
#Python #ErrorHandling #FileIO

#51. try, except
Used to handle errors and exceptions.
try:
result = 10 / 0
except ZeroDivisionError:
result = "You can't divide by zero!"
print(result)

You can't divide by zero!


#52. open()
Opens a file and returns a file object.

# This code creates a file named "myfile.txt"
# No direct output, but a file is created.
file = open("myfile.txt", "w")
file.close()
print("File created and closed.")

File created and closed.


#53. .write()
Writes the specified string to the file.

file = open("myfile.txt", "w")
file.write("Hello, File!")
file.close()
# No direct output, but content is written to myfile.txt
print("Content written to file.")

Content written to file.


#54. .read()
Reads the content of the file.

# Assuming "myfile.txt" contains "Hello, File!"
file = open("myfile.txt", "r")
content = file.read()
print(content)
file.close()

Hello, File!


#55. with
A context manager, often used with open() to automatically handle file closing.

with open("myfile.txt", "w") as f:
f.write("This is safer!")
# The file is automatically closed here.
print("File written and closed safely.")

File written and closed safely.

---
#Python #Keywords #Advanced

#56. import
Used to import modules.

import math
print(math.sqrt(16))

4.0


#57. from ... import
Imports specific parts of a module.

from datetime import date
today = date.today()
print(today)

2023-10-27 
(Note: Output date will be the current date)


#58. in
Membership operator. Checks if a value is present in a sequence.

my_list = [1, 2, 3, 4, 5]
print(3 in my_list)
print(10 in my_list)

True
False


#59. del
Deletes an object (variable, list item, dictionary entry, etc.).

my_list = [10, 20, 30]
del my_list[1] # delete item at index 1
print(my_list)

[10, 30]


#60. pass
A null statement. It's used when a statement is required syntactically but you do not want any command or code to execute.

def my_empty_function():
pass # To be implemented later

my_empty_function() # This does nothing and produces no error
print("Function executed without error.")

Function executed without error.


━━━━━━━━━━━━━━━
By: @DataScience4
1
Top 30 Cyber Security Commands & Tools

#CyberSecurity #Reconnaissance #InfoGathering

#1. ping
Tests reachability of a host on an IP network and measures round-trip time.

ping -c 4 google.com

PING google.com (142.250.72.14) 56(84) bytes of data.
64 bytes from lhr48s23-in-f14.1e100.net (142.250.72.14): icmp_seq=1 ttl=118 time=8.53 ms
...
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms


#2. whois
Retrieves registration information for a domain name or IP address.

whois google.com

Domain Name: GOOGLE.COM
Registry Domain ID: 2138514_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
...
Registrant Organization: Google LLC
Registrant State/Province: CA
Registrant Country: US


#3. dig
(Domain Information Groper) A tool for querying DNS servers.

dig google.com

; <<>> DiG 9.18.1-1-Debian <<>> google.com
;; ANSWER SECTION:
google.com. 156 IN A 142.250.187.238
...
;; Query time: 12 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)


#4. nmap
Network Mapper. A powerful tool for network discovery, port scanning, and security auditing.

nmap -sV -p 80,443 scanme.nmap.org

Starting Nmap 7.92 ( https://nmap.org ) at ...
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.16s latency).

PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.7 ((Ubuntu))


#5. netcat (nc)
The "Swiss army knife" of networking. Can be used for port scanning, file transfer, and creating backdoors.

nc -zv scanme.nmap.org 80

Connection to scanme.nmap.org (45.33.32.156) 80 port [tcp/http] succeeded!

---
#CyberSecurity #Networking #Analysis

#6. netstat
Displays active network connections, routing tables, and interface statistics.

netstat -tulpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 675/postgres
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 789/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 654/dhclient


#7. traceroute
Traces the network path (hops) to a remote host.

traceroute 8.8.8.8

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 1.234 ms 1.567 ms 1.890 ms
2 isp-router.net (10.0.0.1) 5.432 ms 5.678 ms 5.901 ms
...
10 142.251.52.221 (142.251.52.221) 10.112 ms 10.345 ms 10.578 ms
11 dns.google (8.8.8.8) 10.801 ms 10.923 ms 11.045 ms


#8. tcpdump
A powerful command-line packet analyzer that allows you to capture and display network traffic.

sudo tcpdump -i eth0 -c 5 port 80

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:30:01.123456 IP my-pc.54321 > example.com.80: Flags [S], seq 123456789, win 64240, options [mss 1460,sackOK,TS val 10,ecr 0], length 0
... (4 more packets) ...
5 packets captured


#9. arp
Displays and modifies the Address Resolution Protocol (ARP) cache, which maps IP addresses to MAC addresses.

arp -a

? (192.168.1.1) at 00:1a:2b:3c:4d:5e [ether] on eth0
? (192.168.1.105) at 98:76:54:32:10:fe [ether] on eth0


#10. ip
A modern tool to show and manipulate routing, devices, policy routing, and tunnels. (Replaces ifconfig).

ip addr show
1
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0

---
#CyberSecurity #WebSecurity #Vulnerability

#11. curl
A tool to transfer data from or to a server, using various protocols. Essential for interacting with web APIs and inspecting HTTP headers.

curl -I http://example.com

HTTP/1.1 200 OK
Content-Encoding: gzip
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Fri, 27 Oct 2023 10:00:00 GMT
Server: ECS (dcb/7F83)
Content-Length: 648


#12. gobuster
A fast tool used to brute-force URIs (directories and files), DNS subdomains, and virtual host names.

gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt

===============================================================
Gobuster v3.5
===============================================================
[+] Url: http://example.com
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
===============================================================
/index.html (Status: 200) [Size: 1256]
/images (Status: 301) [Size: 178] -> http://example.com/images/
/javanoscript (Status: 301) [Size: 178] -> http://example.com/javanoscript/


#13. nikto
A web server scanner which performs comprehensive tests against web servers for multiple items, including over 6700 potentially dangerous files/CGIs.

nikto -h http://scanme.nmap.org

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP: 45.33.32.156
+ Target Hostname: scanme.nmap.org
+ Target Port: 80
+ Start Time: ...
---------------------------------------------------------------------------
+ Server: Apache/2.4.7 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ OSVDB-3233: /icons/README: Apache default file found.


#14. sqlmap
An open-source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws.

sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs

...
available databases [2]:
[*] information_schema
[*] acuart


#15. whatweb
Identifies different web technologies including content management systems (CMS), blogging platforms, statistic/analytics packages, JavaScript libraries, web servers, and embedded devices.

whatweb scanme.nmap.org

http://scanme.nmap.org [200 OK] Apache[2.4.7], Country[UNITED STATES], HTTPServer[Ubuntu Linux][Apache/2.4.7 ((Ubuntu))], IP[45.33.32.156], Script, Title[Go ahead and ScanMe!], Ubuntu

---
#CyberSecurity #PasswordCracking #Exploitation

#16. John the Ripper (john)
A fast password cracker, currently available for many flavors of Unix, Windows, DOS, and OpenVMS.

# Assume 'hashes.txt' contains 'user:$apr1$A.B.C...$...'
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

Using default input encoding: UTF-8
Loaded 1 password hash (md5crypt, 32/64 OpenSSL)
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (user)
1g 0:00:00:01 DONE (2023-10-27 10:15) 0.9803g/s 1234p/s 1234c/s
Session completed


#17. hashcat
An advanced password recovery utility that can crack a wide variety of hash types using multiple attack modes (dictionary, brute-force, mask).

# -m 0 = MD5 hash type
hashcat -m 0 -a 0 hashes.md5 /usr/share/wordlists/rockyou.txt
...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
...
Recovered........: 1/1 (100.00%) Digests


#18. hydra
A parallelized login cracker which supports numerous protocols to attack. It is very fast and flexible.

hydra -l user -P /path/to/passwords.txt ftp://192.168.1.101

Hydra v9.1 (c) 2020 by van Hauser/THC - Please do not use in military projects
...
[21][ftp] host: 192.168.1.101 login: user password: password
1 of 1 target successfully completed, 1 valid password found


#19. Metasploit Framework (msfconsole)
An exploitation framework for developing, testing, and executing exploit code against a remote target machine.

msfconsole

=[ metasploit v6.3.3-dev                          ]
+ -- --=[ 2289 exploits - 1184 auxiliary - 406 post ]
+ -- --=[ 953 payloads - 45 encoders - 11 nops ]
+ -- --=[ 9 evasion ]

msf6 >


#20. searchsploit
A command-line search tool for Exploit-DB that also allows you to take a copy of exploits to your working directory.

searchsploit apache 2.4.7

-------------------------------------------------- ---------------------------------
Exploit Title | Path
-------------------------------------------------- ---------------------------------
Apache 2.4.7 (Ubuntu) - 'mod_cgi' Bash Env | linux/remote/34900.py
Apache mod_authz_svn < 1.8.10 / < 1.7.18 - | multiple/remote/34101.txt
-------------------------------------------------- ---------------------------------

---
#CyberSecurity #Forensics #Utilities

#21. strings
Prints the sequences of printable characters in files. Useful for finding plaintext credentials or other information in binary files.

strings /bin/bash

/lib64/ld-linux-x86-64.so.2
_ITM_deregisterTMCloneTable
__gmon_start__
...
echo
read
printf


#22. grep
Searches for patterns in each file. An indispensable tool for parsing log files and command output.

grep "Failed password" /var/log/auth.log

Oct 27 10:20:05 server sshd[1234]: Failed password for invalid user admin from 203.0.113.5 port 54321 ssh2
Oct 27 10:20:10 server sshd[1236]: Failed password for root from 203.0.113.5 port 12345 ssh2


#23. chmod
Changes the permissions of files and directories. Critical for hardening a system.

# Before
ls -l noscript.sh
-rwxrwxr-x 1 user user 50 Oct 27 10:25 noscript.sh

# Command
chmod 700 noscript.sh

# After
ls -l noscript.sh

-rwx------ 1 user user 50 Oct 27 10:25 noscript.sh


#24. xxd
Creates a hex dump of a given file or standard input. It can also convert a hex dump back to its original binary form.

echo -n "Hi" | xxd

00000000: 4869                                     Hi


#25. base64
Encodes and decodes data in Base64 format. Commonly used in web applications and email attachments.

echo -n "security" | base64

c2VjdXJpdHk=

---
#CyberSecurity #Crypto #Hashing

#26. openssl
A robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. Also a general-purpose cryptography library.

# Generate a self-signed certificate
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Generating a RSA private key
...........................................................................+++++
......................................................................+++++
writing new private key to 'key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
...
(Files key.pem and cert.pem are created)


#27. sha256sum
Computes and checks a SHA256 message digest. Used to verify file integrity.

echo -n "hello world" > file.txt
sha256sum file.txt

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  file.txt


#28. gpg
(GNU Privacy Guard) A complete and free implementation of the OpenPGP standard, allowing you to encrypt and sign your data and communications.

# Encrypt a file
echo "secret message" > secret.txt
gpg -c secret.txt

(A file named secret.txt.gpg is created after prompting for a passphrase)


#29. aircrack-ng
A complete suite of tools to assess Wi-Fi network security. It focuses on monitoring, attacking, testing, and cracking.

# Put interface in monitor mode
airmon-ng start wlan0

PHY Interface Driver  Chipset

phy0 wlan0 ath9k Atheros Communications Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)


#30. theHarvester
A tool for gathering open-source intelligence (OSINT) to help determine a company's external threat landscape.

theharvester -d google.com -l 100 -b google

[*] Target: google.com
[*] Searching Google for 100 results...
[*] Found 2 emails:
- some-email@google.com
- another-email@google.com
[*] Found 15 hosts:
- host1.google.com
- host2.google.com
...


━━━━━━━━━━━━━━━
By: @DataScience4
2
100 Python Examples: A Step-by-Step Guide

#Python #Programming #Tutorial #LearnPython
👇👇👇👇👇
Please open Telegram to view this post
VIEW IN TELEGRAM
100 Python Examples: A Step-by-Step Guide

#Python #Programming #Tutorial #LearnPython

Part 1: The Basics (Examples 1-15)

#1. Print "Hello, World!"
The classic first program. print() is a function that outputs text to the console.

print("Hello, World!")

Hello, World!


#2. Variables and Strings
Store text in a variable and print it.

message = "I am learning Python."
print(message)

I am learning Python.


#3. Integer Variable
Store a whole number.

age = 30
print("My age is:", age)

My age is: 30


#4. Float Variable
Store a number with a decimal point.

price = 19.99
print("The price is:", price)

The price is: 19.99


#5. Boolean Variable
Store a value that is either True or False.

is_learning = True
print("Am I learning?", is_learning)

Am I learning? True


#6. Get User Input
Use the input() function to get information from the user.

name = input("What is your name? ")
print("Hello, " + name)

What is your name? Alice
Hello, Alice


#7. Simple Calculation
Perform a basic arithmetic operation.

a = 10
b = 5
print(a + b)

15


#8. Comments
Use # to add comments that Python will ignore.

# This line calculates the area of a rectangle
length = 10
width = 5
area = length * width
print("Area is:", area)

Area is: 50


#9. Type Conversion (String to Integer)
Convert a user's input (which is a string) to an integer to perform math.

age_str = input("Enter your age: ")
age_int = int(age_str)
next_year_age = age_int + 1
print("Next year you will be:", next_year_age)

Enter your age: 25
Next year you will be: 26


#10. String Concatenation
Combine multiple strings using the + operator.

first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)

John Doe


#11. Multiple Assignment
Assign values to multiple variables in one line.

x, y, z = 10, 20, 30
print(x, y, z)

10 20 30


#12. The type() Function
Check the data type of a variable.

num = 123
text = "hello"
pi = 3.14
print(type(num))
print(type(text))
print(type(pi))

<class 'int'>
<class 'str'>
<class 'float'>


#13. Basic Arithmetic Operators
Demonstrates addition, subtraction, multiplication, and division.

a = 15
b = 4
print("Addition:", a + b)
print("Subtraction:", a - b)
print("Multiplication:", a * b)
print("Division:", a / b)

Addition: 19
Subtraction: 11
Multiplication: 60
Division: 3.75


#14. Floor Division and Modulus
// for division that rounds down, and % for the remainder.

a = 15
b = 4
print("Floor Division:", a // b)
print("Modulus (Remainder):", a % b)

Floor Division: 3
Modulus (Remainder): 3


#15. Exponentiation
Use ** to raise a number to a power.

power = 3 ** 4  # 3 to the power of 4
print(power)

81

---
Part 2: String Manipulation (Examples 16-25)

#16. String Length
Use len() to get the number of characters in a string.

my_string = "Python is fun"
print(len(my_string))

13
1
#17. Uppercase and Lowercase
Use .upper() and .lower() methods.

my_string = "Python"
print(my_string.upper())
print(my_string.lower())

PYTHON
python


#18. Find Substring
Use the .find() method to get the starting index of a substring.

sentence = "The quick brown fox"
print(sentence.find("quick"))

4


#19. Replace Substring
Use the .replace() method.

sentence = "I like cats."
new_sentence = sentence.replace("cats", "dogs")
print(new_sentence)

I like dogs.


#20. String Slicing (Basic)
Extract a part of a string using [start:end].

word = "Programming"
# Get characters from index 3 up to (but not including) index 7
print(word[3:7])

gram


#21. String Slicing (From Start)
Omit the start index to slice from the beginning.

word = "Programming"
print(word[:4])

Prog


#22. String Slicing (To End)
Omit the end index to slice to the end.

word = "Programming"
print(word[7:])

ming


#23. f-Strings (Formatted String Literals)
A modern way to embed expressions inside string literals.

name = "Bob"
age = 40
print(f"His name is {name} and he is {age} years old.")

His name is Bob and he is 40 years old.


#24. Check if String is in a String
Use the in keyword.

sentence = "Hello world, welcome to Python."
print("welcome" in sentence)

True


#25. Split a String into a List
Use the .split() method to break a string into a list of smaller strings.

csv_data = "John,Doe,45"
items = csv_data.split(',')
print(items)

['John', 'Doe', '45']

---
Part 3: Conditional Logic (Examples 26-30)

#26. if Statement
Execute code only if a condition is true.

temperature = 35
if temperature > 30:
print("It's a hot day!")

It's a hot day!


#27. if-else Statement
Execute one block of code if true, and another if false.

age = 17
if age >= 18:
print("You are an adult.")
else:
print("You are a minor.")

You are a minor.


#28. if-elif-else Statement
Check multiple conditions.

score = 85
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
else:
print("Grade: C")

Grade: B


#29. Comparison Operators
== (equal), != (not equal), > (greater than), < (less than).

x = 10
y = 10
if x == y:
print("x is equal to y")
if x != 5:
print("x is not equal to 5")

x is equal to y
x is not equal to 5


#30. Logical Operators (and, or)
Combine conditional statements.

age = 25
has_license = True

if age >= 18 and has_license:
print("You can drive.")

You can drive.

---
Part 4: Loops (Examples 31-40)

#31. for Loop with range()
Repeat a block of code a specific number of times.

for i in range(5):  # from 0 to 4
print(f"Number: {i}")

Number: 0
Number: 1
Number: 2
Number: 3
Number: 4


#32. for Loop over a String
Iterate through each character of a string.

for char in "Python":
print(char)

P
y
t
h
o
n
#33. for Loop over a List
Iterate through each item in a list.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)

apple
banana
cherry


#34. while Loop
Repeat a block of code as long as a condition is true.

count = 1
while count <= 5:
print(f"Count is: {count}")
count += 1

Count is: 1
Count is: 2
Count is: 3
Count is: 4
Count is: 5


#35. The break Statement
Exit a loop prematurely.

for i in range(10):
if i == 5:
break
print(i)

0
1
2
3
4


#36. The continue Statement
Skip the current iteration and move to the next.

for i in range(5):
if i == 2:
continue
print(i)

0
1
3
4


#37. Sum Numbers in a Range
A practical example of a for loop.

total = 0
for number in range(1, 6): # 1, 2, 3, 4, 5
total += number
print(f"The sum is: {total}")

The sum is: 15


#38. Nested Loops
A loop inside another loop.

for i in range(3):
for j in range(2):
print(f"({i}, {j})")

(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)


#39. Guessing Game with while
A simple interactive loop.

# In a real noscript, this would work. Output is simulated.
secret_number = 7
guess = 0
while guess != secret_number:
guess = int(input("Guess the number: "))
print("You guessed it!")

Guess the number: 3
Guess the number: 8
Guess the number: 7
You guessed it!


#40. else Clause in for Loop
The else block executes when the loop finishes normally (not with break).

for i in range(5):
print(i)
else:
print("Loop finished without break.")

0
1
2
3
4
Loop finished without break.

---
Part 5: Lists (Examples 41-55)

#41. Create a List
A list is an ordered collection of items.

numbers = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "cherry"]
print(numbers)
print(fruits)

[1, 2, 3, 4, 5]
['apple', 'banana', 'cherry']


#42. Access List Items by Index
Get an item by its position (index starts at 0).

fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # Get the second item

banana


#43. Negative Indexing
Access items from the end of the list.

fruits = ["apple", "banana", "cherry"]
print(fruits[-1]) # Get the last item

cherry


#44. Change an Item's Value
Lists are mutable, meaning you can change their items.

fruits = ["apple", "banana", "cherry"]
fruits[0] = "orange"
print(fruits)

['orange', 'banana', 'cherry']


#45. Add an Item with .append()
Add an item to the end of the list.

fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits)

['apple', 'banana', 'cherry']


#46. Insert an Item with .insert()
Insert an item at a specific position.

fruits = ["apple", "cherry"]
fruits.insert(1, "banana")
print(fruits)

['apple', 'banana', 'cherry']


#47. Remove an Item with .remove()
Remove the first occurrence of a specific value.
fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")
print(fruits)

['apple', 'cherry']


#48. Remove an Item with .pop()
Remove an item at a specific index (or the last item if no index is given).

fruits = ["apple", "banana", "cherry"]
fruits.pop(1)
print(fruits)

['apple', 'cherry']


#49. Get List Length
Use len() to get the number of items.

numbers = [10, 20, 30, 40]
print(len(numbers))

4


#50. Slicing a List
Get a range of items from a list.

numbers = [0, 1, 2, 3, 4, 5, 6]
print(numbers[2:5]) # Items from index 2 to 4

[2, 3, 4]


#51. Check if an Item Exists
Use the in keyword.

fruits = ["apple", "banana", "cherry"]
if "banana" in fruits:
print("Yes, banana is in the list.")

Yes, banana is in the list.


#52. Sort a List with .sort()
Sorts the list in place (modifies the original list).

numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers)

[1, 1, 3, 4, 5, 9]


#53. Copy a List
Use the .copy() method to avoid modifying the original.

original = [1, 2, 3]
copied = original.copy()
copied.append(4)
print(f"Original: {original}")
print(f"Copied: {copied}")

Original: [1, 2, 3]
Copied: [1, 2, 3, 4]


#54. Join Two Lists
Combine two lists using the + operator.

list1 = ["a", "b"]
list2 = [1, 2]
list3 = list1 + list2
print(list3)

['a', 'b', 1, 2]


#55. List of Lists (2D List)
A list that contains other lists.

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][1]) # Get the item at row 1, column 1

5

---
Part 6: Dictionaries, Tuples, Sets (Examples 56-70)

#56. Create a Dictionary
An unordered collection of key-value pairs.

person = {
"name": "Alice",
"age": 25,
"city": "New York"
}
print(person)

{'name': 'Alice', 'age': 25, 'city': 'New York'}


#57. Access Dictionary Values
Use the key in square brackets.

person = {"name": "Alice", "age": 25}
print(person["name"])

Alice


#58. Add or Change a Dictionary Item
Assign a value to a key.

person = {"name": "Alice", "age": 25}
person["age"] = 26 # Change value
person["country"] = "USA" # Add new item
print(person)

{'name': 'Alice', 'age': 26, 'country': 'USA'}


#59. Get Dictionary Keys
Use the .keys() method.

person = {"name": "Alice", "age": 25}
print(person.keys())

dict_keys(['name', 'age'])


#60. Get Dictionary Values
Use the .values() method.

person = {"name": "Alice", "age": 25}
print(person.values())

dict_values(['Alice', 25])


#61. Loop Through a Dictionary
Iterate over the keys.

person = {"name": "Alice", "age": 25}
for key in person:
print(f"{key}: {person[key]}")

name: Alice
age: 25


#62. Loop Through Dictionary Items
Use .items() to get both keys and values.
1
person = {"name": "Alice", "age": 25}
for key, value in person.items():
print(f"{key} -> {value}")

name -> Alice
age -> 25


#63. Check if a Key Exists
Use the in keyword.

person = {"name": "Alice", "age": 25}
if "age" in person:
print("Age key exists.")

Age key exists.


#64. Create a Tuple
A tuple is an ordered collection that is unchangeable (immutable).

coordinates = (10, 20)
print(coordinates)

(10, 20)


#65. Access Tuple Items
Same as lists, using index.

coordinates = (10, 20, 30)
print(coordinates[0])

10


#66. Tuple Immutability
You cannot change a tuple's items after it is created.

# This code will produce an error
coordinates = (10, 20)
# coordinates[0] = 5 # This would raise a TypeError
print("Tuples cannot be changed.")

Tuples cannot be changed.


#67. Create a Set
A set is an unordered collection with no duplicate items.

numbers = {1, 2, 3, 2, 4} # The duplicate '2' is ignored
print(numbers)

{1, 2, 3, 4}


#68. Add Item to a Set
Use the .add() method.

fruits = {"apple", "banana"}
fruits.add("cherry")
print(fruits)

{'banana', 'apple', 'cherry'}
(Note: Order is not guaranteed)


#69. Set Union
Combine two sets using | or .union().

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2)

{1, 2, 3, 4, 5}


#70. Set Intersection
Get items that are in both sets using & or .intersection().

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2)

{3}

---
Part 7: Functions (Examples 71-80)

#71. Define a Simple Function
Use the def keyword to create a function.

def greet():
print("Hello from a function!")

greet() # Call the function

Hello from a function!


#72. Function with a Parameter
Pass information into a function.

def greet(name):
print(f"Hello, {name}!")

greet("Alice")
greet("Bob")

Hello, Alice!
Hello, Bob!


#73. Function with Multiple Parameters

def add_numbers(x, y):
print(x + y)

add_numbers(5, 3)

8


#74. Function with a return Value
Return a value from a function to be used elsewhere.

def multiply(x, y):
return x * y

result = multiply(4, 5)
print(result)

20


#75. Function with a Default Parameter Value

def greet(name="World"):
print(f"Hello, {name}!")

greet()
greet("Python")

Hello, World!
Hello, Python!


#76. Keyword Arguments
Call a function by specifying the parameter names.

def show_info(name, age):
print(f"Name: {name}, Age: {age}")

show_info(age=30, name="Charlie")

Name: Charlie, Age: 30


#77. A Function that Returns a Boolean

def is_even(number):
return number % 2 == 0

print(is_even(10))
print(is_even(7))

True
False


#78. Arbitrary Arguments (*args)
Allow a function to accept a variable number of arguments.

def sum_all(*numbers):
total = 0
for num in numbers:
total += num
return total

print(sum_all(1, 2, 3, 4))

10


#79. Lambda Function (Anonymous Function)
A small, one-line function.
# A lambda function that adds 10 to the number passed in
x = lambda a : a + 10
print(x(5))

15


#80. Scope (Local vs. Global Variables)
A variable created inside a function is only available inside that function.

def my_function():
local_var = "I am local"
print(local_var)

my_function()
# print(local_var) # This would cause a NameError

I am local

---
Part 8: Modules & File I/O (Examples 81-90)

#81. Import a Module
Use code from another file or library.

import math

print(math.sqrt(16))

4.0


#82. Import a Specific Function
Use from ... import ... to import only what you need.

from datetime import date

today = date.today()
print(today)

(Current date will be printed, e.g., 2023-10-27)


#83. The random Module
Generate random numbers.

import random

# Random integer between 1 and 10 (inclusive)
print(random.randint(1, 10))

(A random number between 1 and 10, e.g., 7)


#84. Write to a Text File (w)
Create a new file and write content to it. Overwrites existing files.

# This creates a file named "greeting.txt"
with open("greeting.txt", "w") as file:
file.write("Hello, File!")
print("File written successfully.")

File written successfully.


#85. Read from a Text File (r)
Open a file and read its contents.

# Assumes "greeting.txt" from the previous example exists
with open("greeting.txt", "r") as file:
content = file.read()
print(content)

Hello, File!


#86. Append to a Text File (a)
Add content to the end of an existing file.

with open("greeting.txt", "a") as file:
file.write("\nHave a nice day.")
print("File appended successfully.")

File appended successfully.


#87. Reading a File Line by Line

# Assumes "greeting.txt" now has two lines
with open("greeting.txt", "r") as file:
for line in file:
print(line.strip()) # .strip() removes newline characters

Hello, File!
Have a nice day.


#88. Create a Class (OOP Basics)
A blueprint for creating objects.

class Dog:
def bark(self):
print("Woof!")

my_dog = Dog() # Create an object (instance) of the Dog class
my_dog.bark()

Woof!


#89. The __init__() Method (Constructor)
A special method that runs when an object is created.

class Dog:
def __init__(self, name):
self.name = name

def speak(self):
print(f"{self.name} says Woof!")

dog1 = Dog("Rex")
dog1.speak()

Rex says Woof!


#90. Class Inheritance
Create a new class that inherits properties from an existing class.

class Animal:
def speak(self):
print("Animal speaks")

class Cat(Animal): # Cat inherits from Animal
def speak(self): # Override the method
print("Meow")

my_cat = Cat()
my_cat.speak()

Meow

---
Part 9: Error Handling & Advanced Topics (Examples 91-100)

#91. try...except Block
Handle errors gracefully without crashing the program.

try:
result = 10 / 0
except ZeroDivisionError:
print("Error: Cannot divide by zero.")

Error: Cannot divide by zero.


#92. Handling ValueError

try:
number = int("abc")
except ValueError:
print("Invalid number format.")

Invalid number format.
1