در این سری مقالات آموزش پایتون، از پایه و ابتدا مفاهیم پایتون رو یاد میگیریم و نکاتی که برای یادداشت برداری لازم است را در این سری مقالات ذکر میکنم که هم بتونم مرور کنم و هم اینکه شاید برای برخی افراد که وارد این مسیر میشوند مفید واقع بشه.
در کل هدف این سری مقالات یادگیری پیشرفته پایتون از پایه است و سعی میکنم هر مورد که یاد میگیرم را در اینجا به اشتراک بذارم.
در بخش قبل در رابطه با لیست و دیکشنری و تاپل و … صحبت کردیم که برای شروع یادگیری پایتون مهم است که شناخت کافی از آن داشته باشیم، میتوانید قسمت قبل (شروع زبان برنامه نویسی پایتون – ۱) را قبل از ادامه مطالعه کنید.
در این بخش در رابطه با conditional statement و loops صحبت کوتاهی میکنیم و چند مثال ذکر میکنیم که تفاوت سینتکسی آن با سایر زبانها را متوجه شویم.
a = 33
b = 200
if b > a:
print("b is greater than a")
در مثال بالا یک شرط ساده if را باهم خواندیم و نکته مهمی که در پایتون نباید فراموش کنیم indentation هست یعنی اگر به درستی رعایت نکنیم با خطا مواجه میشویم.
a = 33
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
در نهایت اگر بخواهیم else هم در انتها داشته باشیم:
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
همچنین به صورت زیر میتوانیم حالت کوتاه شده آن را بنویسیم:
if a > b: print("a is greater than b")
a = 2
b = 330
print("A") if a > b else print("B")
a = 330
b = 330
print("A") if a > b else print("=") if a == b else print("B")
اگر بخواهیم چند شرط را باهم در حالتهای and, or بررسی کنیم به صورت زیر مینویسیم:
a = 200
b = 33
c = 500
if a > b and c > a:
print("Both conditions are True")
a = 200
b = 33
c = 500
if a > b or a > c:
print("At least one of the conditions is True")
نکته: داخل شرط if نمیتواند خالی باشد و مقداری نداشته باشد ولی اگر به هر دلیلی در برنامه نخواستیم مقداری بنویسیم میتوانیم مقدار pass را قرار دهیم که با خطا مواجه نشویم.
a = 33
b = 200
if b > a:
pass
اگر بخواهیم در مورد Loopها صحبت کنیم، باید ابتدا بدانیم که سه نوع loop داریم:
۱. Count control loop : اگر با زبان php یا c++ کار کرده باشید با حلقه های for که مقدار شروع و تعداد تکرار را مشخص میکردیم آشنا هستید.
برای مثال این حلقه for(i=1; i<=10; i++) به تعداد ۱۰ بار تکرار میشود.
۲. Conditional controlled loop: در این حالت ما بر اساس یک شرط حلقه را تکرار میکنیم و تا وقتی شرط درست است حلقه تکرار میشود.
برای مثال while condition {body of loop} در این حالت تا وقتی مقدار condition مقدار true است تکرار میشود و باید مواظب باشیم که شرط را طوری ننویسیم که وارد حلقه های بی پایان شویم که سیستم کرش میکند.
۳. Collection controlled loop: این نوع حلقه یکی از پرکاربردترین حلقه های تکرار است که بر اساس یک لیست یا آرایه حلقه را انجام میدهد یعنی به تعداد آیتم ها حلقه تکرار میشود.
برای مثال for a in collection: body of the loop در اینجا هر آیتم از collection را داخل حلقه خواهیم داشت و به تعداد آیتم ها تکرار میشود.
مثال زیر از نوع conditional loop است که باید دقت کنیم که اگر خط آخر را نداشته باشیم حلقه بی نهایت تشکیل میشود.
i = 1
while i < 6:
print(i)
i += 1
مثل سایر زبانها گاهی وقتها لازم است که طبق شرایط خاصی حلقه را متوقف کنیم حتی اگر شرط درست باشید در این حالت از break استفاده میکنیم.
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
و یا اینکه یک بخشی را طبق یک شرایطی skip کنیم و اجازه ی اجرا ندهیم که در این حالت از continue استفاده میکنیم.
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
همچنین وقتی شرط درست نباشد با استفاده از else میتوانیم مشخص کنیم در آن حالت چه اتفاقی رخ دهد
i = 1
while i < 6:
print(i)
i += 1
else:
print("i is no longer less than 6")
در مثال زیر حلقه از نوع collection controlled loop را مشاهده میکنیم که به تعداد آیتمهای موجود تکرار میشود.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
// loop in string
for x in "banana":
print(x)
در نهایت در مثال زیر حلقه از نوع Count controlled loop را مشاهده میکنیم که حلقه از ۰ تا ۵ تکرار میشود.
for x in range(6):
print(x)
// count loop structure
for x in range(start, stop, increment):
print(x)
در مثالهای زیر، ابتدا اعداد ۲، ۳، ۴، ۵ چاپ میشوند و در مثال بعد از عدد ۲ با increment 3 اعداد دیگر چاپ میشوند یعنی ۲، ۵، ۸، ۱۱، … ۲۹
for x in range(2, 6):
print(x)
for x in range(2, 30, 3):
print(x)
در این نوع هم میتوانیم از else استفاده کنیم و وقتی شرط درست نبود اتفاق دیگری رخ دهد.
for x in range(6):
print(x)
else:
print("Finally finished!")
همانطور که قبلا اشاره کردیم داخل حلقه نمیتواند خالی باشد و اگر به هر دلیلی لازم بود مقداری ننویسیم باید مقدار pass را بنویسیم که با خطا مواجه نشویم.