پایتون

آموزش پایتون_for

مفهوم Loop 

یک حلقه یاLoop  دنباله ای از دستورالعمل است که به طور مداوم تکرار می شود تا شرایط خاصی به دست آید. به عنوان مثال، ما مجموعه ای از اقلام داریم و یک حلقه ایجاد می کنیم تا از طریق آن بتوانیم  تمام عناصر موجود در مجموعه را پیمایش کنیم. حلقه ها در Python می توانند با for یا while  ایجاد شوند.

در این جلسه قراره در مورد حلقه ها بحث کنیم. در ابتدا از for شروع میکنیم :

for روی هر کدام ا آیتم های دنباله ای مثل رشته، لیست و… تکرار میشود. به عبارت دیگر آیتم ها به همان ترتیبی که در دنباله هستند طاهر میشوند. مهمترین مسئله در این حلقه، تعداد دفعات تکرار مشخص است

مثلا کامپیوتر n عدد از کاربر دریافت میکنه و بزرگترین آنها را نمایش میده.

for var in sequence:
   do_statement(s)

حلقه for با string

 

>>> stg=”sufra.ir”
>>> for i in stg:
print(i)

s
u
f
r
a
.
i
r
>>>
نکته

وقتی حلقه for  را اجا میکنیم آیتم ها به هر تعدادی که هستند زیر هم دیگر چاپ میشوند. برای اینکه کنار هم چاپ شوند باید از (“”=print(i,end  استفاده کنیم

 

print(i,end=””) ???

 

end

همانطور که در تصویر بالا مشاهده میکنید end=’\n”  به صورت پیش فرض تعریف شده تا بعد از تایپ  هر آیتم به خط بعدی رفته تا آیتم های دیگر را چاپ کند.

 

stg="sufra.ir"
>>> for i in stg:
 print(i,end=" ")
s u f r a . i r

حلقهfor با list

>>> a = ['python', 'html', 'c++']
 >>> for i in a:
 print(i , len(i))
python 6
 html 4
 c++ 3
 >>>

حلقه for با tuple

T=("A","B","C")
>>> for x in T:
 print(x)
A
 B
 C
 >>> for x in T:
 print(x,end="")
ABC
 >>>

حلقه for با  Dictionary

>>> d = {'x': 1, 'y': 2, 'z': 3}
 >>> for key in d:
 print (key, ":", d[key])
x : 1
 y : 2
 z : 3
>>> data = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "ru": "Russia" }
>>> for k, v in data.items():
print("{0} is an abbreviation for {1}".format(k, v))
de is an abbreviation for Germany
 sk is an abbreviation for Slovakia
 hu is an abbreviation for Hungary
 ru is an abbreviation for Russia
 >>>

حلقه for با else

>>> words = ["cup", "star", "monkey", "bottle", "paper", "door"]
>>> for word in words:
print(word)
else:
print("Finished looping")
cup
star
monkey
bottle
paper
door
Finished looping
>>>

دستور else  بعد از تمام شدن حلقه اجرا میشود. ما لیستی از کلمات را با یک حلقه به پیش میبریم. وقتی تکرار شد، پیام “پایان حلقه” را چاپ می کنیم که در داخل بدن قرار دارد و پس از کلمه کلیدی دیگری قرار دارد.

حلقه for با range

 

تابع range لیستی از اعداد ۰-(۱-n) را تولید میکند.

 

>>>
 for i in range(1, 6):
print("Statement executed {0}".format(i))
Statement executed 1
 Statement executed 2
 Statement executed 3
 Statement executed 4
 Statement executed 5
 >>>
>>> for n in range(1, 11):
 print(n, end=' ')
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰
 >>> for n in range(0, 11, 2):
 print(n, end=' ')
۰ ۲ ۴ ۶ ۸ ۱۰
 >>>

حلقه for با ایندکس

>>> words = ["cup", "star", "monkey", "bottle", "paper", "door"]  >>> for word, idx in enumerate(words):  print("{0}: {1}".format(word, idx)) 0: cup  1: star  2: monkey  3: bottle  4: paper
  ۵: door  >>>

با استفاده از تابع enumerate عنصر لیست را با ایندکس آن چاپ کنیم.

حلقه for  تو  در تو

 

تا اینجا ما  مثالهای ما تک بعدی   با استفاده  از یک حلقه بوده است. برای استفاده از مثالهای چند بعدی مثلا ماتریس ها، بیشتز از یک حلقه  باید استفاده میکنیم. برای ماتریس های دو بعدی که نیاز به سطر و ستون  داریم از دو حلقه استفاده میکییم.

>>> nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> for i in nums:
for e in i:
print(e, end=' ')
print()
۱ ۲ ۳ 
۴ ۵ ۶ 
۷ ۸ ۹

حلقه for  با zip

>>> words1 = ["cup", "bottle", "table", "rock", "apple"]
 >>> words2 = ["trousers", "nail", "head", "water", "pen"]
 >>>
 for w1, w2 in zip(words1, words2):
 print(w1, w2)

cup trousers bottle nail table head rock water apple pen >>>

حلقه for  و break

برنامه به محض رسیدن  به break از حلقه خارج میشود.

import random
 import itertools
for i in itertools.count():
val = random.randint(1, 30)
print(val)
if (val == 22):
 break
۱۳
 ۸
 ۱۸
 ۶
 ۲۰
 ۲۴
 ۱۳
 ۲۲

 

حلقه for  با continue

برنامه با  شرطی که گذاشتیم وقتی به continue رسید آن را اجرا نمیکند و حلقه کار خود را ادامه میدهد

num = 0
for num in range(20):
num = num + 1
if (num % 2) == 0:
continue
print(num, end=' ')
print()
۱ ۳ ۵ ۷ ۹ ۱۱ ۱۳ ۱۵ ۱۷ ۱۹

کتابخانه های مورد نیاز پردازش تصویر

این  آموزش با پایتون ۲٫۷ هست. کتابخانه های لازم  به صورت زیر میباشد:

Numpy

برای کار با اعداد، آرایه ها و ماتریس ها از این کتابخانه استفاده میشود. در پردازش تصویر، کار با تصاویر هم نوعی کار با ماتریس ها  میباشد.

 برای نصب وارد آدرس C:\Python27\Scripts  میشویم ، کلید شیفت را پایین نگه داشته و در قسمتی خالی از این مکان کلیک راست کرده و گزینه open command را انتخاب میکنیم سپس خط زیر را تایپ میکنیم :

pip install  numpy

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

Matplotlib

برای رسم نمودار ها بیشتر کاربرد دارد. قبل از نصب این کتابخانه اول دو کتابخانه زیر را به عنوان پیش نیاز نصب میکنیم:

pip install python-dateutil
pip install pyparsing
pip install matplotlib

 

opencv

از لینک زیر opencv را دانلود و از حالت فشرده خارج میکنیم. 

https://github.com/opencv/opencv/releases/download/3.3.0/opencv-3.3.0-vc14.exe

وارد مسیر C:\opencv\build\python\2.7\x86 شده و فایل موجود را کپی کرده و در مسیر C:\Python27\Lib\site-packages قرار میدهیم. 

نصب کتابخانه های مورد نیاز پرازش تصویر تموم شد. برای مطمئن شدن از نصب صحیح این کتابخانه ها، وارد شل پایتون شده و آنها را import  میکنیم. نباید خطایی نمایش داده شود. 

cv2

برای اطلاع از نسخه opencv دستور زیر را در شل پایتون وارد کنید:

 


 import cv2
cv2.__version__
 '۳٫۲٫۰'

🆔@image_Process
🌐https://t.me/image_Process

آموزش نصب pip در پایتون

نحوه نصب pip

برای نصب کتابخانه های پایتون با استفاده از  pip، ابتدا وارد سایت https://pip.pypa.io میشویم سپس get-pip.py را دانلود میکنیم. برای نصب مراحل زیر را انجام دهید:

pip
بعد از نصب باید  سیستم  بفهمد که ما pip را نصب کردیم.

pip1
در پایان با نوشتن pip و زدن اینتر تصویر زیر که نمایش دستوراتی برای استفاده از آن هست را میبینید.

pip3
بعد از نصب pip، به راحتی میتوانید کتابخانه های پایتون را از این طریق نصب کنید.

🆔@image_Process
🌐https://t.me/image_Process

پردازش تصویر با پایتون

OpenCV


 اپن سی وی (Open Source Computer Vision Library)، کتابخانه ی  متن باز  بینایی کامپیوتر، تحت مجوز BSD منتشر شده است و از این رو برای استفاده دانشگاهی و تجاری رایگان است.

OpenCV در سال ۱۹۹۹ توسط Gary Bradsky در اینتل بنا نهاده و اولین بار در سال ۲۰۰۰ منتشر شد. در حال حاضر  OpenCV،  بسیاری از الگوریتم های مربوط به بینایی  کامپیوتر و یادگیری ماشین را پشتیبانی می کند و روز به روز گسترش می یابد. OpenCV از طیف گسترده ای از زبان های برنامه نویسی مانند C، Python، Java و غیره پشتیبانی می کند و در سیستم عامل های مختلف از جمله Windows، Linux، OS X، Android و iOS در دسترس است.

OpenCV  برای بهبود محاسبات و برنامه های بی درنگ طراحی شده است .

 

بینایی رایانه‌ای


بینایی رایانه‌ای Computer vision) یا بینایی ماشین ( Machine vision) یکی از شاخه‌های علوم کامپیوتر است که شامل روش‌های مربوط به دستیابی تصاویر، پردازش، آنالیز و درک محتوای آن‌ها است. معمولاً این پردازش‌ها، تصاویر تولید شده در دنیای واقعی را به عنوان ورودی دریافت و داده‌هایی عددی یا سمبلیک را به عنوان خروجی تولید می‌کنند. یکی رویه‌های توسعهٔ این شاخه بر اساس شبیه‌سازی توانایی بینایی انسان در رایانه است.

 

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

