Logo

~/saidqb cat ecosystem/programming-language/python.md

Py

Python

General-purpose backend language

commit by saidqb

Requirements

python --version && pip --version

Venv & pip

python -m venv venv
source venv/bin/activate        # Linux/Mac
venv\Scripts\activate           # Windows
pip install -r requirements.txt
pip freeze > requirements.txt
pip install --upgrade <pkg>

Variabel, tipe, string

name: str = "SaidQB"
age, price, active = 8, 19.99, True
tags = ["python", "go", "php"]
config = {"debug": True, "port": 8000}

f"Halo {name}, umur {age} tahun"       # f-string
"{} - {}".format(name, age)
name.upper(); name.strip(); name.split(",")

Control flow

if age >= 18: ...
elif age >= 13: ...
else: ...

for tag in tags: ...
for i, tag in enumerate(tags): ...
while i < 5: i += 1

Function & lambda

def greet(name: str, greeting: str = "Halo") -> str:
    return f"{greeting}, {name}!"

square = lambda x: x * x
def total(*args, **kwargs): ...        # variadic

Comprehension & collection

squares = [x * x for x in range(10)]
evens = [x for x in range(20) if x % 2 == 0]
mapped = {k: v.upper() for k, v in config.items()}
unique = {x for x in tags}                          # set comprehension
sorted(tags, key=len, reverse=True)

Class & dataclass

class User:
    def __init__(self, name: str, email: str):
        self.name, self.email = name, email

    def __repr__(self):
        return f"User({self.name})"

@dataclass
class Point:
    x: int
    y: int = 0

Exception & context manager

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"Error: {e}")
finally:
    print("selesai")

with open("file.txt") as f:
    content = f.read()

Import umum

import os, sys, json, re
from pathlib import Path
from datetime import datetime
from dataclasses import dataclass
from typing import Optional