پایتون برای Raspberry Pi
آشنایی و کار با رزبری پای - بخش پایانی
پایتون یک زبان برنامه‌نویسی فوق‌العاده است که هم برای مبتدیان و هم برای متخصصان قابل استفاده است. این زبان بسیار معروف و دارای کتاب‌خانه‌های بسیاری است که به برنامه‌نویسان کمک می‌کند برنامه‌های خود را با حداقل میزان کدنویسی ایجاد کنند. می‌توانید هر برنامه‌ای را در پایتون ایجاد و از پلتفرم کاری پایتون برای ایجاد بازی‌های دوبعدی استفاده کنید. برای ایجاد برنامه‌های ویندوزی، می‌توانید از کتابخانه‌های GTK استفاده کنید. در ادامه نحوه ساخت برنامه‌ها در پایتون 2x را توضیح می‌دهیم. این نسخه از پایتون تقریباً روی تمام توزیع‌های لینوکس نصب شده است.

این مطلب یکی از مقالات ویژه‌نامه «رزبری پای» ماهنامه شبکه است. برای دانلود کل این ویژه‌نامه به اینجا مراجعه کنید. 

Hello World
کار را با مثال ساده Hello World آغاز می‌کنیم. ابتدا پایانه را باز کنید. با دستور mkdir Python یک دایرکتوری جدید ایجاد کنید. از این پس، تمام برنامه‌هایی که می‌نویسید در این دایرکتوری قرار می‌گیرند. برای این‌که وارد این دایرکتوری شوید، باید از دستور cd Python استفاده کنید. فرض کنید نام پروژه شما hello-world.py باشد؛ بنابراین، برای ایجاد یک فایل خالی در این پروژه باید از دستور touch hello-world.py استفاده کنید. مهم‌ترین کار این است که فایل ایجاد شده را قابل اجرا کنید. یعنی آن را به شکلی درآورید که بتوان کدهای درون آن را اجرا کرد. برای این کار از دستور chmod +x hello-world.py استفاده کنید. حال که فایل آماده شده است می‌توانید آن را در Nano یا هر ویرایش‌گر متنی باز کنید. نرم‌افزار Gedit یک ویرایش‌گر بسیار مناسب است که روی هر سیستم‌عاملی قابل استفاده است. 

[liam@liam-laptop~] $ mkdir Python
[liam@liam-laptop~] $ cd Python/
[liam@liam-laptop python] $ touch hello_world.py
[liam@liam-laptop python] $ chmod +x hello_world.py
[liam@liam-laptop python] $ nano hello_world.py

برنامه Hello World بسیار ساده و از دو خط کد تشکیل شده است. خط نخست با !# شروع و همراه آن مسیر نشانی مفسر پایتون نوشته می‌شود. برای این‌که بتوانید کدهای خود را اجرا کنید، ابتدا باید مفسر بارگذاری شود. اگر برنامه را در IDE مانند IDLE اجرا می‌کنید، نیازی به این کار نیست. در این برنامه برای این‌که Hello World را چاپ کنیم، آن را به‌عنوان پارامتر به تابع print ارسال می‌کنیم. برای ذخیره برنامه در nano می‌توانید از Ctrl+O و enter و برای خروج نیز از دستور Ctrl+X استفاده کنید. 

#!/usr/bin/env python2
Print (“Hello World”)

با استفاده از دستور زیر می‌توانید برنامه را اجرا کنید. 

[liam@liam-laptop python] $./hello_world.py
Hello World

متغیرهای انواع داده‌ای
متغیر یک نام در کد منبع است که به خانه‌ای از حافظه اشاره می‌کند (مشابه تعریف متغیر در زبان‌های برنامه‌نویسی دیگر). انواع داده‌ای شامل Integer (برای اعداد صحیح)، Float (برای اعداد اعشاری)، Boolean (مقادیر درست یا نادرست) و String (برای کاراکترها و رشته‌ها) است. علاوه بر این، انواع داده اصلی دو نوع List (حاوی مجموعه‌ای از داده‌ها به یک ترتیب خاص) و Tuple (حاوی مجموعه‌ای از داده‌های تغییرناپذیر به یک ترتیب خاص) نیز وجود دارند. Tuple می‌تواند برای ذخیره زوج‌های مرتب x و y همراه مقادیرشان استفاده شود، درحالی‌که List می‌تواند داده‌های بیش‌تری را ذخیره کند. مقادیر ذخیره شده در Tuple را نمی‌توانید تغییر دهید، ولی در List می‌توانید این کار را انجام دهید. 
نوع دیگری که وجود دارد، دیکشنری پایتون است که یک نوع داده نگاشت یافته است. دیکشنری داده‌ها را به صورت زوج‌های کلید مقدار ذخیره می‌کند. یعنی، در دیکشنری با استفاده از کلید هر داده می‌توانید به مقدار آن دسترسی داشته باشید، در صورتی ‌که این امکان در نوع داده List فراهم نیست و شما برای دسترسی به یک مقدار در List، باید از اندیس آن (عددی که نشان‌دهنده مکان آن داده در List است) استفاده کنید. در ادامه، با استفاده از یک برنامه به نام variables.py نحوه استفاده از متغیرها توضیح داده شده است. 

Hello_str=“Hello World”
hello_int=21
hello_bool=True
hello_tuple=(21,32)
hello_list=[“Hello”,“this”, “is”, “a”, “list”]

hello_list=list()
hello_list.append(“Hello”)
hello_list.append(“this”)
hello_list.append(“is”)
hello_list.append(“a”)
hello_list.append(“list”)

