آشنایی با پایتون
قسمتهایی از این بخش بر اساس دوره آموزشی Geek Girls Carrots طراحی شده است (https://github.com/ggcarrots/django-carrots).
حالا بیایید کمی کد بنویسیم!
خط فرمان پایتون
برای کسانی که در خانه مطالعه میکنند این بخش در ویدئو Python Basics: Integers, Strings, Lists, Variables and Errors توضیح داده شده است.
برای آنکه با پایتون کار کنیم باید یک کنسول خط فرمان روی کامپیوتر خود باز کنید. احتمالا بلد هستید که چطور این کار را بکنید، در بخش آشنایی با خط فرمان آن را یاد گرفتهاید.
زمانی که آماده بودید، دستورالعملهای زیر را دنبال کنید.
ما میخواهیم یک کنسول پایتون باز کنیم، پس در کنسول خط فرمان ویندوز python
و در ترمینال لینوکس/ مک python3
را تایپ کنید و enter
بزنید.
خط فرمان
$ python3
Python {{ book.py_release }} (...)
Type "help", "copyright", "credits" or "license" for more information.
>>>
اولین دستور پایتونی شما!
پس از اجرای دستور Python، خط فرمان به >>>
تغییر میکند. این تغییر برای ما به معنای آن است که در حال حاضر فقط میتوانیم از دستورات زبان پایتون استفاده کنیم. شما نیازی به تایپ >>>
ندارید - خط فرمان پایتون این کار را برایتان میکند.
اگر هر زمان قصد خروج از خط فرمان پابتون را داشتید exit()
را تایپ کنید یا از Ctrl + Z
در ویندوز و Ctrl + D
در مک/لینوکس استفاده کنید. پس از خروج >>>
را دیگر نمیبینید.
ما الان نمیخواهیم از خط فرمان پایتون خارج شویم. ما میخواهیم چیزهای بیشتری در مورد آن یاد بگیریم. بیایید با کمی ریاضیات شروع کنیم، مانند 2 + 3
3 و زدن enter
.
خط فرمان
>>> 2 + 3
5
خوبه! دیدید که جواب چگونه ظاهر شد؟ پایتون ریاضیات را میفهمد! میتوانید دستور دیگری مثل این را امتحان کنید:
4 * 5
5 - 1
40 / 2
برای اجرای محاسبات نمایی، مانند ۲ به توان ۳، تایپ میکنیم:
خط فرمان
>>> 2 ** 3
8
کمی با دستورات مختلف محاسباتی تفریح کنید و دوباره آموزش را ادامه دهید. :)
همانطور که میبینید، پایتون محاسبهگر بسیار خوبی است. آیا به این فکر میکنید که چه کارهای دیگری میشود انجام داد…
رشتههای متنی
چطور است با اسم شما شروع کنیم؟ نام خود را بین علامت نقل قول به صورت زیر بنویسید:
خط فرمان
>>> "Ola"
'Ola'
شما همین الان اولین رشته متنی خود را ساختید! رشته متنی دنبالهای از کاراکترها است که میتوان آنها را توسط کامپیوتر پردازش کرد. رشته متنی همواره باید با یک علامت شروع، و با همان پایان یابد. این علامت ممکن است نقل قول تکی یا آپاستروف ('
) یا نقل قول دوتایی ("
) باشد (در پایتون بین این دو فرقی نیست) این علامت ها به پایتون میگویند که حاوی یک رشته متنی هستند.
رشته ها میتوانند به همدیگر الحاق شوند. دستور زیر را امتحان کنید:
خط فرمان
>>> "Hi there " + "Ola"
'Hi there Ola'
همچنین میتوانید یک رشته را در یک عدد ضرب کنید، رشته به تعداد آن عدد تکرار میشود:
خط فرمان
>>> "Ola" * 3
'OlaOlaOla'
اگر نیاز داشتید تا یک علامت آپاستروف داخل رشته بیاورید، دو راه دارید.
استفاده از علامت نقل قول دوتایی:
خط فرمان
>>> "Runnin' down the hill"
"Runnin' down the hill"
یا استفاده از یک بک اسلش (\
) پیش از علامت آپاستروف:
خط فرمان
>>> 'Runnin\' down the hill'
"Runnin' down the hill"
خوب است، نه؟ برای دیدن نام خود با حروف بزرگ، تایپ کنید:
خط فرمان
>>> "Ola".upper()
'OLA'
شما همین الان از متد upper
روی رشته متنی استفاده کردید! یک متد (مانند upper()
) دنبالهای از دستورات پایتونی است. زمانی که متد را صدا بزنید، آن دستورات روی یک شی ورودی ("Ola"
) اعمال میشود.
آیا میخواهید تعداد حروف نام خود را بدانید؟ یک تابع برای این کار هم هست!
خط فرمان
>>> len("Ola")
3
به این فکر میکنید که چرا گاهی تابع را با یک .
در انتهای یک رشته صدا میکنیم (مانند "Ola".upper()
) و گاهی ابتدا یک تابع را صدا میزنیم و رشته را جلوی نام تابع داخل پرانتز میگذاریم؟ در بعضی موارد، توابع به اشیا تعلق دارند، مانند upper()
، که فقط میتواند روی رشتههای متنی اعمال شود. در این موارد، تابع را یک method مینامیم. در موارد دیگر، توابع به چیزی تعلق ندارند و میتوان آنها را روی انواع مختلفی از اشیا استفاده کرد، درست مانند len()
. به همین دلیل است که "Ola"
را به عنوان یک پارامتر ورودی به تابع len
میدهیم.
چکیده
بسیار خب، صحبت راجع به رشتهها کافی است. تا اینجا شما موارد زیر را یاد گرفتهاید:
- خط فرمان - تایپ دستورات (کد) و دیدن نتایج در خط فرمان پایتون
- اعداد و رشتههای متنی - در پایتون اعداد برای محاسبات ریاضی و رشتهها به عنوان اشیا متنی استفاده میشوند
- عملگرها مانند
+
و*
، برای ساخت یک مقدار جدید، چند مقدار را با هم ترکیب میکنند - توابع- مانند
upper()
وlen()
، که بر روی اشیا، اعمالی را انجام میدهند.
موارد گفته شده، مبانی تمام زبانهای برنامهنویسی است که ممکن است بعدا بیاموزید. برای کارهای سختتر آماده هستید؟ حتماً آمادهاید!
خطاها
بیایید چیز جدیدی را امتحان کنیم. میتوانیم طول یک عدد را همانطور که طول نام خودمان را پیدا میکنیم، به دست آوریم؟ تایپ کنیدlen(304023)
و enter
را بزنید:
خط فرمان
>>> len(304023)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
اولین خطا را دریافت کردیم! به وسیله آیکن به شما اعلام میکنیم کدی که قرار است اجرا کنید، مطابق انتظار شما اجرا نخواهد شد. اشتباه کردن (حتی اشتباهات عمدی) بخش مهمی از یادگیری است!
خطای دریافتی میگوید اشیا نوع "int" (اعداد طبیعی)، صفت "طول" ندارند. خب پس حالا چه کاری میتوانیم بکنیم؟ میتوانیم عددمان را به عنوان یک رشته متنی بنویسیم؟ رشتههای متنی دارای طول هستند، درست است؟
خط فرمان
>>> len(str(304023))
6
کار کرد! ما از تابع str
داخل تابع len
استفاده کردیم. str()
هرچیزی را به رشته متنی تبدیل می کند.
- تابع
str
ورودیاش را به strings تبدیل میکند - تابع
int
ورودیاش را به integers تبدیل میکند
توجه: ما میتوانیم اعداد را به متن تبدیل کنیم، اما همیشه نمیتوان متن را به عدد تبدیل کرد - مثلا خروجی
int('hello')
چه چیزی میتواند باشد؟
متغیرها
یکی از مفاهیم مهم در برنامهنویسی، مفهوم متغیرها است. متغیر نامی است برای یک مقدار که بعدا بتوانید برای ارجاع به آن مقدار، از نام متغیر استفاده کنید. برنامهنویسها از این متغیرها برای ذخیره داده، و بالا بردن خوانایی کد استفاده میکنند تا مجبور نباشند همهچیز را در ذهن نگهدارند.
بیایید یک متغیر جدید به نام name
بسازیم:
خط فرمان
>>> name = "sara"
تایپ میکنیم name مساوی sara.
همانطور که توجه کردید، برنامه شما مانند دفعات قبل خروجی نداد. پس از کجا بدانیم متغیر واقعا وجود دارد؟ نام متغیر name
را وارد کنید و enter
بزنید:
خط فرمان
>>> name
'sara'
بلههههه! اولین متغیر شما! :) همواره میتوانید چیزی را که متغیر به آن ارجاع میدهد، تغییر دهید:
خط فرمان
>>> name = "Mahsa"
>>> name
'Mahsa'
میتوانید از آن در توابع نیز استفاده کنید:
خط فرمان
>>> len(name)
5
عالی است، نه؟ متغیرها میتوانند هرچیزی باشند- مثل اعداد! این یکی را امتحان کنید:
خط فرمان
>>> a = 4
>>> b = 6
>>> a * b
24
ولی اگر نام اشتباه را استفاده کنیم چه میشود؟ میتوانید حدس بزنید چه اتفاقی میافتد؟ بیایید امتحان کنیم!
خط-فرمان
>>> city = "Tehran"
>>> ctiy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ctiy' is not defined
یک خطا! همانطور که میبینید، پایتون دارای انواع مختلفی از خطاها است و این یکی خطا NameError نام دارد. اگر سعی کنید از متغیری که هنوز تعریف نشده استفاده کنید، پایتون این خطا را به شما میدهد. اگر بعداً به این خطا برخورد کردید، کد خود را برای اشتباه تایپی در نام متغیرها چک کنید.
کمی این موارد را امتحان کنید تا ببینید چه کارهایی میتوانید با آن انجام دهید!
تابع print
این را امتحان کنید:
خط فرمان
>>> name = 'Mahsa'
>>> name
'Mahsa'
>>> print(name)
Mahsa
زمانی که فقط name
را تایپ میکنید، مفسر پایتون با ارائهای از رشته متنی داخل متغیر 'name' پاسخ میدهد، که این پاسخ دنباله کاراکترهای M-a-h-s-a درون علامت نقل قول است. وقتی که print(name)
را اجرا میکنید، پایتون محتوای متغیر را در صفحه نمایش نشان میدهد، البته بدون علامتهای نقل قول که مرتبتر است.
بعداً خواهیم دید که print()
زمانی که میخواهیم از داخل توابع چیزی را نمایش دهیم، یا زمانی که میخواهیم چندین خط از متن را نمایش دهیم، نیز مفید است.
لیستها
پایتون علاوه بر رشته ها و اعداد، انواع مختلفی از اشیا را دارد. و الان نوعی از اشیا را معرفی میکنیم که list نام دارند. لیستها دقیقا همان چیزی هستند که فکرش را میکنید: یک نوع شی که خودش لیستی از اشیای دیگر است. :)
حالا یک لیست بسازید:
خط فرمان
>>> []
[]
بله، این لیست خالی است. آنقدر مفید نیست، درست است؟ بیایید یک لیست از اعداد بخت آزمایی بسازیم. ما نمیخواهیم یک عدد تکراری را انتخاب کنیم، پس اعداد بخت آزمایی را داخل یک متغیر میگذاریم:
خط فرمان
>>> lottery = [3, 42, 12, 19, 30, 59]
بسیار خب، ما یک لیست داریم! چه کاری میتوانیم با آن انجام دهیم؟ بیایید ببینیم چه تعداد عدد بخت آزمایی درون لیست داریم. هیچ ایدهای درمورد این که از چه تابعی باید استفاده کنیم، دارید؟ از قبل این را میدانید!
خط فرمان
>>> len(lottery)
6
بله! تابع len()
میتواند تعداد اشیای درون لیست را بدهد. بسیار مفید، درست است؟ حالا بیایید لیستمان را مرتب کنیم:
خط فرمان
>>> lottery.sort()
این یکی هیچ خروجی نداد، بلکه فقط ترتیب قرارگرفتن اعداد در لیست را تغییر داد. بیایید دوباره لیست را چاپ کنیم و ببینیم چه اتفاقی افتاده:
خط فرمان
>>> print(lottery)
[3, 12, 19, 30, 42, 59]
همانطور که میبینید، اعداد درون لیست از کمترین مقدار به بیشترین مقدار مرتب شدهاند. تبریک!
شاید بخواهیم ترتیب اعداد را برعکس کنیم. بیایید انجامش دهیم!
خط فرمان
>>> lottery.reverse()
>>> print(lottery)
[59, 42, 30, 19, 12, 3]
اگر میخواهید چیزی به لیست خود اضافه کنید، میتوانید این دستور را تایپ کنید:
خط فرمان
>>> lottery.append(199)
>>> print(lottery)
[59, 42, 30, 19, 12, 3, 199]
اگر میخواهید فقط عدد اول را نمایش دهید، میتوانید این کار با استفاده از indexes انجام دهید. ایندکس شمارهای است که نشان دهنده محل قرار گرفتن یک آیتم در لیست است. برنامهنویسها ترجیح میدهند شمردن را از 0 شروع کنند. پس شماره اولین شی در لیست 0 است، بعدی 1 است و الی آخر. دستور زیر را امتحان کنید:
خط فرمان
>>> print(lottery[0])
59
>>> print(lottery[1])
42
همانطور که میبینید، میتوانید به اشیاء مختلف موجود در لیست به کمک نام لیست و ایندکس آن شیء که درون یک براکت آمده باشد، دسترسی پیدا کنید.
برای حذف چیزی از داخل لیست، باید همانطور که در بالا یاد گرفتیم، از ایندکس و متد pop()
استفاده کنید. بیایید یک مثال را امتحان کنیم و چیزی را که قبلا یاد گرفتیم، بهبود دهیم؛ ما اولین عدد لیست را حذف خواهیم کرد.
خط فرمان
>>> print(lottery)
[59, 42, 30, 19, 12, 3, 199]
>>> print(lottery[0])
59
>>> lottery.pop(0)
59
>>> print(lottery)
[42, 30, 19, 12, 3, 199]
مانند یک افسون عمل کرد!
برای تفریح بیشتر، باقی ایندکس ها را نیز امتحان کنید:6 ،7، 1000، -1، -6، یا -1000. ببینید میتوانید نتیجه را پیش از اجرای دستور، پیش بینی کنید؟ نتایج برای شما معنایی دارند؟
می توانید لیستی از متدهای مربوط به لیستها را در این بخش از مستندات پایتون پیدا کنید: https://docs.python.org/3/tutorial/datastructures.html
دیکشنریها
برای خوانندگان داخل خانه: این قسمت در ویدئوهای بخش Python Basics: Dictionaries پوشش داده شده است.
دیکشنری شبیه به لیست است، ولی برای دسترسی به مقادیر باید از کلیدها به جای ایندکسهای عددی استفاده کنید. یک کلید میتواند رشته متنی و یا عدد باشد. دستور زبان تعریف یک دیکشنری خالی این است:
خط فرمان
>>> {}
{}
خروجی نشان میدهد که یک دیکشنری خالی ساختهاید. هورررااا!
حالا سعی کنید که دستور زیر را بنویسید (سعی کنید اطلاعات خود را نیز جایگزین کنید):
خط فرمان
>>> participant = {'name': 'Mahsa', 'country': 'Iran', 'favorite_numbers': [7, 42, 92]}
با این دستور، یک متغیر به نام participant
شامل سه جفت کلید-مقدار ساختهاید:
- کلید
name
به مقدارMahsa
(یک شیstring
) اشاره میکند - کلید
country
به'Iran'
(یکstring
دیگر) اشاره میکند - و کلید
favorite_numbers
به[7, 42, 92]
اشاره میکند (یکلیست
با سه عدد داخل آن).
میتوانید محتوای هر کلید را طبق دستور زیر به تنهایی چک کنید:
خط فرمان
>>> print(participant['name'])
Mahsa
ببینید، دیکشنری مشابه یک لیست است. ولی نیازی نیست که ایندکس ها را بخاطر بیاورید - فقط کافی است نام کلید را بدانید.
اگر مقدار کلیدی را که وجود ندارد از پایتون درخواست کنیم چه اتفاقی میافتد؟ میتوانید حدس بزنید؟ بیایید امتحان کنیم و ببینیم!
خط فرمان
>>> participant['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
ببینید، یک خطای دیگر! این یکی KeyError است. پایتون به شما کمک میکند و میگوید که کلید 'age'
در دیکشنری وجود ندارد.
چه زمانی از لیست و چه زمانی از دیکشنری باید استفاده کرد؟ نکته خوبی است. قبل از دیدن خط بعد به پاسخ فکر کنید.
- یک دنباله ترتیبی از آیتم ها نیاز دارید؟ لیست را انتخاب کنید.
- آیا نیاز است کلیدها و مقادیر را به همدیگر ارتباط دهید، که بعدا بتوانید به صورت کارآمد مقادیر را بوسیله کلیدها جستجو کنید؟ از یک دیکشنری استفاده کنید.
دیکشنریها، مانند لیستها تغییر پذیر هستند، به معنای آن که میتوان آنها را پس از ساخت، تغییر داد. میتوانید پس از ساختن دیکشنری، جفت کلید-مقدار جدید به آن اضافه کنید، مانند زیر:
خط فرمان
>>> participant['favorite_language'] = 'Python'
استفاده از متد len()
روی دیکشنری، مانند لیستها، تعداد جفتهای کلید-مقدار را برمیگرداند. دستور زیر را تایپ کنید:
خط فرمان
>>> len(participant)
4
امیدواریم تا اینجا همه چیز برایتان روشن باشد. :) آماده تفریح بیشتر با دیکشنریها هستید؟ ادامه آموزش را بخوانید تا با چیزهای شگفت انگیز روبرو شوید.
میتوانید از متد pop()
برای حذف یک آیتم از دیکشنری استفاده کنید. برای مثال، اگر میخواهید مدخل مربوط به کلید 'favorite_numbers'
را حذف کنید، دستور زیر را تایپ کنید:
خط فرمان
>>> participant.pop('favorite_numbers')
[7, 42, 92]
>>> participant
{'country': 'Iran', 'favorite_language': 'Python', 'name': 'Mahsa'}
همانطور که در خروجی مشاهده میکنید، کلید مقدار متناظر با 'favorite_numbers' حذف شده است.
به همین شکل، میتوانید مقدار مربوط به یک کلید موجود در دیکشنری را تغییر دهید. این را تایپ کنید:
خط فرمان
>>> participant['country'] = 'Germany'
>>> participant
{'country': 'Germany', 'favorite_language': 'Python', 'name': 'Mahsa'}
همانطور که میتوانید ببینید مقدار کلید 'country'
از 'Iran'
به 'Germany'
تغییر پیدا کردهاست. :) هیجان انگیز نیست؟ هورا! همین الان یک مورد شگفت انگیز دیگر یاد گرفتید.
چکیده
بسیار عالی! الان چیزهای زیادی راجع به برنامهنویسی میدانید. در همین قسمت آخر شما موارد زیر را آموختید:
- خطاها - اگر پایتون دستوری را متوجه نشود و خطایی را نشان دهد، حالا شما میدانید چطور آن خطا را بخوانید و درک کنید
- متغیرها - نامهایی برای اشیا هستند که شما را قادر میسازد راحت تر کد بزنید و کد شما را خواناتر میکند
- لیستها - لیستی از اشیا که در یک ترتیب خاص ذخیره شدهاند
- دیکشنریها - اشیایی که به عنوان جفتهای کلید-مقدار ذخیره شدهاند
برای بخش بعدی هیجان زدهاید؟ :)
مقایسه اشیا
برای خوانندگان داخل خانه: این قسمت در ویدئو های بخش Python Basics: Comparisons پوشش داده شده است.
بخش بزرگی از برنامهنویسی شامل مقایسه اشیا است. مقایسه چه چیزهایی از همه راحتتر است؟ اعداد! بیایید نحوه کارکرد آن را ببینیم:
خط فرمان
>>> 5 > 2
True
>>> 3 < 1
False
>>> 5 > 2 * 2
True
>>> 1 == 1
True
>>> 5 != 2
True
>>> len([1, 2, 3]) > len([4, 5])
True
ما به پایتون تعدادی عدد برای مقایسه کردن دادهایم. همانطور که میبینید، پایتون نه تنها میتواند اعداد را مقایسه کند بلکه میتواند عبارتهای ریاضی مانند 2 * 2
و متدهایی همچون len([4, 5])
که نتیجه 2
را میدهد نیز با هم مقایسه کند. جالب است، نه؟
آیا به این فکر کردهاید که چرا دو علامت مساوی ==
کنار هم برای چک کردن تساوی اعداد گذاشتهایم؟ ما از یک علامت مساوی =
برای انتساب مقادیر به متغیرها استفاده میکنیم. اگر میخواهید مساوی بودن دو شی با همدیگر را چک کنید، همیشه و همیشه باید از دو علامت مساوی ==
استفاده کنید. همچنین میتوانیم مساوی نبودن اشیا را تعیین کنیم. برای این منظور، از علامت =!
، همانطور که در مثال بالا نشان داده شده است، استفاده میکنیم.
دو تمرین دیگر با پایتون انجام بدهید:
خط فرمان
>>> 6 >= 12 / 2
True
>>> 3 <= 2
False
ما >
و <
را دیدیم، ولی >=
و <=
چه معنایی دارد؟ آنها را به این صورت بخوانید:
- x
>
y یعنی: x بزرگتر از y است - x
<
y یعنی: x کوچکتر از y است - x
<=
y یعنی: x کوچکتر یا مساوی y است - x
>=
y یعنی: x بزرگتر یا مساوی y است
بسیارعالی! میخواهید بیشتر با آن کار کنید؟ این را امتحان کنید:
خط فرمان
>>> 6 > 2 and 2 < 3
True
>>> 3 > 2 and 2 < 1
False
>>> 3 > 2 or 2 < 1
True
میتوانید هر تعداد عدد که میخواهید برای مقایسه به پایتون بدهید، و او به شما جواب بدهد! بسیار زیرکانه است، نه؟
- and - اگر شما از عملوند
and
استفاده کنید، هر دو مقایسه باید True باشند تا کل عبارت True ارزیابی شود - or - اگر شما از عملوند
or
استفاده میکنید، Trueبودن یکی از مقایسه ها کافی است تا کل عبارت True ارزیابی شود
آیا عبارت " مقایسه سیب با پرتقال" را شنیدهاید؟ بیایید نسخه پایتونی آن را امتحان کنیم:
خط فرمان
>>> 1 > 'django'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
همانطور که در عبارت بالا میبینید، پایتون قادر نیست یک رشته (str
) و یک عدد (int
) را با هم مقایسه کند. درعوض، یک TypeError نشان میدهد و به ما میگوید که دو نوع نمیتوانند با یکدیگر مقایسه شوند.
Boolean
در حقیقت شما با نوع جدیدی از اشیا در پایتون آشنا شدید. به نام Boolean بولیَن.
فقط دو نوع شی بولین وجود دارد:
- True - درست
- False - نادرست
برای اینکه پایتون این نوع را بشناسد، باید همیشه آن را به صورت 'True' بنویسید (حرف اول بزرگ، و باقی حروف کوچک). true, TRUE, و tRUE را نخواهد شناخت - فقط Trueدرست است. ( برای False هم همینطور.)
بولین ها می توانند به صورت متغیر باشند، اینجا را ببینید:
خط فرمان
>>> a = True
>>> a
True
میتوانید به این صورت نیز انجامش دهید:
خط فرمان
>>> a = 2 > 5
>>> a
False
با اجرای دستورات زیر، با بولین ها تفریح و تمرین کنید:
True and True
False and True
True or 1 == 1
1 =! 2
تبریک! بولینها یکی از جالب ترین ویژگیهای برنامهنویسی هستند، و شما همین الان یاد گرفتید چطور از آنها استفاده کنید!
ذخیره کنید!
برای خوانندگان داخل خانه: این قسمت در ویدئو های بخش Python Basics: Saving files and "If" statement پوشش داده شده است.
تا اینجا ما تمام کدهای پایتون خود را در مفسر خط فرمان نوشتهایم، که ما را محدود به ورود یک خط از کد در یک زمان میکرد. برنامههای نرمال در فایل ذخیره میشوند و به وسیله مفسر یا کامپایلر زبان برنامهنویسی اجرا میشوند. تا اینجا ما برنامههایمان به صورت - هربار، یک خط - در مفسر پایتون اجرا کردیم. برای تمرینهای بعدی به بیش از یک خط کد نیاز خواهیم داشت، پس ما نیاز داریم تا سریعاً:
- از مفسر پایتون خارج شویم
- ویرایشگر متنی دلخواه خود را نصب کنیم
- چندخط کد در فایل جدید پایتون ذخیره کنیم
- آن را اجرا کنیم!
برای خروج از مفسر پایتونی که در حال استفاده از آن هستیم، تابع exit()
را تایپ کنید
خط فرمان
>>> exit()
این عمل شما را به خط فرمان بازمیگرداند.
پیش از این، ما یک ویرایشگر متنی از بخش ویرایشگر متن انتخاب کردیم. حالا باید ویرایشگر را باز کنیم و چند خط کد در یک فایل جدید بنویسیم (یا اگر از یک کروم بوک استفاده می کنید، یک فایل جدید روی cloud IDE بسازید و فایل را باز کنید):
editor
print('Hello, Django girls!')
به وضوح، حالا شما یک توسعه دهنده پایتون کاربلد هستید، پس کمی از کدهایی که امروز یاد گرفتید را بنویسید.
حالا باید فایل را ذخیره کنیم و یک نام توصیفی به آن بدهیم. بیایید فایل را python_intro.py نامگذاری کنیم و آن را روی صفحه دسکتاپ ذخیره کنیم. میتوانیم به فایل هر نامی که میخواهیم بدهیم، ولی پایان یافتن فایل با .py مهم است. پسوند .py به سیستم عامل میگوید که این یک فایل اجرایی پایتون است و پایتون می تواند آن را اجرا کند.
توجه شما باید به یکی از جالبترین ویژگیهای ویرایشگر کد دقت کنید: رنگها! در کنسول پایتون، همه چیز به یک رنگ بود، حالا شما میتوانید ببینید که تابع
def
در یک تابع که در ادامه خواهیم دید). این یکی از دلایلی است که از ویرایشگر کد استفاده میکنیم. :)
وقتی فایل را ذخیره کردیم وقت آن است که آن را اجرا کنیم! ار مهارتهایی که در بخش خط فرمان گفتیم استفاده کنید، از ترمینال برای تغییر دایرکتوری به دسکتاپ استفاده کنید.
اگر گیر کردید تقاضای راهنمایی کنید. مربیها برای همین کار در کنار شما هستند!
حالا از پایتون استفاده کنید تا کدهای موجود در فایل را اجرا کنید:
خط فرمان
$ python3 python_intro.py
Hello, Django girls!
نکته: در ویندوز 'pyhton3' یک دستور محسوب نمیشود. به جای آن از 'python' برای اجرای فایل استفاده کنید:
خط فرمان
> python python_intro.py
بسیار خب! شما اولین برنامه پایتون خود را که در یک فایل ذخیره شده بود اجرا کردید. فوق العاده نیستید؟
حالا شما میتوانید به سراغ یکی از ابزارهای ضروری برنامه نویسی بروید:
If … elif … else
بسیاری از کدها تنها زمانی باید اجرا شوند که شروط داده شده درست باشند. به همین دلیل پایتون چیزی به نام دستور شرطی - دستور if دارد.
کد خود را در فایل python_intro.py با این جایگزین کنید:
python_intro.py
if 3 > 2:
اگر ما این را ذخیره و اجرا کنیم، خطایی مانند زیر را مشاهده میکنیم:
خط-فرمان
$ python3 python_intro.py
File "python_intro.py", line 2
^
SyntaxError: unexpected EOF while parsing
پایتون انتظار دارد که ما مشخص کنیم اگر شرط 3 > 2
درست باشد چه دستوری باید اجرا شود (یا به صورت صحیحتر شرط True
باشد). بیایید کاری کنیم که در صورت درست بودن شرط، پایتون در خروجی بنویسد: “It works!”. کد را در فایل python_intro.py به این تغییر دهید:
python_intro.py
if 3 > 2:
print('It works!')
به تورفتگی خط بعدی کد به اندازه 4 اسپیس دقت کردید؟ به این تورفتگی ها نیاز داریم تا پایتون بداند در صورت درست بودن شرط کدام دستورات را اجرا کند. می توانید از یک اسپیس استفاده کنید، ولی تقریبا همه برنامهنویسان پایتون برای تمیزی و خوانایی کد از 4 اسپیس استفاده می کنند. همچنین میتوانید ویرایشگر کد خود را طوری تنظیم کنید تا یک tab به عنوان 4 اسپیس محسوب شود. زمانی که انتخاب خود را تعیین کردید، آن را تغییر ندهید! اگر تورفتگی را با 4 اسپیس انجام میدهید، تمام تورفتگی های بعدی را با 4 اسپیس انجام دهید، درغیر این صورت به مشکل برمیخورید.
فایل را ذخیره کنید و بار دیگر اجرا کنید:
خط فرمان
$ python3 python_intro.py
It works!
توجه: یادتان باشد که در ویندوز 'python3' به عنوان یک دستور شناخته نمیشود. از الان به بعد 'python3' را با 'python' برای اجرای فایل ها جایگزین کنید.
چه میشود اگر یک شرط True نباشد؟
در مثال قبلی، کد تنها زمانی اجرا میشد که شرطها درست بودند. ولی پایتون دستورات elif
و else
هم دارد:
python_intro.py
if 5 > 2:
print('5 is indeed greater than 2')
else:
print('5 is not greater than 2')
وقتی آن را اجرا کنید، خروجی زیر را نمایش میدهد:
خط فرمان
$ python3 python_intro.py
5 is indeed greater than 2
اگر 2 عدد بزرگتری از 5 بود، دستور دوم اجرا میشد. بیایید نحوه کار elif
را ببینیم:
python_intro.py
name = 'Sonja'
if name == 'Ola':
print('Hey Ola!')
elif name == 'Sonja':
print('Hey Sonja!')
else:
print('Hey anonymous!')
و اجرا کنید:
خط فرمان
$ python3 python_intro.py
Hey Sonja!
دیدید چه اتفاقی افتاد؟ elif
شما را قادر میسازد تا شرط های بیشتری اضافه کنید تا اگر شروط قبلی درست نبودند، شروط جدید ارزیابی شوند.
میتوانید هر تعداد elif
که خواستید پس از if
اولیه اضافه کنید، به عنوان مثال:
python_intro.py
volume = 57
if volume < 20:
print("It's kinda quiet.")
elif 20 <= volume < 40:
print("It's nice for background music")
elif 40 <= volume < 60:
print("Perfect, I can hear all the details")
elif 60 <= volume < 80:
print("Nice for parties")
elif 80 <= volume < 100:
print("A bit loud!")
else:
print("My ears are hurting! :(")
پایتون تمام شرط ها را به ترتیب ارزیابی میکند و چاپ میکند:
خط فرمان
$ python3 python_intro.py
Perfect, I can hear all the details
کامنتها
کامنتها خطوطی هستند که با #
شروع میشوند. میتوانید بعد از #
هر توضیحاتی راجع به کد بنویسید و پایتون آن را نادیده میگیرد. کامنتها میتوانند کد شما را برای دیگران خواناتر کنند.
بیایید ببینیم چطور دیده میشود:
python_intro.py
# Change the volume if it's too loud or too quiet
if volume < 20 or volume > 80:
volume = 50
print("That's better!")
نیازی نیست برای هر خط کد کامنت بنویسید، ولی برای توضیح اینکه چرا کد شما کاری را انجام میدهد یا برای داشتن یک خلاصه، زمانی که کد کار پیچیدهای را انجام میدهد، مفید اند.
چکیده
در تمرین های اخیر شما موارد زیر را یاد گرفتید:
- مقایسه اشیا - در پایتون میتوانید اشیا را به وسیله
>
و>=
و==
و<=
و<
و عملگرهایand
وor
مقایسه کنید - بولینها - نوعی از اشیا که میتواند فقط دو مقدار معتبر بگیرد:
True
یاFalse
- ذخیره فایلها - ذخیره کردن کدها در فایل تا بتوانید برنامههای بزرگتری را اجرا کنید.
- if … elif … else - دستوراتی که شما را قادر میسازد کدها را زمانی اجرا کنید که شروط مشخصی درست باشند.
- کامنتها - خطوطی که پایتون آنها را به عنوان کد اجرا نمیکند، و به شما اجازه میدهد تا کد خود را مستند سازی کنید
زمان آخرین بخش از این فصل رسیده است!
تابع خودتان را بنویسید!
برای خوانندگان داخل خانه: این قسمت در ویدئو های بخش Python Basics: Functions پوشش داده شده است.
توابعی مانند len()
را که میتوانید در پایتون اجرا کنید، به خاطر دارید؟ بسیار خوب - شما الان یاد میگیرید که چطور تابع خود را بنویسید!
یک تابع دنبالهای از دستورات است که پایتون باید اجرا کند. همه توابع در پایتون با کلمه کلیدی def
شروع می شوند، نام میگیرند و میتوانند پارامترهای ورودی داشته باشند. بیایید امتحانش کنیم. کد داخل فایل python_intro.py را با این جایگزین کنید:
python_intro.py
def hi():
print('Hi there!')
print('How are you?')
hi()
خب، اولین تابع ما آماده است!
شاید فکر میکنید که چرا نام تابع را در انتهای فایل نوشتهایم. وقتی که ما عبارت def hi():
و خطوط تو رفته زیر آن را مینویسیم، دستورالعملهایی را که باید توسط تابع hi()
اجرا شوند مشخص میکنیم. پایتون این دستورالعملها را میخواند و به یاد میآورد اما آن را اجرا نمیکند. برای آنکه به پایتون بگوییم که این تابع را اجرا کند، باید تابع را فراخوانی کنیم یا آن را با عبارت hi()
صدا بزنیم. پایتون فایل را میخواند و آن را از بالا به پایین اجرا میکند، بنابراین ما باید قبل از صدا زدن آن، عملکرد تابع را در فایل تعریف کرده باشیم.
بیایید این را اجرا کنیم و ببینیم چه اتفاقی میافتد:
خط فرمان
$ python3 python_intro.py
Hi there!
How are you?
توجه: اگر درست کار نکرد، نترسید! خروجی به شما کمک می کند دلیل آن را بفهمید:
- اگر یک خطای
NameError
دریافت کردید، احتمالا چیزی را اشتباه تایپ کردهاید، پس چک کنید که از نام یکسانی موقع ساختن تابع باdef hi():
و صدا کردن آن باhi()
استفاده کردهباشید. - اگر یک خطای
IndentationError
دریافت کردید، چک کنید که هر دو دستورprint
تورفتگی یکسانی دارند: پایتون میخواهد که تمام کدهای داخل تابع به درستی قرار بگیرند و هم راستا باشند. - اگر اصلا چیزی چاپ نشده، چک کنید که آخرین
hi()
تورفته نباشد - اگر تورفتگی داشتهباشد، بخشی از کد تابع میشود و هرگز اجرا نمیشود.
بیایید اولین تابع خود را با پارامتر ورودی بسازیم. ما مثال قبلی را تغییر میدهیم - تابعی که به فرد اجرا کننده آن سلام میکند - با نام خود فرد:
python_intro.py
def hi(name):
همانطور که میبینید، ما الان به تابع یک پارامتر به نام name
دادیم:
python_intro.py
def hi(name):
if name == 'Ola':
print('Hi Ola!')
elif name == 'Sonja':
print('Hi Sonja!')
else:
print('Hi anonymous!')
hi()
به خاطر داشته باشید: تابع print
با 4 اسپیس داخل دستور if
تورفتگی دارد. بخاطر آنکه تابع زمانی اجرا میشود که شرط درست باشد. بیایید نحوه کار آن را ببینیم:
خط-فرمان
$ python3 python_intro.py
Traceback (most recent call last):
File "python_intro.py", line 10, in <module>
hi()
TypeError: hi() missing 1 required positional argument: 'name'
آخ، خطا. خوشبختانه، پایتون یک پیام خطای مفید به ما میدهد. به ما میگوید که تابع hi()
(همانی که تعریف کردیم) یک پارامتر ورودی دارد (به نام name
) و ما فراموش کردیم زمان صدا کردن تابع آن را وارد کنیم. بیایید آن را در انتهای فایل درست کنیم:
python_intro.py
hi("Ola")
و دوباره اجرا کنیم:
خط فرمان
$ python3 python_intro.py
Hi Ola!
و اگر نام را تغییر دهیم چه میشود؟
python_intro.py
hi("Sonja")
و اجرا کنیم:
خط فرمان
$ python3 python_intro.py
Hi Sonja!
فکر میکنید اگر نام دیگری را بنویسید چه اتفاقی میافتد؟(بغیر از Ola یا Sonja). امتحان کنید و ببینید که درست فکر می کردید یا نه. باید این را نمایش دهد:
خط فرمان
Hi anonymous!
عالی است.نه؟ با این روش، نیاز نیست برای هر تغییر نامی که تابع به آن سلام میکند، کار تکراری انجام دهید. ما دقیقا توابع را برای همین نیاز داریم - شما نمیخواهید تا هر دفعه کد خود را تکرار کنید!
بیایید کار هوشمندانهتری انجام دهیم - بیشتر از 2 اسم داریم، و نوشتن یک شرط برای هر کدام سخت است. درست است؟ محتوای فایل خود را با فایل زیر جایگذاری کنید:
python_intro.py
def hi(name):
print('Hi ' + name + '!')
hi("Rachel")
حالا بیایید تا کد را صدا بزنیم:
خط فرمان
$ python3 python_intro.py
Hi Rachel!
تبریک! شما همین الان نحوه نوشتن توابع را یاد گرفتید! :)
حلقههای تکرار
برای خوانندگان داخل خانه: این قسمت در ویدئو های بخش Python Basics: For Loop پوشش داده شده است.
این آخرین بخش است. سریع تمام شد درست است؟ :)
برنامهنویسها دوست ندارند کار تکراری انجام دهند. برنامهنویسی برای اتوماتیک کردن کارها است، پس ما نمیخواهیم به طور غیر اتوماتیک به هر فرد سلام کنیم، درست است؟ این همان جایی است که حلقههای تکرار - Loop - به کار میآیند.
هنوز لیستها را به خاطر دارید؟ بیایید یک لیست از دختران بسازیم:
python_intro.py
girls = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'You']
ما میخواهیم به همه آنها با ذکر نامشان سلام کنیم. برای این کار تابع hi
را داریم، بیایید در یک حلقه از آن استفاده کنیم:
python_intro.py
for name in girls:
عبارت for
کمی شبیه به عبارت if
رفتار میکند؛ کد زیر هر دو باید به اندازه 4 اسپیس تو رفتگی داشته باشد.
اینجا کد کاملی را که باید در فایل باشد، داریم:
python_intro.py
def hi(name):
print('Hi ' + name + '!')
girls = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'You']
for name in girls:
hi(name)
print('Next girl')
و وقتی آن را اجرا کنیم:
خط فرمان
$ python3 python_intro.py
Hi Rachel!
Next girl
Hi Monica!
Next girl
Hi Phoebe!
Next girl
Hi Ola!
Next girl
Hi You!
Next girl
همانطور که میبینید، هر چیزی که درون یک عبارت for
با تورفتگی قرار دهید، برای هر المان لیست girls
تکرار میشود.
همچنین میتوانید از for
با استفاده تابع range
روی اعداد نیز استفاده کنید:
python_intro.py
for i in range(1, 6):
print(i)
که چاپ می کند:
خط فرمان
1
2
3
4
5
range
تابعی است که لیستی از اعداد متوالی را میسازد (ابتدا و انتهای بازه توسط شما به عنوان پارامتر به تابع داده می شود).
توجه کنید که کران بالای بازه -دومین پارامتر- در لیست ساختهشده توسط پایتون نمیآید (به این معناست که range(1, 6)
از 1 تا 5 میشمارد، اما شامل 6 نمیشود). به دلیل این که "range" نیمهباز است، و منظور این است که شامل عدد ابتدای بازه میشود ولی عدد انتهایی را شامل نمیشود.
چکیده
همین بود. شما فوقالعاده هستید! این بخش دارای ریزه کاری هایی بود و شما باید به خودتان افتخار کنید. ما هم قطعاً به شما افتخار میکنیم که تا اینجا پیش آمده اید!
برای دیدن آموزش رسمی و کامل پایتون آدرس https://docs.python.org/3/tutorial/ را ببینید. این آموزش به شما دید کاملتر و درستتری نسبت به این زبان میدهد. موفق باشید! :)
شاید بخواهید قبل از رفتن به مرحله بعد، کارهای دیگری بکنید، کمی کش قوس بیایید، قدم بزنید و به چشم های خود استراحتی بدهید. :)