فهرست عناوین

موضوع قبلی

1. چند نام برای یک شیئ

موضوع بعدی

3. درنگ

2. دفتر یادنگاشت ریبرگ

این برنامه را به ریبرگ بدهید تا اجرا کند:

print()

بعد از اجرای، آن پنجره‌ای با عنوان ریبرگ می‌نویسه ظاهر می‌شود: این پنجرهٔ یادنگاشت ریبرگ است. راحت باشید و هر جای صفحهٔ دنیای ریبرگ که خواستید جابه‌جایش کنید.

مهم

توجّه: مثال سمت راست تابع move را اجرا نمی‌کند. با این حال، اگر این دستور را اجرا کنیم:

print( move() )

تا move اجرا شود، کلیدواژهٔ پایتونی None چاپ خواهد شد. چرایی این اتّفاق را بعداً توضیح خواهم داد.

حالا این برنامه را اجرا کنید:

print(move)

موقعی که داشتم این آموزش‌ها را بازبینی می‌کردم، نتیجهٔ یادنگاشت ریبرگ این بود:

<function move>

(پیشتر، به جای move، چیزی که ظاهر می‌شد _move_ بود، به دلیلی که بعد از خواندن این صفحه احتمالاً بفهمید.). اگر بخواهیم یک متغیّر (نام) دیگر برای همان شیئ(تابع) تعریف کنیم چه می‌شود؟

step = move
print(step)
print(move)

نتیجه‌ می‌شود این:

<function move>
<function move>

این مثال به طور واضح نشان می‌دهد که = یک اسم به یک شیئ می‌دهد. این نام آن چیزی است که وقتی از پایتون بخواهیم آن را چاپ کند به آن می‌گوید <function move> (به معنی «تابع move») . از طرف دیگر، اگر یک تابع کاملاً جدید تعریف کنیم، مثل:

#  step = move
def step():
    move()

print (step)

نتیجه‌ این خواهد بود:

<function step>

که با شیئ <function move> فرق خواهد داشت. با این که اگر تابع ()step را فراخوان می‌کردیم، دقیقاً مانند ()move همان نتیجه را می‌داشت.

2.1. تابعی که می‌تواند نشانوند داشته باشد

در برنامه‌ها کلمهٔ argument (به معنی نشانوند) به متغیّری اشاره دارد، که نتیجهٔ تابع را مشخّص می‌کند. مثّلاً این را دیده‌ایم:

print (move)

متغیّر move نشانوند تابع ()print است. نشانوند یک تابع بین کمانک‌های تابع می‌آید؛ که نشان می‌دهد تابع فراخوانده شده است.

2.2. نوشتن متن

وقتی برنامه می‌نویسیم؛ نوشتن اسم تابع -مثل کاری که ما بالاتر با تابع ()print انجامش دادیم- چیزی است که خیلی به ندرت انجام می‌شود. کاری اغلب خیلی خیلی انجام می‌شود؛ درج متن در صفحهٔ اجرای برنامه است.

اگر بخواهیم با اصطلاحات برنامه‌نویسی بگوییم؛ یک نویسه هر گونه حرف، شماره، یا نمادی‌ است، که می‌تواند چاپ شود. یک رشته از نویسه‌ها یا به بیان ساده‌تر رشته‌ (متن) زنجیره‌ای به هم پیوسته از نویسه‌هاست که امکان چاپ روی صفحه‌نمایش یا برگهٔ کاغذ و ... را دارند. [مترجم: به خاطر همین ماهیّت دنباله‌وار این نوع داده فکر می‌کنم مترجم‌های اوّلیّهٔ برنامه‌نویسی بهتر می‌‌بود ریسه یک زنجیره ترجمه‌اش می‌کردند؛ تا رشته. ولی، خب چون از اوّل این طور ترجمه شده؛ و هر جای دیگر هم بروید همین است و من هم قرار نیست کلّ برنامه‌نویسی را با این ترجمهٔ خودم متحوّل کنم. من هم مثل بقیّه می‌نویسم تا فهم شما به مشکل نخورد. بگذریم...!]. مثلاً این مورد را امتحان کنید:

print("Hello world!")
print("سلام دنیا")
print('Hello again.')
print('سلام دوباره.')

توجّه داشته باشید، که علامت‌های نقل قولی که رشته را در برمی‌گیرند، باید یکسان باشند؛ یعنی، یا هر دویشان باید نقل‌قول‌های دوتایی (مضاعف) یعنی مثل " باشند و یا نقل‌قول‌های تکی(منفرد) مثل '. (برای استفاده از متنی که چندتایی علامت نقل‌قول دارد؛ یا می‌توانیم برایش نقل‌قول‌های ناهمسان با موارد داخل متن را به کار ببریم، و یا با نویسهٔ گریز \ آن را این طور بنویسیم

