رفتن به محتوا
پایتون از صفراصول زباندرس ۱ از ۱۰

اولین برنامه

برنامه‌نویسی و پایتون یعنی چه، بررسی نصب پایتون روی Ubuntu، حالت تعاملی (>>>)، اولین فایل hello.py و اجرایش، print و input و توضیح با #، حساب ساده، و خواندن سه خطای اول: SyntaxError، NameError و IndentationError.

  • حدود ۱۹ دقیقه مطالعه
  • ۶ مثال اجراشده
  • ۳ تمرین با جواب
  • مقدماتی تا متوسط
  • به‌روزرسانی: ۲۹ مهر ۱۴۰۵

توی این درس یاد می‌گیری برنامه‌نویسی یعنی چه و چرا پایتون برای شروع انتخاب خوبی است. مطمئن می‌شوی پایتون روی Ubuntu تو نصب است، در حالت تعاملی (>>>) چند خط امتحان می‌کنی، اولین فایل برنامه (hello.py) را می‌نویسی و اجرا می‌کنی، با print چیزی نشان می‌دهی، با input از کاربر چیزی می‌پرسی، و سه خطای اولی را که هر تازه‌کاری می‌بیند (SyntaxError، NameError، IndentationError) می‌خوانی و درست می‌کنی.

تا حالا در ترمینال یکی‌یکی دستور زده‌ای. ولی فرض کن هر روز باید ۲۰۰ فایل لاگ را بخوانی، خط‌های خطا را بشماری و یک گزارش بنویسی. با دست ساعت‌ها طول می‌کشد. برنامه یعنی فهرستی از دستورها که یک بار می‌نویسی و کامپیوتر هر بار، بدون خستگی و اشتباه، اجرایش می‌کند.

برنامه مثل دستور پخت است: قدم‌به‌قدم، به زبانی که آشپز (کامپیوتر) بفهمد. «دو لیوان آب بریز؛ اگر جوش آمد برنج را اضافه کن؛ ده دقیقه صبر کن.» کامپیوتر آشپزی است که دقیقاً همان را انجام می‌دهد که نوشته‌ای، نه آنچه منظورت بوده. اگر بنویسی «نمک بریز» و نگویی چقدر، می‌پرسد (خطا می‌دهد). پایتون یکی از زبان‌هایی است که این دستورها را با آن می‌نویسیم؛ زبانی که خواندنش شبیه انگلیسی ساده است.

تو متن برنامه را در یک فایل .py می‌نویسی؛ مفسر پایتون آن را خط به خط می‌خواند و اجرا می‌کند و نتیجه در ترمینال چاپ می‌شود.

Ubuntu خودش برای کارهای داخلی‌اش پایتون دارد، پس تقریباً همیشه نصب است:

Terminal window
python3 --version
خروجی
Python 3.12.3

3.12 نسخه‌ی پایتونی است که Ubuntu 24.04 همراه دارد. هر نسخه‌ی 3.10 به بالا برای این دوره کافی است. اسم دستور python3 است؛ روی Ubuntu دستور python (بدون ۳) به‌صورت پیش‌فرض وجود ندارد:

خروجی (روی Ubuntu تازه)
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3

پس همیشه python3 بنویس. (اگر روی ویندوز هستی، این دوره را داخل WSL که در دوره‌ی لینوکس نصب کردی دنبال کن تا دستورها یکی باشند.)

فقط python3 را بزن (بدون اسم فایل). پایتون یک ماشین‌حساب هوشمند باز می‌کند که هر خطی بنویسی فوراً اجرا می‌کند:

دستورها و کلیدها
python3
2 + 3
print("سلام")
exit()
صفحه
ali@pc:~$ python3
Python 3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 3
5
>>> print("سلام")
سلام
>>> exit()
ali@pc:~$

علامت >>> یعنی «پایتون منتظر دستور توست» (مثل $ در ترمینال). با exit() یا Ctrl+D خارج می‌شوی. حالت تعاملی برای امتحان کردن یک خط عالی است؛ ولی هر چه در آن بنویسی با بستنش از بین می‌رود. برنامه‌ی واقعی را در فایل می‌نویسیم.

مثال ۳: اولین فایل، hello.py

Section titled “مثال ۳: اولین فایل، hello.py”