hello_dict={“first_name”: ”Liam”,
                      “last_name”: “Fraser”,
                       “eye_colour”: “Blue”}

print(hello_list[4])
Hello_list[4]+=”!”

Hello_list[4]=hello_list[4]+”!”
print(hello_list[4])

print(str(hello_tuple[0]))
print(hello_dict[“first_name”]+””+hello_dict[“last_name”]+
”has”+hello_dict[“eye_colour”]+”eyes”)
print(“{0}{1} has{2} eyses.”.format(hello_dict[“first_name”],
hello_dict[“last_name”],hello_dict[“eye_
colour”]))

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

#!/usr/bin/env python2
Import sys#used for the sys.exit function
Int_condition=5
If int_condition<6:
    sys.exit(“int_condition must be >=6”)
else:
    print(“int_condition was >=6–continuing”)

در این‌جا، نحوه اجرای کد به مقدار int_condition بستگی دارد. سایر دستورات کنترلی عبارتند از: 
for: یک قطعه کد را به تعداد مشخص تکرار می‌کند. 
While: یک قطعه کد را تا زمانی تکرار می‌کند که شرط تعیین شده برقرار است. 
حال می‌خواهیم برنامه‌ای بنویسیم که از این دستورات کنترلی استفاده می‌کند. این برنامه construct.py نام دارد.

 

[liam@liam-laptop Python] $ ./construct.py
How many integers? acd  

 

در این قسمت باید یک عدد صحیح وارد کنید. 

 

[liam@liam-laptop Python] $ ./construct.py
How many integers? 3
Please enter integer 1:5
Please enter integer 2:2
Please enter integer 3:6

 

با استفاده از حلقه for

5
2
6

با استفاده از حلقه while

5
2
6

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

 

[liam@liam-laptop Python]$ ./functions_and_scope.py
This is a test string
This is a test string that has been modified.

رعایت حوزه یکی از مهم‌ترین مسائل در برنامه‌نویسی است؛ زیرا می‌تواند مشکلات اساسی برای شما ایجاد کند. به‌عنوان مثال، برنامه زیر یک متغیر بولین به نام cont دارد که تصمیم می‌گیرد آیا مقداری به متغیر موجود در دستور if نسبت داده شود یا خیر؟ با این‌ حال، این متغیر هیچ جای دیگری جدا از حوزه if تعریف نشده است. 

#!/usr/bin/env python2
Cont=False
If cont:
     var=1234
print(var)

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

[liam@liam-laptop Python]$ ./scope.py
Traceback
   File “./scope.py”, line 8, in <module> 
             print var
NameError: name ‘var’ is not defined

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

#!/usr/bin/env python2
cont=False
var=0
If cont:
     var=1234
If var!=0
      print(var)   

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

ایجاد یک بازی ساده با استفاده از پایتون
بازی سنگ، کاغذ، قیچی یک بازی ساده است که در این قسمت توضیح خواهیم داد. در ساخت این بازی، از ورودی کاربر، مقایسه‌ها، انتخاب‌های تصادفی و حلقه‌ها استفاده شده است. توصیه می‌کنیم از IDLE استفاده کنید که یک IDE بسیار مناسب برای پایتون است و به‌راحتی روی اکثر توزیع‌های لینوکس نیز موجود و به‌صورت پیش‌فرض در Raspberry Pi نیز موجود است. 

1- در این قسمت توابع اضافی پایتون  را که برای نوشتن کد به آن‌ها نیاز داریم، در برنامه وارد می‌کنیم. این توابع جزء کتاب‌خانه استاندارد پایتون هستند. 
2- در این قسمت قوانین ابتدایی بازی و سه متغیری که به آن‌ها نیاز داریم و روابطشان تعریف شده‌اند. همچنین، یک متغیر برای نگه‌داشتن امتیاز بازی نیاز داریم. 
3- کد برنامه را با مشخص کردن نقطه شروع هر دور از بازی آغاز می‌کنیم. در پایان هر دور از بازی مجدد به این نقطه بازمی‌گردیم. 
4- بدنه اصلی بازی در این قسمت تعریف شده است؛ درخواست ورودی توسط کاربر، گرفتن ورودی و ارسال آن برای دریافت نتایج. در پایان نیز از کاربر می‌پرسد که می‌خواهد مجدد بازی کند یا خیر. 
5- دریافت ورودی کاربر در این قسمت به‌پایان می‌رسد. سپس، به کاربر اطلاعاتی درباره نحوه انجام بازی داده می‌شود. همچنین، انتخاب‌هایی برای دور بعدی بازی در اختیار آن‌ها قرار می‌گیرد و گزینه‌ای نیز برای زمانی که انتخاب نادرستی انجام دهند، در نظر گرفته شده است. 
6- برای نمایش خروجی چند کار باید انجام شود. ابتدا، باید متغیری به متن چاپ شده اضافه شود. سپس، نتیجه بازی کامپیوتر و کاربر مقایسه شوند. از طریق دستور if نوع خروجی چاپ شده و نحوه به‌روزرسانی امتیازها تعیین می‌شود. 
7- در این مرحله از کاربر پرسیده می‌شود که می‌خواهد بازی را ادامه دهد یا خیر. بر اساس پاسخ آن‌ها، به شروع بازی برمی‌گردیم یا به قسمت پایان بازی می‌رویم و نتایج را نمایش می‌دهیم.

برای مشاهده قسمت‌های بعدی "آشنایی و کار با رزبری‌پای" اینجا کلیک کنید

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

1607870047_0.gif

نظر شما چیست؟