عددها

اعداد در برنامه‌نویسی کاربردهای فراوانی دارند، از جمله برای نمایش امتیاز در بازی‌ها، بیان داده‌ها هنگام بصری‌سازی، ذخیره‌سازی اطّلاعات در نرم‌افزارهای وب و … . بسته به روشی که عدد مورد استفاده قرار می‌گیرد پایتون با آن برخوردی متفاوت دارد. ابتدا به نحوه‌ی مدیریت اعداد صحیح در پایتون می‌پردازیم زیرا ساده‌ترین نوع برای کار کردن هستند.

اعداد صحیح

در پایتون می‌توانید اعداد صحیح را جمع (+)، تفریق (-)، ضرب (*) یا تقسیم (/) کنید.

1
2
3
4
5
6
7
8
>>> 2 + 3
5
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5

پایتون در نشست ترمینال به سادگی نتیجه‌ی عملیّات را نشان می‌دهد. برای به توان رساندن از دو علامت ضرب (**) استفاده می‌کنیم:

1
2
3
4
5
6
>>> 3 ** 2
9
>>> 3 ** 3
27
>>> 10 ** 6
1000000

پایتون ترتیب عملیّات را هم رعایت می‌کند پس می‌توانید چند عملیّات را در یک عبارت بگنجانید. همچنین می‌توانید از پرانتز برای تعیین تقدّم عملیّات استفاده کنید تا پایتون عبارت را با ترتیبی که شما می‌خواهید ارزیابی کند.

1
2
3
4
>>> 2 + 3*4
14
>>> (2 + 3) * 4
20

در پایتون فاصله‌گذاری تاثیری بر نحوه‌ی ارزیابی عبارت ندارد و تنها هنگام خواندن کد کمک می‌کند تا عبارت‌هایی را که اولویّت بیشتری دارد سریع‌تر پیدا کنید.

اعداد اعشاری

پایتون هر عدد ممیزدار را به عنوان ممیز شناور (float) می‌شناسد. این اصطلاح در بسیاری از زبان‌های برنامه‌نویسی به کار می‌رود زیرا به این حقیقت که ممیز می‌تواند در هر جای عدد ظاهر شود (=شناور باشد) دلالت دارد. هر زبان برنامه‌نویسی باید برای مدیریت صحیح اعداد اعشاری به دقّت طرّاحی شود تا صرف نظر از محل قرارگیری ممیّز رفتار آن عدد درست باشد.

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

1
2
3
4
5
6
7
8
>>> 0.1 + 0.1
0.2
>>> 0.2 + 0.2
0.4
>>> 2 * 0.1
0.2
>>> 2 * 0.2
0.4

امّا متوجّه باشید که گاهی در پاسخ خود ارقامی با تعداد نامشخّص در بخش اعشاری خواهید دید:

1
2
3
4
5

>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004

این اتفاّق در تمام زبان‌های برنامه‌نویسی می‌افتد و نگرانی چندانی در پی ندارد. پایتون برای یافتن راهی جهت نمایش هر چه دقیق‌تر نتیجه تلاش می‌کند امّا این راه ممکن است به سادگی یافت نشود زیرا چگونگی نمایش داخلی اعداد در رایانه‌ها بر آن تاثیر می‌گذارد. فعلاً کافی‌ست که اعشار اضافی را در نظر نگیرید. هنگامی که در پروژه‌های بخش دوم کتاب به مدیریّت این بخش‌های اعشاری اضافی نیاز داشتیم، این کار را خواهید آموخت.

اعداد صحیح و اعشاری

هنگام تقسیمِ دو عدد صحیح و بخش‌پذیر که حاصل آن نیز عددی صحیح است، به عددی اعشاری برخواهید خورد:

1
2
>>> 4/2
2.0

همچنین اگر در هر عملیّاتی یک عدد صحیح و اعشاری را ترکیب کنید، حاصل اعشاری خواهد بود:

1
2
3
4
5
6
>>> 1 + 2.0
3.0
>>> 2 * 3.0
6.0
>>> 3.0 ** 2
9.0

پیش‌فرض پایتون در هر عملیّات عددی عدد اعشاری است، حتّی اگر خروجی عملیّات عددی صحیح باشد.

زیرخط در اعداد

هنگام نوشتن اعداد بزرگ می‌توانید به کمک زیرخط رقم‌های آن را دسته‌بندی کنید تا این اعداد خواناتر شوند:

1
>>> universe_age = 14_000_000_000

هنگام چاپ اعدادی که با زیرخط تعریف شده‌اند پایتون تنها رقم‌ها را نمایش می‌دهد:

1
2
>>> print(universe_age)
14000000000

پایتون هنگام ذخیره کردن این مقادیر زیرخط را نادیده می‌گیرد. حتّی اگر ارقام را در دسته‌های سه‌تایی قرار ندهید، باز هم مقدار تغییر نمی‌کند. برای پایتون 1000 با 1_000 یا 10_00 تفاوتی ندارد. این ویژگی در اعداد صحیح و اعشاری قابل استفاده است امّا تنها در پایتون ۳.۶ و بعد از آن در دسترس است.

انتساب چندگانه

می‌توانید بیشتر از یک متغیّر را تنها در یک خط مقداردهی کنید. این کار برنامه‌ها را کوتاه‌تر و خواندن آن‌ها را ساده‌تر می‌کند. هنگام مقداردهی اولیّه‌ی مجموعه‌ای از اعداد از این روش به مراتب استفاده خواهید کرد.

برای مثال اینجا سه متغیّر x، y و z را با صفر مقدارهای اولیّه می‌کنیم:

1
>>> x, y, z = 0, 0, 0

باید نام متغیّرها و همچنین مقدار آن‌ها را با کاما از یکدیگر جدا کنید. پایتون هر مقدار را به متغیّر متناظرش منسوب خواهد کرد. تا زمانی که تعداد مقادیر با تعداد متغیّرها برابر باشد، پایتون آن‌ها را به درستی با هم جور می‌کند.

ثابت‌ها

ثابت به متغیّری گفته می‌شود که مقدار آن در طول عمر یک برنامه تغییر نمی‌کند. پایتون نوع ثابت داخلی و پیش‌ساخته ندارد امّا برنامه‌نویسان برای متغیّرهایی که ثابت در نظر گرفته می‌شوند و مقدار آن‌ها هرگز تغییر نمی‌کند، از نام‌گذاری با حروف بزرگ استفاده می‌کنند:

1
MAX_CONNECTIONS = 5000

اگر می‌خواهید در برنامه‌ی خود با متغیّری مثل یک ثابت برخورد کنید نام آن را با تماماً با حروف بزرگ بنویسید.

خودآزمایی

عدد هشت

چهار عملیّات جمع، تفریق، ضرب و تقسیم بنویسید که حاصل همه‌ی آن‌ها عدد ۸ شود. مطمئن شوید که عملیّات را داخل print() قرار می‌دهید تا نتیجه‌ی آن را ببینید. باید چهار خط مانند زیر بنویسید:

1
print(5+3)

خروجی چهار خط را به سادگی نمایش می‌دهد که در هر کدام عدد ۸ نمایش داده شده است.

عدد موردعلاقه

متغیّری برای نمایش عدد مورد علاقه‌ی خود تعریف کنید. سپس با استفاده از این متغیّر پیامی تولید و چاپ کنید که عدد مورد علاقه‌ی شما را فاش می‌کند.