آموزش پایتون بخش 2

آموزش پایتون بخش 2

 جانگهدار (Placeholders)

به متد print() در خطوط( 15-9) توجه کنید. این متد به دو قسمت تقسیم شده است. قسمت اول یک رشته قالب بندی شده است و و قسمت دوم هم شامل متدی به نام ()format است که دارای مقدار یا مقادیری است که توسط رشته قالب بندی شده مورد استفاده قرار میگیرند. اگر به دقت نگاه کنید رشته قالب بندی شده دارای عدد صفری است که در داخل دو آکولاد محصور شده است. البته عدد داخل دو آکولاد میتواند از صفر تا n باشد. به این اعداد جانگهدار می گویند. این اعداد بوسیله مقدار یا مقادیری که در داخل متد ()format هستند جایگزین میشوند. به عنوان مثال جانگهدار {0} به این معناست که اولین مقدار داخل متد ()format در آن قرار میگیرد. برای روشن شدن مطلب به شکل زیر توجه کنید: 

print("The values are {0}, {1}, {2}, and {3}.".format(value1, value2, value3, value4)); 

آموزش زبان برنامه نویسی پایتون

جانگهدارها از صفر شروع میشوند. تعداد جانگهدارها باید با تعداد مقادیری که در داخل متد ()format آورده شده اند برابر باشد. برای مثال اگر شما چهار جانگهدار مثل بالا داشته باشید باید چهار مقدار هم برای آنها بعد از رشته قالب بندی شده در نظر بگیرید. اولین جانگهدار با اولین مقدار و دومین جا نگهدار با دومین مقدار جایگزین میشود. در ابتدا فهمیدن این مفهوم برای کسانی که تازه برنامه نویسی را شروع کردهاند سخت است اما در درسهای آینده مثالهای زیادی در این مورد مشاهده خواهید کرد

عبارات و عملگرها  

ابتدا با دو کلمه آشنا شوید: 

  1. عملگر: نمادهایی هستند که اعمال خاص انجام میدهند.

  2. عملوند: مقادیری که عملگرها بر روی آنها عملی انجام میدهند

مثلا ً:X+Y  یک عبارت است که در آنX  وY  عملوند و علامت + عملگر به حساب میآیند.

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

سه نوع عملگر در پایتون وجود دارد :

یگانی –(Unary)  به یک عملوند نیاز دارد دودویی

(Binary)  به دو عملوند نیاز دارد سه تایی

(Ternary)  به سه عملوند نیاز دارد

انواع مختلف عملگر که در این بخش مورد بحث قرار میگیرند، عبارتند از: 

  1. عملگرهای ریاضی

  2. عملگرهای تخصیصی

  3. عملگرهای مقایسهای

  4. عملگرهای منطقی

  5. عملگرهای بیتی

عملگرهای ریاضی  

پایتون از عملگرهای ریاضی برای انجام محاسبات استفاده میکند. جدول زیر عملگرهای ریاضی پایتون را نشان میدهد: 

نتیجه  

مثال  

دسته  

عملگر  

Var1 برابر است با حاصل جمع var2 وvar3   

 var1 = var2 + var3;

 Binary

 +

Var1 برابر است با حاصل تفریق var2 وvar3   

 var1 = var2 – var3;

 Binary

 –

Var1 برابر است با حاصلضرب var2 در var3  

 var1 = var2 * var3;

 Binary

 *

Var1 برابر است با حاصل تقسیم

var2 برvar3   

 var1 = var2 / var3;

 Binary

 /

Var1 برابر است با باقیمانده تقسیم var2 وvar3   

 var1 = var2 % var3;

 Binary

 %

Var1 برابر است با مقدار var2 به توان var3  

 var1 = var2 ** var3;

 Unary

 **