python-image-processing

http://innovacion.uas.edu.mx/computer-vision-a-technology-that-looks-into-the-future/?lang=en

The OpenCV Python Interface


OpenCV  یک کتابخانه به زبان  c++،  همراه ماژولهای زیادی که در زمینه بینایی کامپیوتر پوشش دهنده است، میباشد.

OpenCV-Python یک کتابخانه پایتون است که برای حل مشکلات بینایی کامپیوتر طراحی شده است. در واقع  از پایتون به عنوان رابطی برای استفاده از این کتابخانه استفاده میشود. علاوه بر C ++ (و C)، پشتیبانی از پایتون به عنوان یک زبان برنامه نویسی ساده تر از طریق یک رابط پایتون در بالای کد پایه C ++ وجود دارد. در واقع پایتون به عنوان یک اسکریپت بر روی سی ++ سوار میشود. 

پایتون یک زبان برنامه نویسی هدف است که توسط Guido van Rossum طراحی و عمدتا به دلیل سادگی و خوانایی بالا، بسیار محبوب شده است. پایتون، برنامه نویس را قادر می سازد تا ایده هایش را در خطوط کمتری بیان کند. در مقایسه با زبانهایی مانند C++ / C ، پایتون کندتر است.  پایتون،  به راحتی می تواند به وسیله C / C ++ گسترش یابد، و ما را قادر می سازد تا کد C / C ++ را به صورت محاسباتی پرقدرت بنویسیم و پلاگین های پایتون را ایجاد کنیم که می تواند به عنوان ماژول های پایتون استفاده شود.

این  موضوع  دو مزیت دارد:

۱٫ کد پایتون  به اندازه C / C ++سریع  میشود(چون  C ++ واقعی در پس زمینه،  کار می کند) .

۲٫  استفاده از کد پایتون نسبت به C / C ++  آسان تر می شود.

OpenCV-Python از کتابخانه Numpy استفاده می کند که یک کتابخانه بسیار کارآمد برای عملیات عددی با سینتکس  MATLAB است. تمام ساختارهای آرایه OpenCV به آرایه های Numpy تبدیل می شوند. این باعث می شود که ادغام با سایر کتابخانه هایی که از Numpy استفاده می کنند راحت تر باشد  مانند SciPy و Matplotlib.

🆔@image_Process
🌐https://t.me/image_Process