یک پوشه برای همه‌ی تمرین‌های این دوره بساز و فایل را با nano باز کن:

Terminal window
mkdir -p ~/py
cd ~/py
nano hello.py

این سه خط را بنویس، ذخیره کن (Ctrl+O، Enter) و خارج شو (Ctrl+X):

hello.py
# اولین برنامه‌ی من
print("سلام دنیا!")
print("امروز پایتون یاد می‌گیرم.")

حالا اجرایش کن:

Terminal window
python3 hello.py
خروجی
سلام دنیا!
امروز پایتون یاد می‌گیرم.

سه چیز یاد گرفتی:

  • print(...) هر چه داخل پرانتز باشد را چاپ می‌کند و به خط بعد می‌رود.
  • متن باید داخل کوتیشن باشد ("..." یا '...'؛ صاف، نه کج). به متن در برنامه‌نویسی رشته (string) می‌گویند.
  • خطی که با # شروع شود توضیح (comment) است: پایتون آن را نادیده می‌گیرد و فقط برای آدم‌هاست.

پایتون خط‌ها را از بالا به پایین، یکی‌یکی اجرا می‌کند.

⚡ بررسی سریع

با اجرای python3 hello.py، خط «# اولین برنامه‌ی من» چه می‌شود؟

مثال ۴: پایتون به‌عنوان ماشین‌حساب

Section titled “مثال ۴: پایتون به‌عنوان ماشین‌حساب”

عددها را بدون کوتیشن می‌نویسی. این چند خط را در حالت تعاملی امتحان کن:

print(2 + 3 * 4)
print(10 / 3)
print(10 // 3)
print(2 ** 10)
print("ha" * 3)
خروجی
14
3.3333333333333335
3
1024
hahaha
علامت کار مثال
+ - * جمع، تفریق، ضرب 2 + 3 * 4 می‌شود ۱۴ (ضرب اول)
/ تقسیم (همیشه عدد اعشاری) 10 / 3 می‌شود 3.33...
// تقسیم صحیح (قسمت اعشار حذف) 10 // 3 می‌شود 3
% باقی‌مانده 10 % 3 می‌شود 1
** توان 2 ** 10 می‌شود 1024

جالب است: "ha" * 3 یعنی «این متن را سه بار تکرار کن». یعنی علامت‌ها روی متن هم معنی دارند (درس بعد).

مثال ۵: پرسیدن از کاربر، input

Section titled “مثال ۵: پرسیدن از کاربر، input”

input یک سؤال چاپ می‌کند، منتظر می‌ماند کاربر چیزی بنویسد و Enter بزند، و جواب را برمی‌گرداند. فایل greet.py:

greet.py
name = input("اسمت چیست؟ ")
print("سلام", name)
print("اسمت", len(name), "حرف دارد.")
Terminal window
python3 greet.py
صفحه (بعد از تایپ «علی» و Enter)
اسمت چیست؟ علی
سلام علی
اسمت 3 حرف دارد.
  • name = input(...) جواب کاربر را در یک متغیر به اسم name نگه می‌دارد (درس بعد کامل).
  • print می‌تواند چند چیز را با ویرگول بگیرد و بینشان یک فاصله بگذارد.
  • len(name) طول متن (تعداد حرف‌ها) را می‌دهد.

خطا گرفتن بخشی از برنامه‌نویسی است؛ مهم این است که پیامش را بخوانی. پایتون همیشه می‌گوید کدام فایل، کدام خط و چه نوع خطایی.

۱) پرانتز بسته نشده:

bad1.py
print("سلام"
خروجی
File "/home/ali/py/bad1.py", line 1
print("سلام"
^
SyntaxError: '(' was never closed

SyntaxError یعنی «دستورت را از نظر شکل نمی‌فهمم»: این‌جا پرانتزی باز شده و هیچ‌وقت بسته نشده. علامت ^ جای مشکل را نشان می‌دهد.

۲) اسم ناشناخته:

bad2.py
print(nmae)
خروجی
Traceback (most recent call last):
File "/home/ali/py/bad2.py", line 1, in <module>
print(nmae)
^^^^
NameError: name 'nmae' is not defined

NameError یعنی «چیزی به این اسم نمی‌شناسم». یا غلط تایپی است (nmae به‌جای name)، یا یادت رفته متن را در کوتیشن بگذاری (print(سلام) هم همین خطا را می‌دهد). خط آخر پیام همیشه مهم‌ترین است؛ بالای آن (Traceback) مسیر رسیدن به خطاست.

۳) فاصله‌ی اضافه در ابتدای خط:

