اولین برنامه
برنامهنویسی و پایتون یعنی چه، بررسی نصب پایتون روی Ubuntu، حالت تعاملی (>>>)، اولین فایل hello.py و اجرایش، print و input و توضیح با #، حساب ساده، و خواندن سه خطای اول: SyntaxError، NameError و IndentationError.
- حدود ۱۹ دقیقه مطالعه
- ۶ مثال اجراشده
- ۳ تمرین با جواب
- مقدماتی تا متوسط
- بهروزرسانی: ۲۹ مهر ۱۴۰۵
توی این درس یاد میگیری برنامهنویسی یعنی چه و چرا پایتون برای شروع انتخاب خوبی است. مطمئن میشوی پایتون روی Ubuntu تو نصب است، در حالت تعاملی (>>>) چند خط امتحان میکنی، اولین فایل برنامه (hello.py) را مینویسی و اجرا میکنی، با print چیزی نشان میدهی، با input از کاربر چیزی میپرسی، و سه خطای اولی را که هر تازهکاری میبیند (SyntaxError، NameError، IndentationError) میخوانی و درست میکنی.
مسئله: کارهای تکراری
Section titled “مسئله: کارهای تکراری”تا حالا در ترمینال یکییکی دستور زدهای. ولی فرض کن هر روز باید ۲۰۰ فایل لاگ را بخوانی، خطهای خطا را بشماری و یک گزارش بنویسی. با دست ساعتها طول میکشد. برنامه یعنی فهرستی از دستورها که یک بار مینویسی و کامپیوتر هر بار، بدون خستگی و اشتباه، اجرایش میکند.
تشبیه: دستور آشپزی
Section titled “تشبیه: دستور آشپزی”برنامه مثل دستور پخت است: قدمبهقدم، به زبانی که آشپز (کامپیوتر) بفهمد. «دو لیوان آب بریز؛ اگر جوش آمد برنج را اضافه کن؛ ده دقیقه صبر کن.» کامپیوتر آشپزی است که دقیقاً همان را انجام میدهد که نوشتهای، نه آنچه منظورت بوده. اگر بنویسی «نمک بریز» و نگویی چقدر، میپرسد (خطا میدهد). پایتون یکی از زبانهایی است که این دستورها را با آن مینویسیم؛ زبانی که خواندنش شبیه انگلیسی ساده است.
مثالهای عملی
Section titled “مثالهای عملی”مثال ۱: پایتون نصب است؟
Section titled “مثال ۱: پایتون نصب است؟”Ubuntu خودش برای کارهای داخلیاش پایتون دارد، پس تقریباً همیشه نصب است:
python3 --versionPython 3.12.33.12 نسخهی پایتونی است که Ubuntu 24.04 همراه دارد. هر نسخهی 3.10 به بالا برای این دوره کافی است. اسم دستور python3 است؛ روی Ubuntu دستور python (بدون ۳) بهصورت پیشفرض وجود ندارد:
Command 'python' not found, did you mean: command 'python3' from deb python3 command 'python' from deb python-is-python3پس همیشه python3 بنویس. (اگر روی ویندوز هستی، این دوره را داخل WSL که در دورهی لینوکس نصب کردی دنبال کن تا دستورها یکی باشند.)
مثال ۲: حالت تعاملی، >>>
Section titled “مثال ۲: حالت تعاملی، >>>”فقط python3 را بزن (بدون اسم فایل). پایتون یک ماشینحساب هوشمند باز میکند که هر خطی بنویسی فوراً اجرا میکند:
python32 + 3print("سلام")exit()ali@pc:~$ python3Python 3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> 2 + 35>>> print("سلام")سلام>>> exit()ali@pc:~$علامت >>> یعنی «پایتون منتظر دستور توست» (مثل $ در ترمینال). با exit() یا Ctrl+D خارج میشوی. حالت تعاملی برای امتحان کردن یک خط عالی است؛ ولی هر چه در آن بنویسی با بستنش از بین میرود. برنامهی واقعی را در فایل مینویسیم.
مثال ۳: اولین فایل، hello.py
Section titled “مثال ۳: اولین فایل، hello.py”یک پوشه برای همهی تمرینهای این دوره بساز و فایل را با nano باز کن:
mkdir -p ~/pycd ~/pynano hello.pyاین سه خط را بنویس، ذخیره کن (Ctrl+O، Enter) و خارج شو (Ctrl+X):
# اولین برنامهی منprint("سلام دنیا!")print("امروز پایتون یاد میگیرم.")حالا اجرایش کن:
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)143.333333333333333531024hahaha| علامت | کار | مثال |
|---|---|---|
+ - * |
جمع، تفریق، ضرب | 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:
name = input("اسمت چیست؟ ")print("سلام", name)print("اسمت", len(name), "حرف دارد.")python3 greet.pyاسمت چیست؟ علیسلام علیاسمت 3 حرف دارد.name = input(...)جواب کاربر را در یک متغیر به اسمnameنگه میدارد (درس بعد کامل).printمیتواند چند چیز را با ویرگول بگیرد و بینشان یک فاصله بگذارد.len(name)طول متن (تعداد حرفها) را میدهد.
مثال ۶: سه خطای اول
Section titled “مثال ۶: سه خطای اول”خطا گرفتن بخشی از برنامهنویسی است؛ مهم این است که پیامش را بخوانی. پایتون همیشه میگوید کدام فایل، کدام خط و چه نوع خطایی.
۱) پرانتز بسته نشده:
print("سلام" File "/home/ali/py/bad1.py", line 1 print("سلام" ^SyntaxError: '(' was never closedSyntaxError یعنی «دستورت را از نظر شکل نمیفهمم»: اینجا پرانتزی باز شده و هیچوقت بسته نشده. علامت ^ جای مشکل را نشان میدهد.
۲) اسم ناشناخته:
print(nmae)Traceback (most recent call last): File "/home/ali/py/bad2.py", line 1, in <module> print(nmae) ^^^^NameError: name 'nmae' is not definedNameError یعنی «چیزی به این اسم نمیشناسم». یا غلط تایپی است (nmae بهجای name)، یا یادت رفته متن را در کوتیشن بگذاری (print(سلام) هم همین خطا را میدهد). خط آخر پیام همیشه مهمترین است؛ بالای آن (Traceback) مسیر رسیدن به خطاست.
۳) فاصلهی اضافه در ابتدای خط:
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 نه.
اینکه پایتون «مفسری» است، یعنی برای اجرا لازم نیست برنامه را جدا کامپایل کنی (مثل زبان C)؛ مینویسی و فوراً اجرا میکنی. همین آن را برای یاد گرفتن، اسکریپتنویسی و کارهای DevOps محبوب کرده است.
جدولهای مرجع
Section titled “جدولهای مرجع”| دستور ترمینال | کار |
|---|---|
python3 --version |
نسخهی پایتون |
python3 |
حالت تعاملی (خروج: exit() یا Ctrl+D) |
python3 file.py |
اجرای یک فایل |
python3 -c "print(1+1)" |
اجرای یک خط بدون فایل |
| در پایتون | کار |
|---|---|
print(a, b) |
چاپ (با فاصله بینشان) |
input("سؤال ") |
پرسیدن از کاربر |
len(متن) |
طول متن |
# ... |
توضیح |
| خطا | معنی معمول |
|---|---|
SyntaxError |
شکل دستور غلط است: پرانتز، کوتیشن، دونقطه |
NameError |
اسم ناشناخته: غلط تایپی یا کوتیشن جاافتاده |
IndentationError |
فاصلهی ابتدای خط نابهجا |
اشتباهات رایج
Section titled “اشتباهات رایج”۱) نوشتن 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 syntaxpython3 hello.py دستور ترمینال است، نه پایتون. راهحل: اول با exit() از >>> خارج شو. نشانهی ساده: اگر پرامپت >>> است داخل پایتونی؛ اگر $ است در ترمینال.
۳) متن بدون کوتیشن
Section titled “۳) متن بدون کوتیشن”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 بنویس که سه خط دربارهی تو چاپ کند: اسم، شهر و یک چیزی که دوست داری. یک خط توضیح هم بالای فایل بگذار.
دیدن جواب
# معرفی منprint("اسم من علی است.")print("در تهران زندگی میکنم.")print("به کوهنوردی علاقه دارم.")python3 me.pyاسم من علی است.در تهران زندگی میکنم.به کوهنوردی علاقه دارم.تمرین اصلی: برنامهی minutes.py بنویس که با print حساب کند یک روز چند دقیقه و یک سال (۳۶۵ روز) چند ثانیه است، و نتیجه را با یک توضیح فارسی کنارش چاپ کند.
دیدن جواب
# محاسبهی زمانprint("دقیقههای یک روز:", 24 * 60)print("ثانیههای یک سال:", 365 * 24 * 60 * 60)python3 minutes.pyدقیقههای یک روز: 1440ثانیههای یک سال: 31536000برنامهی city.py بنویس که اسم کاربر و شهرش را با دو input بپرسد و یک جمله مثل «علی از تهران، خوش آمدی!» چاپ کند. بعد عمداً پرانتز آخر را پاک کن، اجرا کن، پیام خطا را بخوان و بگو پایتون کدام خط را نشان داد.
دیدن جواب
name = input("اسمت چیست؟ ")city = input("اهل کجایی؟ ")print(name, "از", city + "، خوش آمدی!")اسمت چیست؟ علیاهل کجایی؟ تهرانعلی از تهران، خوش آمدی!city + "، خوش آمدی!" دو متن را به هم میچسباند (بدون فاصله؛ درس بعد). با پاک کردن پرانتز آخر:
File "/home/ali/py/city.py", line 3 print(name, "از", city + "، خوش آمدی!" ^SyntaxError: '(' was never closedپایتون خط ۳ را نشان داد و ^ زیر پرانتز بازی که بسته نشده آمد. چون خطای شکل است، حتی دو input اول هم اجرا نشدند.
آزمونک
Section titled “آزمونک”روی Ubuntu برای اجرای فایل app.py چه میزنی؟
جواب درست: python3 app.py
روی Ubuntu دستور python بهصورت پیشفرض نیست.
علامت >>> یعنی…
جواب درست: پایتون در حالت تعاملی منتظر دستور است
با exit() یا Ctrl+D خارج میشوی.
خروجی print(10 // 3) چیست؟
جواب درست: 3
// تقسیم صحیح است؛ / همیشه اعشاری.
NameError: name 'x' is not defined معمولاً یعنی…
جواب درست: اسم x تعریف نشده یا غلط تایپی است
یا کوتیشن متن جا افتاده.
چرا SyntaxError قبل از اجرای حتی خط اول میآید؟
جواب درست: چون پایتون اول کل فایل را از نظر شکل بررسی میکند
خطاهای اجرا (مثل NameError) فقط وقتی اجرا به آن خط برسد پیدا میشوند.
جمعبندی
Section titled “جمعبندی”- برنامه فهرستی از دستورهاست که کامپیوتر دقیقاً همانطور که نوشتهای اجرا میکند؛ پایتون زبانی خوانا برای نوشتن آن.
- روی 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 | خروج از >>> |