Python সেটআপ ও Hello World
এই পাঠে যা শিখবেন
- AI জগতে Python-এর অবস্থান কেন এত শক্তিশালী
- Python চালানোর তিনটি উপায় — Anaconda, VS Code, Google Colab
- প্রথম Python প্রোগ্রাম —
print()ও comment - ব্রাউজারেই Pyodide দিয়ে কোড চালানোর অভ্যাস
১ · Python কেন AI-এর প্রথম পছন্দ?
যেকোনো AI কোর্স, paper, GitHub repo, বা production system খুললে — দেখবেন PythonPythonGuido van Rossum কর্তৃক ১৯৯১-এ তৈরি একটি interpreted, dynamically-typed, general-purpose ভাষা। সরল syntax-এর কারণে scientific computing, data analysis, AI/ML-এ প্রভাবশালী।। ChatGPT-র গবেষণা Python-এ। PyTorch, TensorFlow — দু'টিই Python-প্রথম। Kaggle-এর ৯০%+ notebook Python-এ। কেন?
১) সহজ syntax: print("hi") — ইংরেজি বাক্যের মতো পড়া যায়।
২) বিশাল ecosystem: NumPy, Pandas, PyTorch — গবেষণা ও production একই ভাষায়।
৩) Glue language: উপরে Python, ভিতরে C/C++/CUDA — দ্রুত গণনা, সহজ ইন্টারফেস।
Python ধীর ভাষা — এটা সত্য। কিন্তু NumPy-র মতো লাইব্রেরি ভেতরে C-তে চলে। আপনি Python লেখেন, কিন্তু গণনা C-তে হয়। ফলে speed পান C-র, কিন্তু লেখেন Python-এর সরলতায়।
২ · Python চালানোর তিনটি পথ
নতুনদের জন্য তিনটি বিকল্প — কোনটা বাছবেন তা নির্ভর করে আপনার লক্ষ্য ও মেশিনের ওপর।
২.১ · AnacondaAnacondaPython + ৩০০-এর বেশি data science package-এর ফ্রি distribution. একটি install-এ NumPy, Pandas, Jupyter — সব পাওয়া যায়। ML/DS-এর de facto setup. (লোকাল মেশিন)
কাদের জন্য: যারা নিজের ল্যাপটপে বড় প্রজেক্ট করবেন, internet ছাড়া কাজ চান।
ইনস্টল: anaconda.com/download → প্ল্যাটফর্ম বাছুন (Windows/macOS/Linux) → ডাউনলোড → next-next-finish।
সাইজ: ~৪ GB। ধৈর্য লাগবে।
২.২ · VS Code + Python extension
কাদের জন্য: যারা একটি লাইট, কাস্টমাইজযোগ্য editor চান।
ইনস্টল: code.visualstudio.com → Python extension যোগ করুন → আলাদা করে Python ইনস্টল করতে হবে (python.org)।
২.৩ · Google ColabGoogle ColabGoogle-এর ফ্রি ক্লাউড-ভিত্তিক Jupyter Notebook সার্ভিস — শুধু Gmail অ্যাকাউন্ট লাগে। ফ্রি GPU/TPU access, কিছু install লাগে না, share করা সহজ। গবেষক ও ছাত্রদের জন্য আদর্শ। (ব্রাউজার)
কাদের জন্য: পুরোপুরি নতুন, পুরনো ল্যাপটপ, বা যাঁরা GPU চান বিনা মূল্যে।
সেটআপ: colab.research.google.com → Gmail-এ লগইন → New Notebook → কোড লিখুন → Run।
ফায়দা: NumPy, Pandas, PyTorch — সব pre-installed। ফ্রি GPU ১২ ঘণ্টা/সেশন।
৩ · প্রথম Python প্রোগ্রাম
প্রতিটি ভাষা শেখার ঐতিহ্য — "Hello, World!" দিয়ে শুরু। Brian Kernighan ১৯৭৪-এ প্রথম এই উদাহরণ লেখেন। Python-এ এটি মাত্র এক লাইন।
# আমার প্রথম Python প্রোগ্রাম
print("Hello, AI!")
print("আমি Python শিখছি — ABCL TECH-এ")
Hello, AI! ও পরের লাইন।
# দিয়ে শুরু লাইনগুলো commentCommentমানুষের জন্য নোট — Python এই লাইন উপেক্ষা করে। কোডের কেন বোঝাতে ব্যবহার হয়, কী বোঝাতে নয়। — কম্পিউটার এগুলো পড়ে না।
৪ · একটু এগিয়ে — সংখ্যা ও যোগ
Python একটি ক্যালকুলেটরও বটে। নিচের কোডে সংখ্যা যোগ করি ও print করি।
# সংখ্যা ও গণনা
a = 7
b = 5
print("যোগফল:", a + b)
print("গুণফল:", a * b)
print("ভাগফল:", a / b)
print("ভাগশেষ:", a % b)
= চিহ্ন assignment — মানে "ডান দিকের মান বাঁ দিকের নামে রাখো"। a = 7 মানে a নামক একটি বাক্সে ৭ রেখে দাও।
৫ · Python-এর সাথে AI-র সংযোগ
AI-র যেকোনো প্রজেক্টের রান্নাঘরে যা যা থাকে — সব Python-এ লেখা:
- NumPy: অ্যারে ও গাণিতিক কাজ — Travis Oliphant, ২০০৬।
- Pandas: টেবিল-আকারের ডেটা — Wes McKinney, ২০০৮।
- Matplotlib: গ্রাফ ও চার্ট — John Hunter, ২০০৩।
- scikit-learn: classical ML — David Cournapeau, ২০০৭।
- PyTorch: deep learning — Meta AI, ২০১৬।
- HuggingFace Transformers: LLM-এর জন্য — ২০১৮।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Python "ধীর" ভাষা — তবু AI-তে এটিই সবচেয়ে জনপ্রিয়। C++ বা Rust-এর মতো দ্রুত ভাষা থাকতে কেন Python? এই বিরোধাভাস কীভাবে সমাধান হলো?
এই প্রশ্নটি AI ইঞ্জিনিয়ারিং-এর সবচেয়ে গভীর architectural সিদ্ধান্তগুলোর একটি ব্যাখ্যা করে। হ্যাঁ — Python পিউর Python কোড চালালে C++-এর চেয়ে ১০০× ধীর হতে পারে। কিন্তু কেউ AI-র গণনা পিউর Python-এ করে না।
"Two-language problem" ও তার সমাধান:
- সমস্যা: গবেষকরা সরল ভাষা চান (Python)। কিন্তু GPU-তে দ্রুত গণনা চান (C++/CUDA)।
- সমাধান: Python-এর সব heavy কাজ C/C++/CUDA-তে লেখা — Python শুধু "নির্দেশ পাঠায়"।
- NumPy-র
np.array— ভেতরে C struct।a + bলিখলে — Python-এর মধ্যে পার হয় না, সরাসরি C লুপ চালায়। - PyTorch-এর tensor operations — CUDA kernel-এ যায়, GPU-তে চলে।
প্রমাণ: বিশুদ্ধ Python-এ ১০ লক্ষ সংখ্যা যোগ — ~০.৫ সেকেন্ড। NumPy-তে — ~০.০০৫ সেকেন্ড (১০০×)। কারণ NumPy ভিতরে SIMD-optimized C লুপ চালায়।
Python-এর প্রকৃত শক্তি:
- Glue ভাষা: NumPy (C), TensorFlow (C++), PyTorch (C++), JAX (XLA) — সব Python থেকে একই ভাষায় access।
- Iteration speed: গবেষণায় বার বার পরীক্ষা করতে হয় — Python-এর REPL ও notebook এই কাজে অতুলনীয়।
- Community ও ecosystem: ৪ লাখ+ package PyPI-তে। যেকোনো paper আজ-ই Python-এ implement।
প্রতিদ্বন্দ্বী যাঁরা চেষ্টা করেছেন:
- Julia (২০১২): "Python-এর সরলতা + C-র দ্রুততা" দাবি। গবেষকদের পছন্দ। তবে ecosystem ছোট, jobs কম।
- Mojo (২০২৩): Python-এর superset দাবি Modular AI-র। প্রতিশ্রুতি বড়, এখনো নবজাতক।
- Rust (production-এ): Hugging Face-এর tokenizer Rust-এ লেখা। কিন্তু interface Python-এ।
মূল উপলব্ধি: Python "ধীর" নয় — Python-এর interface "ধীর" হলেও — তার ecosystem-এর performance C/C++/CUDA-র সমান। AI-তে Python = "fast where it matters, simple where it matters." এই combination অন্য ভাষা match করতে পারেনি — এখনো।
প্র ০২ Anaconda, VS Code, ও Colab — তিনটিই বৈধ পথ। আপনি একটি ML কোম্পানিতে নতুন ইঞ্জিনিয়ার যোগ দিলে — কোনটা শুরু করবেন? Production ও research-এ পার্থক্য কী?
এই সিদ্ধান্ত উপরিভাগে "tool choice" — কিন্তু গভীরে workflow philosophy-র প্রশ্ন। সঠিক tool বাছাই = ১০ গুণ productivity।
Research vs Production — বিভাজন রেখা:
- Research/exploration: দ্রুত পরীক্ষা, visualization, একই কোষ বার বার চালানো। Tool: Jupyter/Colab।
- Production: reproducible, version-controlled, scalable, tested কোড। Tool: VS Code + Git + Docker।
নতুন কোম্পানিতে যোগ দিলে — দিন-১:
- প্রথমে কোম্পানির
README.mdওsetup.shদেখুন। - Python virtualenv বা conda environment সেটআপ — version দরকার তাঁদেরটা।
- VS Code + Python extension — সবচেয়ে portable। তাই default এটা।
- Jupyter chunked exploration-এর জন্য — কিন্তু production কোড
.pyফাইলে।
Notebook-এর সমস্যা production-এ:
- Cell execution order matters — out-of-order চালালে hidden bug।
- Git diff ভয়ানক — JSON format।
- Code reuse কঠিন — function এক notebook থেকে অন্যে।
- Test লেখা practical না।
হাইব্রিড best practice (2024-পরবর্তী):
- VS Code-এ Notebook: Jupyter-র সুবিধা + Git-friendly।
- Jupytext: notebook ↔
.pyauto-sync। - nbdev/Quarto: notebook থেকে production package generate।
- uv/poetry: dependency management — pip-এর চেয়ে দ্রুত।
Anaconda কেন কম জনপ্রিয় হচ্ছে?
- Disk-heavy (৪+ GB), slow updates।
- Container era-তে (Docker) bundled distribution গুরুত্ব হারিয়েছে।
- License পরিবর্তন (২০২০) — বড় কোম্পানি commercial license চায়।
- আজকাল miniconda বা uv বেশি ব্যবহৃত।
মূল কথা: Tool কখনো শেষ লক্ষ্য নয়। Research-এ — speed of iteration। Production-এ — reproducibility ও observability। দু'টোই Python-এ পারা যায় — কিন্তু আলাদা workflow-এ।
প্র ০৩
Python ২ ও Python ৩ — পার্থক্য কী এবং কেন migrate হলো? print "hi" বনাম print("hi") ছাড়া আর কী changed? নতুনদের কেন এটা জানা দরকার?
Python ২ → Python ৩ migration — সফটওয়্যার ইতিহাসের সবচেয়ে দীর্ঘ ও বেদনাদায়ক transitions-এর একটি (২০০৮–২০২০)। এটা থেকে software engineering-এর গভীর শিক্ষা।
মূল breaking changes:
- print statement → function:
print "hi"→print("hi")। কেন? consistency — সবকিছু expression। - Unicode by default: Python ২-এ string ছিল ASCII bytes। Python ৩-এ str সবসময় Unicode। বাংলা টেক্সট processing — Python ৩-এ অনায়াসে।
- Integer division:
5 / 2Python ২-এ → ২ (int)। Python ৩-এ → ২.৫ (float)। গাণিতিকভাবে সঠিক। - Iterators:
range(),map(),filter()— Python ৩-এ memory-efficient iterator। - Dict ordering: Python 3.7+ থেকে insertion order সংরক্ষিত (২০১৮)।
কেন এত সময় লাগল?
- Python ২ ২০০০-এর আগে থেকে চলছিল — millions of lines of legacy code।
- Backwards-incompatible — গ্রন্থাগারগুলো সব update করতে হলো।
- NumPy, Pandas, Django — সবাই dual support বছরের পর বছর।
- End of life: Python 2.7 — January ১, ২০২০।
আজকের জন্য কেন গুরুত্বপূর্ণ?
- Stack Overflow পুরনো উত্তর: Python ২-র syntax প্রায়ই copy করেন নতুনরা — error পান।
- Legacy systems: কিছু পুরনো enterprise এখনো Python ২ চালাচ্ছে — বিপজ্জনক।
- String handling: Bangla/Unicode-এ Python ৩ ছাড়া অর্থহীন।
চলমান version evolution (Python ৩-এর ভেতরেও):
- ৩.৫ (২০১৫): type hints (
def f(x: int) -> int)। - ৩.৬ (২০১৬): f-strings (
f"value is {x}") — game-changer। - ৩.৮ (২০১৯): walrus operator (
:=)। - ৩.১০ (২০২১): structural pattern matching (
match/case)। - ৩.১২+ (২০২৩+): faster Python initiative — performance ১০-৬০% improvement।
মূল উপলব্ধি: Python ২ → ৩ — ১২ বছরের transition story বলে যে breaking change ভয়ানক costly। তাই Python core team আজও খুব সাবধানে নতুন feature যোগ করে। নতুন developer-এর জন্য — সবসময় Python 3.10+ দিয়ে কাজ করুন।
প্র ০৪ Comment লেখার কী দর্শন থাকা উচিত? "ভালো কোডে comment লাগে না" বনাম "সব লাইনে comment চাই" — দু'টিই extreme। মাঝামাঝি কী?
Comment নিয়ে software engineering-এ এক ধরনের বিতর্ক চলছে কয়েক দশক ধরে। Robert Martin ("Clean Code") বলেন: "comments are failures." আবার অনেকে বলেন comment ছাড়া কোড অপাঠ্য।
সঠিক দর্শন: comment "কী করে" নয়, "কেন করে" বলে।
খারাপ comment-এর উদাহরণ:
# i কে ১ বাড়াও— কোড নিজেই বলছে।
i = i + 1# total খুঁজে বের করো— function name যথেষ্ট।
total = sum(items)- পুরনো comment যা কোডের সাথে miss-match — ভুল তথ্য বিপজ্জনক।
ভালো comment-এর উদাহরণ:
# API ৫xx ফিরালে retry — ৩বার পর্যন্ত (rate-limit থেকে বাঁচতে)— কেন।# BUG: Pandas 1.5-এ groupby NaN keep করে — explicit dropna।— workaround কারণ।# অর্ডার গুরুত্বপূর্ণ: feature scaling-এর আগে imputation।— non-obvious dependency।
Comment-এর তিন উদ্দেশ্য:
- Why: এই অদ্ভুত কোড কেন। (most valuable)
- Warning: এই function-এ এই side-effect আছে।
- TODO/FIXME: ভবিষ্যতের কাজ চিহ্নিত।
Docstring বনাম comment:
- Docstring: function/class-এর "API contract" — উদাহরণ, parameter, return। মেশিন-পাঠযোগ্য।
- Comment: implementation-এর reasoning। reader-এর জন্য।
Notebook-এর বিশেষ ক্ষেত্র:
- Markdown cell — narrative-এর জন্য। কোডের ভেতর comment নয়।
- Tutorial-এ comment বেশি — পাঠক শিখছে।
- Production code-এ comment কম — clean code self-documenting।
Self-documenting কোডের বৈশিষ্ট্য:
- Variable name অর্থবহ —
iনয়,customer_count। - Function name action+object —
calculate_average_order_value()। - Magic number-এর constant —
3নয়,MAX_RETRY_COUNT = 3। - Boolean —
xনয়,is_validবাhas_permission।
মূল উপলব্ধি: Comment হলো "code-reviewer ভবিষ্যতে আমিই" — এই কথা ভেবে লিখুন। ৬ মাস পরে নিজে যা বুঝতে চাইবেন — শুধু সেটাই comment-এ। বাকি সব কোডের নামকরণে।
অনুশীলন
-
চালু করুন: উপরের কোড সেলে নিজের নাম যোগ করে নতুন output দিন। যেমন:
print("আমার নাম রহিম")।print("আমার নাম রহিম") print("আমি Python শিখছি") print("আজ থেকে AI-র যাত্রা শুরু")প্রতিটি
print()একটি নতুন লাইনে output দেবে। বাংলা ইউনিকোড সরাসরি কাজ করে — Python ৩-এর সুবিধা। -
ক্যালকুলেটর: Python দিয়ে হিসাব করুন — ১০০ টাকার জিনিসে ১৫% ভ্যাট লাগলে মোট কত? কোড লিখে যাচাই করুন।
price = 100 vat_percent = 15 vat = price * vat_percent / 100 total = price + vat print("মূল্য:", price) print("ভ্যাট:", vat) print("মোট:", total) # Output: 100, 15.0, 115.0 -
ভাবুন: আপনি কোন পরিবেশে কাজ করবেন — Anaconda, VS Code, না Colab? কেন? নিজের অবস্থা (laptop, internet, লক্ষ্য) মাথায় রেখে সিদ্ধান্ত নিন।
সাধারণ সুপারিশ:
- সম্পূর্ণ নতুন → Colab (zero install, ফ্রি GPU)।
- ডেভেলপার, কোড লেখায় অভিজ্ঞ → VS Code + Python।
- বড় ML প্রজেক্ট, offline → Anaconda/Miniconda।
প্র ০২-এর উত্তরে বিস্তারিত trade-off আছে।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ০২ · Variable, ডেটা টাইপ ও অপারেটর পরবর্তী পাঠ তথ্য রাখার বাক্স — int, float, str, bool — ও তাদের সাথে কী কী করা যায়।
- কোর্স হোম · ২৫টি পাঠের তালিকা Python for AI পুরো কোর্সের roadmap — কোন পাঠ কখন।
- AI Foundations পাশের ট্র্যাক Vector, matrix, gradient — AI-র গণিত। Python-এর সাথে সাথে পড়ুন।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।