Table of Contents
عملیات حسابی
در این فصل تمرکز ما روی کارهای روزمرهای است که تقریباً در هر برنامهای نیاز میشوند: انجام محاسبات، کار با متن و نوشتن توضیح (کامنت) داخل کد.
در پایتون عملگرهای حسابی اصلی اینها هستند:
+جمع-تفریق*ضرب/تقسیم معمولی (نتیجه همیشهfloat)//تقسیم صحیح (کفِ تقسیم – بخشِ صحیح)%باقیماندهٔ تقسیم (مودولو)**توان (به توان رساندن)
مثالها:
print(3 + 2) # 5
print(7 - 4) # 3
print(6 * 5) # 30
print(8 / 2) # 4.0
print(8 // 3) # 2
print(8 % 3) # 2
print(2 ** 3) # 8نکتهٔ مهم:
8 / 2مقدار4.0میدهد (از نوعfloat)8 // 2مقدار4میدهد (معمولاً از نوعint، اگر ورودیها عدد صحیح باشند)
تقدم عملگرها
ترتیب انجام عملیات در ریاضی را پایتون هم رعایت میکند:
- پرانتزها
() - توان
** - ضرب و تقسیم و
//و% - جمع و تفریق
مثال:
print(2 + 3 * 4) # 14 (اول 3*4 بعد +2)
print((2 + 3) * 4) # 20
print(2 ** 3 * 2) # 16 (اول 2**3 بعد *2)هر وقت در ترتیب شک داشتید، از پرانتز استفاده کنید تا هم خودتان راحتتر بخوانید، هم نتیجه دقیقاً همان چیزی شود که میخواهید.
انتساب ترکیبی (عملگرهای کوتاه شده)
گاهی میخواهید مقدار یک متغیر را نسبت به مقدار قبلیاش تغییر دهید. مثلاً:
x = 5
x = x + 1این الگو در پایتون شکل کوتاهتری دارد:
x += 1یعنیx = x + 1x -= 1یعنیx = x - 1x = 2یعنیx = x 2x /= 2یعنیx = x / 2- و…
مثال:
x = 10
x += 5 # الان x مساوی 15 است
x *= 2 # الان x مساوی 30 است
print(x)این شکل هم کوتاهتر است، هم در حلقهها (که بعداً میبینید) بسیار رایج است.
عدد صحیح و اعشاری در عملها
وقتی int و float را با هم ترکیب میکنید، پایتون نتیجه را معمولاً float برمیگرداند:
print(3 + 2.0) # 5.0
print(5 * 0.5) # 2.5
print(5 // 2.0) # 2.0
اگر نتیجهٔ float نمیخواهید، بعداً با تبدیل نوع (int()، float()) بیشتر کار میکنیم؛ فعلاً بدانید که این تبدیل خودکار اتفاق میافتد.
کار با اعداد
در این بخش چند نکتهٔ عملی برای کار روزمره با اعداد میبینیم.
تقسیم و باقیمانده
دو عملگر // و % بسیار پرکاربردند.
a // b→ حاصلقسمت صحیح (بدون اعشار)a % b→ باقیماندهٔ تقسیم
مثال:
print(17 // 5) # 3
print(17 % 5) # 2کاربردهای ساده:
- تشخیص زوج یا فرد بودن عدد:
number = 10
print(number % 2 == 0) # True یعنی زوج است- شمارندههای چرخشی (مثلاً روزهای هفته ۰ تا ۶، بعد دوباره از ۰):
day = 8
print(day % 7) # 1، یعنی روز ۱ام هفتهگرد کردن اعداد اعشاری
تابع round() عدد را گرد میکند.
print(round(3.2)) # 3
print(round(3.8)) # 4
print(round(3.14159, 2)) # 3.14آرگومان دوم (اختیاری) تعداد رقم اعشار است.
مقدار مطلق
تابع abs() مقدار مطلق عدد (فاصله از صفر) را برمیگرداند:
print(abs(-5)) # 5
print(abs(3)) # 3عملیات روی رشتهها
رشته (str) یعنی متن (مثل "سلام"). اینجا چند عمل پایه روی رشتهها را میبینیم.
الحاق (چسباندن) رشتهها
با عملگر + میتوان رشتهها را به هم چسباند:
first_name = "Ali"
last_name = "Rezaei"
full_name = first_name + " " + last_name
print(full_name) # Ali Rezaei
نکته: دو طرف + باید هر دو رشته باشند؛ str را مستقیم با int جمع نمیکنیم (بعداً در «ترکیب متن و متغیرها» راه درست را میبینید).
تکرار رشته با `*`
با * میتوانید یک رشته را چند بار پشت سر هم تکرار کنید:
print("ha" * 3) # hahahaاین کار در ساختن الگوهای ساده مفید است:
print("-" * 20)طول رشته
تابع len() طول رشته (تعداد کاراکترها) را میدهد:
text = "سلام"
print(len(text)) # 4اندیسگذاری (فقط آشنایی اولیه)
هر کاراکتر در رشته یک موقعیت (اندیس) دارد، از ۰ شروع میشود:
text = "Python"
print(text[0]) # P
print(text[1]) # y
اگر سعی کنید از اندیس خارج از محدوده استفاده کنید، خطا میگیرید. جزئیات کار با رشتهها در فصل «متن (str)» بیشتر میآید؛ اینجا فقط برای استفاده در مثالها با مفهوم اندیس آشنا میشوید.
ترکیب متن و متغیرها
خیلی وقتها میخواهید متنی نمایش دهید که داخلش مقدار متغیر هم هست. چند روش مهم در پایتون وجود دارد.
تبدیل مقدار به رشته با `str()`
اگر بخواهید عدد را به رشته بچسبانید، باید آن را به رشته تبدیل کنید:
age = 20
message = "سن من " + str(age) + " سال است."
print(message)اگر این کار را نکنید و مستقیم مثل زیر بنویسید، خطا میگیرید:
age = 20
# این کار خطا میدهد:
# message = "سن من " + age + " سال است."استفاده از f-string (روش پیشنهادی)
از پایتون 3.6 به بعد، راحتترین روش استفاده از f-string است:
- قبل از علامت نقلقول، حرف
fرا میگذاریم. - داخل
{}هر عبارت پایتونی میتوانیم بنویسیم.
name = "Ali"
age = 20
message = f"من {name} هستم و {age} سال دارم."
print(message)
پایتون خودش مقدارها را به رشته تبدیل میکند؛ نیازی نیست str() بنویسید.
میتوانید مستقیماً عبارت هم بنویسید:
a = 5
b = 3
print(f"{a} + {b} = {a + b}")روش `format()` (برای آشنایی)
روش قدیمیتر، استفاده از متد format روی رشته است:
name = "Sara"
age = 25
message = "من {0} هستم و {1} سال دارم.".format(name, age)
print(message)امروزه معمولاً f-string خواناتر و سادهتر است.
کامنتها در پایتون
کامنت قسمتی از کد است که برای انسانها نوشته میشود و پایتون آن را اجرا نمیکند. کامنتها کمک میکنند:
- توضیح دهید کد چه کاری انجام میدهد.
- کارهای بعدی یا نکتههای مهم را برای خودتان یادآوری کنید.
- بخشهایی از کد را موقتاً غیرفعال کنید.
کامنت تکخطی
برای نوشتن کامنت تکخطی از # استفاده میکنیم. هر چیزی بعد از # تا انتهای خط، کامنت است و اجرا نمیشود.
# این برنامه مجموع دو عدد را حساب میکند
a = 3 # عدد اول
b = 4 # عدد دوم
print(a + b) # نمایش نتیجهمیتوانید کامنت را در ابتدای خط یا بعد از کد بگذارید.
نکتهٔ مهم: از کامنت برای توضیح «چرایی» کارها استفاده کنید، نه فقط «چیستی».
بهجای:
x = x + 1 # x را یکی زیاد میکنیمبهتر است بنویسید:
x = x + 1 # شمارندهٔ تلاشها را زیاد میکنیمچندخطی نوشتن توضیح
در پایتون چیز جداگانهای به نام «کامنت چندخطی» نداریم، اما دو روش رایج وجود دارد:
- استفاده از چند
#پشت سر هم:
# این بخش کد
# وظیفه دارد که میانگین
# سه عدد را حساب کند- استفاده از رشتههای سهنقلقول (برای توضیحهای بزرگتر یا مستند کردن تابعها):
"""
این برنامه یک مثال ساده است
برای نشان دادن کامنتهای چندخطی
و توضیحات طولانی.
"""اگر این رشته به هیچ متغیری نسبت داده نشود، در عمل نادیده گرفته میشود، اما فنیترها این روش را بیشتر برای «مستندسازی توابع و ماژولها» استفاده میکنند که در فصل توابع مفصل میآید.
غیرفعال کردن موقت کد
اگر بخواهید موقتاً اجرای چند خط کد را متوقف کنید، میتوانید آنها را کامنت کنید:
# print("این خط فعلاً اجرا نشود")
# print("بعداً شاید لازم شود")
print("فقط این خط اجرا میشود")این کار هنگام اشکالزدایی و آزمایش بخشهای مختلف برنامه خیلی کمک میکند.
جمعبندی
در این فصل با این ابزارهای پایه آشنا شدید:
- عملگرهای حسابی (
+,-,,/,//,%,*) و تقدم آنها - نکات مهم کار با اعداد صحیح و اعشاری،
round()وabs() - عملیات اصلی روی رشتهها: چسباندن (
+)، تکرار (*)، طول (len()) - روشهای ترکیب متن با متغیرها:
str()، f-string،format() - نوشتن و استفادهٔ درست از کامنتها (
#و توضیحهای چندخطی)
در فصلهای بعدی از همین ابزارها در شرطها، حلقهها و ساختن برنامههای تعاملی استفاده خواهیم کرد.