bad3.py
print("یک")
print("دو")
خروجی
File "/home/ali/py/bad3.py", line 2
print("دو")
IndentationError: unexpected indent

در پایتون فاصله‌ی ابتدای خط (تورفتگی یا indent) معنی دارد (در درس شرط و حلقه می‌بینی چرا). خطی که بی‌دلیل جلوتر شروع شود، IndentationError می‌دهد. راه‌حل: خط‌های معمولی را از ستون اول شروع کن.

پشت پرده: «مفسر» یعنی چه؟

Section titled “پشت پرده: «مفسر» یعنی چه؟”

کامپیوتر فقط زبان خودش (دستورهای پردازنده) را می‌فهمد. python3 یک مفسر (interpreter) است: برنامه‌ای که متن پایتون تو را می‌خواند، اول کل فایل را از نظر شکل بررسی می‌کند (برای همین SyntaxError قبل از اجرای حتی خط اول می‌آید)، آن را به یک شکل میانی به اسم bytecode تبدیل می‌کند و بعد خط به خط اجرا می‌کند. خطاهایی مثل NameError فقط وقتی پیدا می‌شوند که اجرا به همان خط برسد؛ برای همین در bad2.py کلمه‌ی Traceback (ردیابی اجرا) آمد ولی در bad1.py نه.

خطای شکل (Syntax) قبل از اجرا پیدا می‌شود؛ خطای اجرا (مثل NameError) فقط وقتی اجرا به آن خط برسد.

این‌که پایتون «مفسری» است، یعنی برای اجرا لازم نیست برنامه را جدا کامپایل کنی (مثل زبان C)؛ می‌نویسی و فوراً اجرا می‌کنی. همین آن را برای یاد گرفتن، اسکریپت‌نویسی و کارهای DevOps محبوب کرده است.

دستور ترمینال کار
python3 --version نسخه‌ی پایتون
python3 حالت تعاملی (خروج: exit() یا Ctrl+D)
python3 file.py اجرای یک فایل
python3 -c "print(1+1)" اجرای یک خط بدون فایل
در پایتون کار
print(a, b) چاپ (با فاصله بینشان)
input("سؤال ") پرسیدن از کاربر
len(متن) طول متن
# ... توضیح
خطا معنی معمول
SyntaxError شکل دستور غلط است: پرانتز، کوتیشن، دونقطه
NameError اسم ناشناخته: غلط تایپی یا کوتیشن جاافتاده
IndentationError فاصله‌ی ابتدای خط نابه‌جا

۱) نوشتن python به‌جای python3

Section titled “۱) نوشتن python به‌جای python3”

روی Ubuntu خطای Command 'python' not found می‌گیری. راه‌حل: python3.

۲) زدن دستور ترمینال داخل >>> (یا برعکس)

Section titled “۲) زدن دستور ترمینال داخل >>> (یا برعکس)”
صفحه
>>> python3 hello.py
File "<stdin>", line 1
python3 hello.py
^^^^^
SyntaxError: invalid syntax

python3 hello.py دستور ترمینال است، نه پایتون. راه‌حل: اول با exit() از >>> خارج شو. نشانه‌ی ساده: اگر پرامپت >>> است داخل پایتونی؛ اگر $ است در ترمینال.

print(سلام) خطای NameError: name 'سلام' is not defined می‌دهد، چون پایتون سلام را اسم یک متغیر فرض می‌کند. راه‌حل: print("سلام").

۴) کوتیشن کج یا عدد فارسی

Section titled “۴) کوتیشن کج یا عدد فارسی”

اگر برنامه را از Word یا تلگرام کپی کنی، ممکن است “سلام” (کوتیشن کج) بیاید و SyntaxError: invalid character بگیری (درس «صفحه‌کلید و نمادها» در دوره‌ی مبانی). راه‌حل: کد را خودت با صفحه‌کلید انگلیسی تایپ کن؛ متن داخل کوتیشن می‌تواند فارسی باشد.

