پایتون Python

آموزش پایتون با بردهای رزبری پای بخش پنجم: ساختارهای کنترلی در پایتون

getting-started-with-python-on-raspberry-pi-boards-part-five-control-structures-digispark
نوشته شده توسط پریسا پوربلورچیان

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

برنامه نویسی پایتون با بردهای رزبری پای - دیجی اسپارک

 


ساختارهای شرطی


یکی از ساختارهای کنترلی در پایتون ساختار شرطی است. زمانیکه در برنامه نویسی و اجرای یک پروژه نیاز به تصمیم گیری داشته باشیم باید از ساختارهای شرطی در برنامه استفاده کنیم. در این صورت اگر بخواهیم یک یا چند شرط بررسی شوند و در صورت صحیح بودن و یا نبودن دستوراتی اجرا شوند کاربرد دستورات و ساختارهای شرطی مشخص می‌شود. روش فراخوانی دستور شرطی به صورت زیر است. در صورت برقرار بودن شرط، یک یا چند دستور اجرا می‌شود.

if conditions:
block of statement(s)

 

در دستور if بعد از نوشتن شرط condition علامت : قرار میگیرد و در خط بعد با اعمال تورفتگی در برنامه نوشته می‌شود. دستور if شرط را بررسی می‌کند و بر اساس نتیجه ی شرط تصمیم میگیرد که کدام بخش اجرا شود.

if condition:
statement1
statement2

 

در این حالت مثلا عبارت condition مورد ارزیابی قرار میگیرد که میتواند ارزش درستی و نادرستی داشته باشد. دقت داشته باشید حتما از کولن بعد از عبارت استفاده کنید.

کولن :

 

در مرحله بعدی دستورات نوشته شده است که حتما باید از تورفتگی برای نوشتن ان ها نسبت به دستور if استفاده شود. اگر عبارت ارزش درستی داشته باشد یعنی True باشد، دستورات اجرا می‌شود. در غیر اینصورت هیچکدام اجرا نمی‌شود.

ساختارهای کنترلی در پایتون با بردهای رزبری پای - دیجی اسپارک

 

ساختار شرطی if else دوگانه

اگر بخواهیم دستورات برنامه در صورت برقرار بودن اجرا شوند و هم در صورت عدم برقراری مجموعه ی دیگری از دستورات اجرا شوند، از ساختار شرطی if else استفاده می‌کنیم. بدین صورت که اگر شرط برقرار باشد مجموعه از دستورات و اگر شرط برقرار نباشد، مجموعه دستورات دیگری اجرا می‌شود.

if test expression:
    statement for if
else:
    statement for else

 

# تست با عدد بزرگتر از صفر

number = 10
if number >=0:
    print("positive number")
    
else:
    print("negative number")

 

#تست با عدد کوچکتر از صفر

number = -10
if number >=0:
    print("positive number")
    
else:
    print("negative number")

 

ساختارهای کنترلی در پایتون ساختار شرطی - دیجی اسپارک

 

ساختار شرطی if elif else چندگانه

زمانیکه بخواهیم چندین شرط را روی یک عبارت بررسی کنید. باید از دستورات تو در تو استفاده کنید.

if test expression:
    statement for if
elif test expression:
    statement for elif
else: 
    statement for else

 

number = 0
if number > 0:
    print("Positive number")
    
elif number ==0:
    print("Zero number")
    
else:
    print("negative number")

 

ساختار شرطی if و else در برنامه نویسی پایتون - دیجی اسپارک

 


ساختار تکرار


ساختار تکرار یکی دیگر از ساختارهای کنترلی در پایتون است. در بسیاری از مواقع نیاز به تکرار پذیری دستورات در برنامه داریم! اگر کدهای پایتون را قبلا دیده باشید در بسیاری از پروژه های راه اندازی سنسورها با تکرار بسیار سر و کار داریم. حالا تصور کنید اگر تعداد دفعات تکرار زیاد باشد عملا نوشتن کدنویسی ساده نخواهد بود! برای سرعت بخشیدن به کدنویسی ساختار تکرار وجود آمده است تا یک یا چندین دستور را بر اساس تعداد دفعات تکرار مورد نیاز در برنامه تکرار میکند.

 

ساختار تکرار while

ساختار تکرار while به این صورت عمل می‌کند که تا زمانیکه به شرط پایان نرسیده باشد، اجرای دستورات بلاک Block خود را تکرار میکند. در ساختار تکرار while اگر شرط نوشته شده برقرار نباشد، دستورات نوشته شده در ادامه آن بینهایت بار اجرا می‌شود و برای خارج شدن از این حلقه باید از کلیدمیانبر ctrl+c استفاده کنید.

while test_expression:
    statement for while

 

i = 1
while i < 10:
  print(i)
  i += 1

 

