Cheat Sheet Python #
Python adalah salah satu bahasa pemrograman paling populer, dikenal karena kesederhanaan dan fleksibilitasnya. Baik Anda pemula maupun programmer berpengalaman, memiliki cheat sheet bisa sangat membantu untuk referensi cepat. Berikut adalah cheat sheet komprehensif yang mencakup konsep, sintaks, dan fitur penting Python.
1. Basic Syntax #
Printing #
print("Hello, World!")
Comments #
# This is a single-line comment
"""
This is a
multi-line comment
"""
Variables and Data Types #
# Variables
name = "Alice" # String
age = 30 # Integer
height = 5.5 # Float
is_student = True # Boolean
# Data Types
type(name) # <class 'str'>
type(age) # <class 'int'>
2. Control Structures #
Conditional Statements #
if age >= 18:
print("Adult")
elif age < 13:
print("Child")
else:
print("Teenager")
Loops #
For Loop #
for i in range(5):
print(i)
While Loop #
count = 0
while count < 5:
print(count)
count += 1
3. Functions #
Defining Functions #
def greet(name):
return f"Hello, {name}!"
print(greet("Alice"))
Lambda Functions #
square = lambda x: x * x
print(square(5))
Another Example #
source : neetcode
def myFunc(n, m):
return n * m
print(myFunc(3, 4))
# Nested functions have access to outer variables
def outer(a, b):
c = "c"
def inner():
return a + b + c
return inner()
print(outer("a", "b"))
# Can modify objects but not reassign
# unless using nonlocal keyword
def double(arr, val):
def helper():
# Modifying array works
for i, n in enumerate(arr):
arr[i] *= 2
# will only modify val in the helper scope
# val *= 2
# this will modify val outside helper scope
nonlocal val
val *= 2
helper()
print(arr, val)
nums = [1, 2]
val = 3
double(nums, val)
4. Data Structures #
Lists #
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits[1]) # Output: banana
Tuples #
coordinates = (10.0, 20.0)
print(coordinates[0]) # Output: 10.0
Dictionaries #
student = {
"name": "Alice",
"age": 30,
"is_student": True
}
print(student["name"]) # Output: Alice
Sets #
unique_numbers = {1, 2, 3, 3, 4}
print(unique_numbers) # Output: {1, 2, 3, 4}
HashSets #
source : neetcode
# HashSet
mySet = set()
mySet.add(1)
mySet.add(2)
print(mySet)
print(len(mySet))
print(1 in mySet)
print(2 in mySet)
print(3 in mySet)
mySet.remove(2)
print(2 in mySet)
# list to set
print(set([1, 2, 3]))
# Set comprehension
mySet = { i for i in range(5) }
print(mySet)
HashMaps #
source : neetcode
# HashMap (aka dict)
myMap = {}
myMap["alice"] = 88
myMap["bob"] = 77
print(myMap)
print(len(myMap))
myMap["alice"] = 80
print(myMap["alice"])
print("alice" in myMap)
myMap.pop("alice")
print("alice" in myMap)
myMap = { "alice": 90, "bob": 70 }
print(myMap)
# Dict comprehension
myMap = { i: 2*i for i in range(3) }
print(myMap)
# Looping through maps
myMap = { "alice": 90, "bob": 70 }
for key in myMap:
print(key, myMap[key])
for val in myMap.values():
print(val)
for key, val in myMap.items():
print(key, val)
5. Modules and Packages #
Importing Modules #
import math
print(math.sqrt(16)) # Output: 4.0
Creating a Module #
Create a file mymodule.py
:
def my_function():
return "Hello from my module!"
Import it:
from mymodule import my_function
print(my_function())
6. File Handling #
Reading from a File #
with open('file.txt', 'r') as file:
content = file.read()
print(content)
Writing to a File #
with open('file.txt', 'w') as file:
file.write("Hello, World!")
7. Exception Handling #
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero!")
finally:
print("Execution completed.")
8. Classes #
source : neetcode
class MyClass:
# Constructor
def __init__(self, nums):
# Create member variables
self.nums = nums
self.size = len(nums)
# self key word required as param
def getLength(self):
return self.size
def getDoubleLength(self):
return 2 * self.getLength()
myObj = MyClass([1, 2, 3])
print(myObj.getLength())
print(myObj.getDoubleLength())
9. Arrays #
source : neetcode
# Arrays (called lists in python)
arr = [1, 2, 3]
print(arr)
# Can be used as a stack
arr.append(4)
arr.append(5)
print(arr)
arr.pop()
print(arr)
arr.insert(1, 7)
print(arr)
arr[0] = 0
arr[3] = 0
print(arr)
# Initialize arr of size n with default value of 1
n = 5
arr = [1] * n
print(arr)
print(len(arr))
# Careful: -1 is not out of bounds, it's the last value
arr = [1, 2, 3]
print(arr[-1])
# Indexing -2 is the second to last value, etc.
print(arr[-2])
# Sublists (aka slicing)
arr = [1, 2, 3, 4]
print(arr[1:3])
# Similar to for-loop ranges, last index is non-inclusive
print(arr[0:4])
# But no out of bounds error
print(arr[0:10])
# Unpacking
a, b, c = [1, 2, 3]
print(a, b, c)
# Be careful though
# a, b = [1, 2, 3]
# Loop through arrays
nums = [1, 2, 3]
# Using index
for i in range(len(nums)):
print(nums[i])
# Without index
for n in nums:
print(n)
# With index and value
for i, n in enumerate(nums):
print(i, n)
# Loop through multiple arrays simultaneously with unpacking
nums1 = [1, 3, 5]
nums2 = [2, 4, 6]
for n1, n2 in zip(nums1, nums2):
print(n1, n2)
# Reverse
nums = [1, 2, 3]
nums.reverse()
print(nums)
# Sorting
arr = [5, 4, 7, 3, 8]
arr.sort()
print(arr)
arr.sort(reverse=True)
print(arr)
arr = ["bob", "alice", "jane", "doe"]
arr.sort()
print(arr)
# Custom sort (by length of string)
arr.sort(key=lambda x: len(x))
print(arr)
# List comprehension
arr = [i for i in range(5)]
print(arr)
# 2-D lists
arr = [[0] * 4 for i in range(4)]
print(arr)
print(arr[0][0], arr[3][3])
# This won't work
# arr = [[0] * 4] * 4
10. Math #
source : neetcode
# Division is decimal by default
print(5 / 2)
# Double slash rounds down
print(5 // 2)
# CAREFUL: most languages round towards 0 by default
# So negative numbers will round down
print(-3 // 2)
# A workaround for rounding towards zero
# is to use decimal division and then convert to int.
print(int(-3 / 2))
# Modding is similar to most languages
print(10 % 3)
# Except for negative values
print(-10 % 3)
# To be consistent with other languages modulo
import math
from multiprocessing import heap
print(math.fmod(-10, 3))
# More math helpers
print(math.floor(3 / 2))
print(math.ceil(3 / 2))
print(math.sqrt(2))
print(math.pow(2, 3))
# Max / Min Int
float("inf")
float("-inf")
# Python numbers are infinite so they never overflow
print(math.pow(2, 200))
# But still less than infinity
print(math.pow(2, 200) < float("inf"))
Library Berguna #
- NumPy: Untuk komputasi numerik.
- Pandas: Untuk manipulasi dan analisis data.
- Matplotlib: Untuk visualisasi data.
- Requests: Untuk melakukan permintaan HTTP.
- Flask/Django: Untuk pengembangan web.