۵) اجرای فایل از پوشه‌ی اشتباه

Section titled “۵) اجرای فایل از پوشه‌ی اشتباه”
خروجی
python3: can't open file '/home/ali/hello.py': [Errno 2] No such file or directory

فایل در ~/py است و تو در ~ هستی. راه‌حل: cd ~/py یا مسیر کامل: python3 ~/py/hello.py.

تمرینآسان

فایل me.py بنویس که سه خط درباره‌ی تو چاپ کند: اسم، شهر و یک چیزی که دوست داری. یک خط توضیح هم بالای فایل بگذار.

دیدن جواب
me.py
# معرفی من
print("اسم من علی است.")
print("در تهران زندگی می‌کنم.")
print("به کوه‌نوردی علاقه دارم.")
Terminal window
python3 me.py
خروجی
اسم من علی است.
در تهران زندگی می‌کنم.
به کوه‌نوردی علاقه دارم.
تمرینمتوسط

تمرین اصلی: برنامه‌ی minutes.py بنویس که با print حساب کند یک روز چند دقیقه و یک سال (۳۶۵ روز) چند ثانیه است، و نتیجه را با یک توضیح فارسی کنارش چاپ کند.

دیدن جواب
minutes.py
# محاسبه‌ی زمان
print("دقیقه‌های یک روز:", 24 * 60)
print("ثانیه‌های یک سال:", 365 * 24 * 60 * 60)
Terminal window
python3 minutes.py
خروجی
دقیقه‌های یک روز: 1440
ثانیه‌های یک سال: 31536000
تمرینسخت

برنامه‌ی city.py بنویس که اسم کاربر و شهرش را با دو input بپرسد و یک جمله مثل «علی از تهران، خوش آمدی!» چاپ کند. بعد عمداً پرانتز آخر را پاک کن، اجرا کن، پیام خطا را بخوان و بگو پایتون کدام خط را نشان داد.

دیدن جواب
city.py
name = input("اسمت چیست؟ ")
city = input("اهل کجایی؟ ")
print(name, "از", city + "، خوش آمدی!")
صفحه (با جواب‌های علی و تهران)
اسمت چیست؟ علی
اهل کجایی؟ تهران
علی از تهران، خوش آمدی!

city + "، خوش آمدی!" دو متن را به هم می‌چسباند (بدون فاصله؛ درس بعد). با پاک کردن پرانتز آخر:

خروجی
File "/home/ali/py/city.py", line 3
print(name, "از", city + "، خوش آمدی!"
^
SyntaxError: '(' was never closed

پایتون خط ۳ را نشان داد و ^ زیر پرانتز بازی که بسته نشده آمد. چون خطای شکل است، حتی دو input اول هم اجرا نشدند.

آزمونک
  1. روی Ubuntu برای اجرای فایل app.py چه می‌زنی؟

  2. علامت >>> یعنی…

  3. خروجی print(10 // 3) چیست؟

  4. NameError: name 'x' is not defined معمولاً یعنی…

  5. چرا SyntaxError قبل از اجرای حتی خط اول می‌آید؟

  • برنامه فهرستی از دستورهاست که کامپیوتر دقیقاً همان‌طور که نوشته‌ای اجرا می‌کند؛ پایتون زبانی خوانا برای نوشتن آن.
  • روی Ubuntu: python3 --version، حالت تعاملی با python3 (خروج exit())، اجرای فایل با python3 file.py.
  • print(...) چاپ می‌کند، input(...) می‌پرسد، # توضیح است، متن داخل کوتیشن است.
  • علامت‌های حساب: + - * / // % **.
  • خطا را از خط آخر پیام بخوان: SyntaxError (شکل)، NameError (اسم ناشناخته)، IndentationError (فاصله‌ی ابتدای خط).
برگه‌ی تقلب این درس
دستورکاری که می‌کند
python3 --versionنسخه‌ی پایتون
python3حالت تعاملی >>>
python3 hello.pyاجرای فایل
print("متن")چاپ
name = input("سؤال ")پرسیدن از کاربر
len("سلام")طول متن
# توضیحخطی که اجرا نمی‌شود
exit() یا Ctrl+Dخروج از >>>