Var1 برابر است باvar2  تقسیم برvar3  )نتیجه به صورت صحیح نمایش داده می شود(. 

 var1 = var2 // var3;

 Unary

 //

 

مثال بالا در از نوع عددی استفاده شده است. اما استفاده از عملگرهای ریاضی برای نوع رشتهای نتیجه متفاوتی دارد. اگر از عملگر + برای رشته ها استفاده کنیم دو رشته را با هم ترکیب کرده و به هم میچسباند. حال میتوانیم با ایجاد یک برنامه نحوه عملکرد عملگرهای ریاضی در پایتون را یاد بگیریم:  

#Assign test values  
num1 = 5;       num2 = 3; 
#Demonstrate use of mathematical operators 
print("The sum of {0} and {1} is {2}." 
.format(num1, num2, (num1 +  num2))); 
print("The difference of {0} and {1} is {2}." 
.format(num1, num2, (num1 -  num2)));
print("The product of {0} and {1} is {2}."
.format(num1, num2, (num1 *  num2)));
print("The quotient of {0} and {1} is {2:.2f}."
.format(num1, num2, (num1 /  num2)));
print("The remainder of {0} divided by {1} is {2}."
.format(num1, num2, (num1 %  num2)));
print("The result of {0} power {1} is {2}."
.format(num1, num2, (num1 ** num2)));
print("The quotient of {0} and {1} is {2}."  
.format(num1, num2, (num1 // num2)));  
#Demonstrate concatenation on strings using the + 
msg1 = "Hello "; msg2 = "World!"; print(msg1 + msg2); 
The sum of 5 and 3 is 8. 
The difference of 5 and 3 is 2. 
The product of 5 and 3 is 15. 
The quotient of 5 and 3 is 1.67. 
The remainder of 5 divided by 3 is 2. 
The result of 5 power 3 is 125. 
The quotient of 5 and 3 is 1. 
Hello World! 

برنامه بالا نتیجه هر عبارت را نشان میدهد. در این برنامه از متد print() برای نشان دادن نتایج در سطرهای متفاوت استفاده شده است. در خط 9 برای اینکه ارقام کسری بعد از عدد حاصل دو رقم باشند از {2:.2f} استفاده میکنیم.{2:.2f}  در این جا بدین معناست که عدد را تا دو رقم اعشار نمایش بده. پایتون خط جدید و فاصله و فضای خالی را نادیده میگیرد. در خط 17 مشاهده میکنید که دو رشته به وسیله عملگر + به هم متصل شدهاند. نتیجه استفاده از عملگر + برای چسباندن دو کلمه“Hello “  و“!World”  رشتهHello World” !“ خواهد بود .به فاصلههای خالی بعد از اولین کلمه توجه کنید اگر آنها را حذف کنید از خروجی برنامه نیز حذف میشوند.

عملگرهای تخصیصی ( جایگزینی)

نوع دیگر از عملگرهای پایتون عملگرهای جایگزینی نام دارند .این عملگرها مقدار متغیر سمت راست خود را در متغیر سمت چپ قرار میدهند. جدول زیر انواع عملگرهای تخصیصی در پایتون را نشان میدهد:

نتیجه  

مثال  

عملگر  

مقدارvar1  برابر است با مقدارvar2   

 var1 = var2;

 =

مقدارvar1  برابر است با حاصل جمعvar1  وvar2   

 var1 += var2;

 +=

مقدارvar1  برابر است با حاصل تفریقvar1  وvar2   

 var1 -= var2;

 -=

مقدارvar1  برابر است با حاصل ضربvar1  درvar2   

 var1 *= var2;

 *=

مقدارvar1  برابر است با حاصل تقسیمvar1  برvar2   

 var1 /= var2;

 /=

مقدارvar1  برابر است با باقیمانده تقسیمvar1  برvar2   

 var1 %= var2;

 %=

مقدارvar1  برابر است باvar1  به توانvar2   

 var1 **= var2;

 **=

مقدارvar1  برابر است با حاصل تقسیمvar1  برvar2   

 var1 //= var2;

 //=

 

از عملگر =+ برای اتصال دو رشته نیز میتوان استفاده کرد. استفاده از این نوع عملگرها در واقع یک نوع خلاصه نویسی در کد است. مثلاً شکل اصلی کد var1 += var2 به صورتvar1 = var1 + var2  میباشد. این حالت کدنویسی زمانی کارایی خود را نشان میدهد که نام متغیرها طولانی باشد. برنامه زیر چگونگی استفاده از عملگرهای تخصیصی و تأثیر آنها را بر متغیرها نشان میدهد:

print("Assigning 10 to number..."); 
number = 10; 
print("Number = {0}" .format(number)); 
print("Adding 10 to number..."); 
number += 10;         
print("Number = {0}" .format(number)); 
print("Subtracting 10 from number..."); 
number -= 10; 
print("Number = {0}" .format(number)); 

 

Assigning 10 to number... 
Number = 10 
Adding 10 to number... 
Number = 20 
Subtracting 10 from number... 
Number = 10 

در برنامه از 3 عملگر تخصیصی استفاده شده است. ابتدا یک متغیر و مقدار  10با استفاده از عملگر = به آن اختصاص داده شده است .

سپس به آن با استفاده از عملگر =+ مقدار 11 اضافه شده است. و در آخر به وسیله عملگر= - عدد 11 از آن کم شده است.

 

عملگرهای مقایسه ای  

از عملگرهای مقایسهای برای مقایسه مقادیر استفاده میشود .نتیجه این مقادیر یک مقدار بولی (منطقی) است. این عملگرها اگر نتیجه مقایسه دو مقدار درست باشد مقدار 1 و اگر نتیجه مقایسه اشتباه باشد مقدار 1 را نشان میدهند. این عملگرها به طور معمول در دستورات شرطی به کار میروند به این ترتیب که باعث ادامه یا توقف دستور شرطی میشوند. جدول زیر عملگرهای مقایسهای در پایتون را نشان میدهد:

نتیجه

مثال

عملگر

var1 در صورتیTrue  است که مقدارvar2  با مقدارvar3  برابر باشد در غیر اینصورت

 

 

 است False

 var1 = var2 == var3

 ==

var1 در صورتیTrue  است که مقدارvar2  با مقدارvar3  برابر نباشد در غیر اینصورت

 

 

 است False

 var1 = var2 != var3

 !=

var1 در صورتیTrue  است که مقدارvar2  با مقدارvar3  برابر نباشد در غیر اینصورت

 

 

 است False

 var1 = var2 <> var3

 <>

var1 در صورتیTrue  است که مقدارvar2  کوچکتر ازvar3  مقدار باشد در غیر

 

 

اینصورتFalse  است

 var1 = var2 < var3

 <

var1 در صورتیTrue  است که مقدارvar2  بزرگتر ازمقدارvar3  باشد در غیر اینصورت

 

 

 است False

 var1 = var2 > var3

 >

var1 در صورتیTrue  است که مقدارvar2  کوچکتر یا مساوی مقدارvar3  باشد در

 

 

غیر اینصورتFalse  است

 var1 = var2 <= var3

 <=

var1 در صورتیTrue  است که مقدارvar2  بزرگتر یا مساویvar3  مقدار باشد در غیر

 

 

اینصورتFalse  است

 var1 = var2 >= var3

 >=

 

برنامه زیر نحوه عملکرد این عملگرها را نشان میدهد:  

num1 = 10; num2 = 5; 
print("{0} == {1} : {2}" .format(num1, num2, num1 == num2)); 
print("{0} != {1} : {2}" .format(num1, num2, num1 != num2));
print("{0} <> {1} : {2}" .format(num1, num2, num1 != num2));
print("{0} <  {1} : {2}" .format(num1, num2, num1 <  num2));
print("{0} >  {1} : {2}" .format(num1, num2, num1 >  num2));
print("{0} <= {1} : {2}" .format(num1, num2, num1 <= num2));
print("{0} >= {1} : {2}" .format(num1, num2, num1 >= num2));

10 == 5 : False 
10 != 5 : True 
10 <> 5 : True 
10 <  5 : False 10 >  5 : True 
10 <= 5 : False 
10 >= 5 : True

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

عملگر == عملگر مقایسهای است که دو مقدار را با هم مقایسه میکند مانندx==y  و اینطور خوانده میشودx  برابر است باy .

 

عملگرهای منطقی  

عملگرهای منطقی بر روی عبارات منطقی عمل می کنند و نتیجه آنها نیز یک مقدار بولی است. از این عملگرها اغلب برای شرطهای پیچیده استفاده می شود. همانطور که قبلا یاد گرفتید مقادیر بولی می توانندFalse  یاTrue  باشند. فرض کنید کهvar2  وvar3  دو مقدار بولی هستند.

مثال  

عملگر  

 var1 = var2 and var3;

 and

 var1 = var2 or var3;

 or

 var1 = not (var1);

 not

 

عملگر منطقی and

اگر مقادیر دو طرف عملگر True ،and باشند عملگرand  مقدارTrue  را بر می گرداند. در غیر اینصورت اگر یکی از مقادیر یا هر دوی آنهاFalse  باشند مقدارFalse  را بر می گرداند. در زیر جدول درستی عملگرand  نشان داده شده است: 

 X

 Y

 X and Y

 True

 True

 True

 True

 False

 False

 False

 True

 False

 False

 False

 False

 

برای درک بهتر تاثیر عملگرand  یاد آوری می کنم که این عملگر فقط در صورتی مقدارTrue  را نشان می دهد که هر دو عملوند مقدارشانTrue  باشد.در غیر اینصورت نتیجه تمام ترکیبهای بعدیFalse  خواهد شد. استفاده از عملگر and مانند استفاده از عملگرهای مقایسه ای است. به عنوان مثال نتیجه عبارت زیر درست(True)  است اگر سن(age)  بزرگتر از 11 وsalary  کوچکتر از 1111 باشد.

result = (age > 18) and (salary < 1000); 

عملگرand  زمانی کارامد است که ما با محدود خاصی از اعداد سرو کار داریم. مثلا عبارت 10 <= x <= 100 بدین معنی است کهx  می تواند مقداری شامل اعداد 11 تا 111 را بگیرد. حال برای انتخاب اعداد خارج از این محدوده می توان از عملگر منطقیand  به صورت زیر استفاده کرد.

inRange = (number <= 10) and  (number >= 100); 

عملگر منطقی or

اگر یکی یا هر دو مقدار دو طرف عملگرor ، درست(True)  باشد، عملگرor  مقدارTrue  را بر می گرداند. جدول درستی عملگرor  در زیر نشان داده شده است :

 X

 Y

 X or Y

 True

 True

 True

 True

 False

 True

 False

 True

 True

 False

 False

 False

 

در جدول بالا مشاهده می کنید که عملگرor  در صورتی مقدارFalse  را بر میگرداند که مقادیر دو طرف آنFalse  باشند. کد زیر را در نظر بگیرید.نتیجه این کد در صورتی درست(True)  است که رتبه نهایی دانش آموز(finalGrade)  بزرگتر از 5 7 یا یا نمره نهایی امتحان آن 111 باشد.

isPassed = (finalGrade >= 75) or (finalExam == 100); 

عملگر منطقی not

برخلاف دو اپراتورor  وand  عملگر منطقیNOT  یک عملگر یگانی است و فقط به یک عملوند نیاز دارد. این عملگر یک مقدار یا اصطلاح بولی را نفی می کند. مثلا اگر عبارت یا مقدارTrue  باشد آنراFalse  و اگرFalse  باشد آنراTrue  می کند. جدول زیر عملکرد اپراتور NOT را نشان می دهد: 

 X

 not X

 True

 False

 False

 True

نتیجه کد زیر در صورتی درست است کهage  (سن) بزرگتر یا مساوی 11 نباشد.

isMinor = not(age >= 18); 

عملگرهای بیتی  

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

عملگرهای بیتی  

در سیستم باینری (دودویی) که کامپیوتر از آن استفاده میکند وضعیت هر چیز یا خاموش است یا روشن. برای نشان دادن حالت روشن از عدد 1 و برای نشان دادن حالت خاموش از عدد 1 استفاده میشود. بنابراین اعداد باینری فقط میتوانند صفر یا یک باشند. اعداد باینری را اعداد در مبنای 1 و اعداد اعشاری را اعداد در مبنای 11 می گویند. یک بیت نشان دهنده یک رقم باینری است و هر بایت نشان دهنده 1 بیت است. به عنوان مثال برای یک داده از نوع int به 31 بیت یا 4 بایت فضا برای ذخیره آن نیاز داریم، این بدین معناست که اعداد از 31 رقم 1 و 1 برای ذخیره استفاده میکنند. برای مثال عدد 111 وقتی به عنوان یک متغیر از نوعint  ذخیره میشود در کامپیوتر به صورت زیر خوانده میشود: 

000000000000000000000000000001100100 

عدد 111 در مبنای ده معادل عدد 1111111 در مبنای 1 است. در اینجا 7 رقم سمت راست نشان دهنده عدد 111 در مبنای 1 است و مابقی صفرهای سمت راست برای پر کردن بیتهایی است که عدد از نوعint  نیاز دارد. به این نکته توجه کنید که اعداد باینری از سمت راست به چپ خوانده میشوند. عملگرهای بیتی پایتون در جدول زیر نشان داده شدهاند: 

مثال

عملگر

 x = y & z;

 &

 x = y | z;

 |

 x = y ^ z;

 ^

 x = ~y;

 ~

 x &= y;

 &=

 x |= y;

 |=

 x ^= y;

 ^=

 

عملگر بیتی AND(&)

عملگر بیتیAND  کاری شبیه عملگر منطقیAND  انجام میدهد با این تفاوت که این عملگر بر روی بیتها کار میکند. اگر مقادیر دو طرف آن 1 باشد مقدار 1 را بر میگرداند و اگر یکی یا هر دو طرف آن صفر باشد مقدار صفر را بر میگرداند. جدول درستی عمگر بیتیAND  در زیر آمده است:

 X

 Y

 X AND Y

 1

 1

 1

 1

 0

 0

 0

 1

 0

 0

 0

 0

 

در زیر نحوه استفاده از عملگر بیتیAND  آمده است: 

result = 5 & 3; 
print(result); 
1 

همانطور که در مثال بالا مشاهده میکنید نتیجه عملکرد عملگرAND  بر روی دو مقدار 5 و 3 عدد یک میشود. اجازه بدهید ببینیم که چطور این نتیجه را به دست میآید:

5:  00000000000000000000000000000101 
3:  00000000000000000000000000000011 
:1  00000000000000000000000000000001 

ابتدا دو عدد 5 و 3 به معادل باینریشان تبدیل میشوند. از آنجاییکه هر عدد صحیح (int) 31 بیت است از صفر برای پر کردن بیتهای خالی استفاده میکنیم. با استفاده از جدول درستی عملگر بیتیAND  میتوان فهمید که چرا نتیجه عدد یک میشود.

 

عملگر بیتی OR(|)

اگر مقادیر دو طرف عملگر بیتیOR  هر دو صفر باشند نتیجه صفر در غیر اینصورت 1 خواهد شد. جدول درستی این عملگر در زیر آمده است: 

 X OR Y

 Y

 X

 1

 1

 1

 1

 0

 1

 1

 1

 0

 0

 0

 0

 

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

result = 7 | 9;
 print(result); 

 

خروجی کد بالا 

15

وقتی که از عملگر بیتیOR  برای دو مقدار در مثال بالا( 7 و 9) استفاده میکنیم نتیجه 15 میشود. حال بررسی میکنیم که چرا این نتیجه به دست آمده است؟

7: 00000000000000000000000000000111 
 9: 00000000000000000000000000001001 
----------------------------------- 
15: 00000000000000000000000000001111 

با استفاده از جدول درستی عملگر بیتی OR میتوان نتیجه استفاده از این عملگر را تشخیص داد. عدد 1111 باینری معادل عدد 15 صحیح است

 

 

امیدواریم از این مقاله بهره کافی را برده باشید وبرای شما مفید بوده باشد.

سؤالات خود در رابطه با این مقاله و همچنین انتقادات و پیشنهادات خود را در قسمت نظرات با ما در میان بگذارید


این مقاله فایلی برای دانلود ندارد
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.