print("Let's go.")
print('Let\'s go.')

همچنین، می‌توانیم با رشتهٔ گریز n\ یک سطر جدید ایجاد کنیم:

print("Thank you. \nTry again")

البتّ، شاید در منابع دیگر دیده باشید، که از سه علامت نقل تکی یا دوتایی(' یا ") در ابتدا و انتهای برخی رشته‌متن‌های داخل برنامه‌ استفاده کرده‌اند. ویژگی خاصّ رشته‌متن‌های با نقل‌ قول‌های سه‌گانه این است که با استفاده از آن‌ها می‌توانید متن را در چند سطر قالب بندی کنید و یا از علامت‌هایی را که در دو روش بالا امکان استفاده نداشتید را به کار ببرید؛ آن هم بدون نیاز به استفاده از نویسه‌های گریز متن مثل n\. البتّه، اگر کدهای برنامه‌های دیگر را نگاه کرده باشید؛ این مورد برای نوشتن یادداشت‌های مستندات درون کدها هم استفاده می‌شود و مثل یادداشت‌ها نادیده گرفته‌می‌شود. با این همه، اگر دستورهای بالا را با سه علامت نقل قول هم بنویسید، جواب می‌دهد. )

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

print("Goodbye! " + "And thanks for all the fish.")

امتحانش کنید!

یادتان باشد اجرای نمونه کدهای بالا یا موارد مشابه را امتحان کنید.

2.3. ریبرگ ریاضی یاد دارد

این کار را امتحان کنید!

سعی کنید برنامهٔ زیر را اجرا کنید و خروجی در دفتر یادنگاشت ریبرگ را نگاه کنید.

print( 2 + 3 )  # جمع اعداد
print( 2 * 3 )  # ضرب اعداد
print( 3 - 2 )  #تفریق اعداد
print( 6 / 2 )  # تقسیم اعداد
print( 1 + 3 * 2 ) # اولویّت عملگرها: ضرب قبل از جمع انجام می‌شود

# به کاربردن کمانک برای تغییر ترتیب عادی اعمال ریاضی

print( (1 + 3) * 2 )

print( 2 ** 5 ) # توان  ۵ **۲ = ۲*۲*۲*۲*۲

توجه

توجّه داشته باشید که پایتون فاصله‌های اطراف عملگرهایی مثل + و * را نادیده می‌گیرد. با این همه، انجام این کار خواندن کد را برای انسان‌ها راحت‌تر می‌کند. (مترجم: برای این که از این شکل قالب‌بندی اطّلاعات بیشتری به دست بیاورید عبارت PEP 8 را در اینترنت جستجو کنید. در آینده بخشی را به همین کتاب برای همین کار اضافه خواهم کرد).

در مثال‌های بالا نتیجه همیشه یک عدد صحیح بود (یک عدد بدون اعشار)، به جز موقع تقسیم که یک عدد با ممیّز شناور (مترجم: فعلاً شما بخوانید عدد اعشاری) می‌داد: 2 / 6 می‌شود 3.0.

در عوض اگر بخواهیم نتیجهٔ تقیسم دو عدد، یک عدد صحیح باشد، از دو تا علامت تقسیم پشت سر هم استفاده می‌کنیم:

print( 6 // 2 )  # تقسیم صحیح

2.4. استفاده از متغیّرها

قبلاً ایدهٔ استفاده از اسم‌های دیگر (متغیّرها) را به عنوان هم‌معنی دیدیم. بیایید دوباره این روش را برای کاوش بیشتر در اعمال ریاضی استفاده کنیم:

length = 4 #طول
width = 6 #عرض
area = length * width  # مساحت مستطیل
print(area)            # خروجی ۲۴ خواهد بود

امتحانش کنید!

حالا برای مسائل دیگر مثال‌های خودتان را بسازید و اجرایشان کنید.

مهم

نویسهٔ رشته متنی "2" مثل عدد ۲ نیست. برای فهمیدنش این کد را امتحان کنید:

print("2" + 2)

2.5. چندین نشانوند

برخی تابع‌ها مثل print() می‌توانند نشانوندهای زیادی بگیرند. نشانوندهای مختلف یک تابع با کاما , از هم جدا می‌شوند:

length = 4
width = 6
area = length * width
print("The area of a rectangle of length", length,
      "and width", width, "is", area)  # مساحت مستطیل با طول length و عرض width می‌شود area