number = 10
sum = 0
a = 1
while a<= number:
    sum = sum + a
    a = a +1
    print("result:", sum)
    

 

>>> %Run test2.py
result: 1
result: 3
result: 6
result: 10
result: 15
result: 21
result: 28
result: 36
result: 45
result: 55

 

ساختار تکرار در برنامه نویسی پایتون - دیجی اسپارک

 

 ساختار تکرار for

هنگامی که مجموعه مشخصی از دیتاها را داشته باشید، جهت پیمایش و کار با عناصر داده ها از ساختار تکرار for استفاده می‌کنیم. پردازش لیست ها، تاپل ها و رشته ها از for استفاده می‌شود.

for val in sequence:
    loop statement

 

منظور از val شمارنده حلقه است که به عناصر مجموعه اشاره دارد و sequence مجموعه ای از عناصر مشخص است که شمارنده حلقه در مرحله اول اجرا به اولین عنصر و در مرحله دوم به دومین عنصر آن و همین روند ادامه خواهد داشت.

numbers = [1,2,3,4,5]
sum = 0
for val in numbers:
    sum = sum+val
    print("result", sum)
    

 

ساختار تکرار for در ساختارهای کنترلی در پایتون رزبری پای - دیجی اسپارک

 

message = 'theladypi'
for i in message:
    print(i)

 

آشنایی با ساختارهای کنترلی در پایتون رزبری پای - دیجی اسپارک

 

نکته: برای کنترل حلقه ها در برنامه از سه دستور break, continue, pass استفاده می‌کنیم. 

روش دوم فراخوانی ساختار for به صورت زیر است:

for expression in interable:
statement1
else:
statement2

 

digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("No items left.")

 

کنترل حلقه ها در برنامه از سه دستور break, continue, pass - دیجی اسپارک

 


استفاده از تابع ()range با for


تابع range دنباله ای از اعداد را تولید می‌کند که برای کنترل حلقه ی تکرار for استفاده می‌شود.

range(a)

منظور از تابع a اعدادی از ۰ تا a-1 را تولید می‌کند

 

range(a,b)

منظور از این تابع تولید اعداد بین a تا b-1 است.

 

ورودی rang میتواند به صورت عدد صحیح باشد. در صورت تولید لیستی از اعداد با Range ابتدا با استفاده از list به نوع لیست list تبدل شده و در نهایت از range استفاده می‌کنیم.

number = eval(input("add number"))
for a in range(1,number):
    print(a)

 

استفاده از تابع ()range با for در برنامه نویسی پایتون - دیجی اسپارک

 

استفاده همزمان از حلقه while for 

نوشتن یک حلقه داخل حلقه دیگر به صورت زیر تعریف می‌شود.

while expression:
while expression:
statement(S)
statement(S)


for val in sequence:
for val in sequence:
statement(S)
statement(s)

 

names = ['a', 'b', 'c' ,'d']
for name in names:
    counter = 0
    while counter <4:
        print(name, end='')
        counter =  counter + 1
        print()

 

استفاده همزمان از حلقه while for در برنامه نویسی پایتون رزبری پای - دیجی اسپارک

 

حلقه for تو در تو

برای تکرار دستورات میتوانید دو یا چند for را داخل یکدیگر بنوبسید. تورفتگی ها مشخص می‌کند کدام دستور مرتبط با کدام حلقه است. دستورات statement 1 در حلقه for j قرار دارد و اجرا می‌شود.

:for i in range (n)
:for j in range(m)
statement 1
statement2

 


جمع بندی لیدی پای


یکی از مهم ترین بخش های یادگیری پایتون در آموزش پنجم نهفته شده است. برای شرط نویسی سنسورها و فرمان و اعمال ورودی نیاز به استفاده از ساختارهای تصمیم و تکرار داریم که قبلا در برنامه نویسی آردوینو هم کار کرده بودیم. این بخش نیاز به تمرین و تکرار مدام دارد و پیشنهاد می‎‌شود مثال های متعددی را اجرا کنید. ساختار تصمیم if else است و ساختار تکرار شامل while for است که در متن آموزش همراه با مثال بررسی شده است.

 


وسایل مورد نیاز


رزبری پای Raspberry Pi 400

رزبری پای Raspberry Pi 4

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • سلام و خسته نباشید
    برای شرط نویسی سنسورها از زبان برنامه نویسی پایتون نمیشه استفتاده کرد یعنی حتما باید میکروپایتون باشه
    شما چطور اجرا کردید؟

    • با سلام
      اگر ماژول برای پایه های GPIO توسعه یافته باشد، میتوانید برای کدنویسی استفاده کنید. اما در حالت کلی همان میکروپایتون فقط پیشنهاد داده می‌شود.