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

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

عملگر بیتی XOR(^)

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

 X XOR Y

 Y

 X

 0

 1

 1

 1

 0

 1

 1

 1

 0

 0

 0

 0

 

در صورتیکه عملوندهای دو طرف این عملگر هر دو صفر یا هر دو یک باشند نتیجه صفر در غیر اینصورت نتیجه یک میشود. در مثال زیر تأثیر عملگر بیتی XOR را بر روی دو مقدار مشاهده میکنید: 

result = 5 ^ 7; 
 
print(result); 

خروجی تکه کد بالا

2

در زیر معادل باینری اعداد بالا( 5 و 7) نشان داده شده است.

5: 00000000000000000000000000000101 
7: 00000000000000000000000000000111 
----------------------------------- 
2: 00000000000000000000000000000010 

با نگاه کردن به جدول درستی عملگر بیتی XOR، میتوان فهمید که چرا نتیجه عدد 1 میشود.

عملگر بیتی NOT(~)

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

 NOT X

 X

 0

 1

 1

 0

 

عملگر بیتیNOT  مقادیر بیتها را معکوس میکند. در زیر چگونگی استفاده از این عملگر آمده است: 

result = 5 ^ 7; 
 
print(result); 

خروجی تکه کد بالا

-8 
7: 00000000000000000000000000000111 
------------------------------------ 
-8: 11111111111111111111111111111000 

عملگر بیتی تغییر مکان(shift) 

این نوع عملگرها به شما اجازه میدهند که بیت ها را به سمت چپ یا راست جا به جا کنید. دو نوع عملگر بیتی تغییر مکان وجود دارد که هر کدام دو عملوند قبول میکنند. عملوند سمت چپ این عملگرها حالت باینری یک مقدار و عملوند سمت راست تعداد جابه جاییبیت ها را نشان میدهد.

مثال

نام

عملگر

 x = y << 2;

تغییر مکان به سمت چپ

 >>

 x = y >> 2;

تغییر مکان به سمت راست

 <<

 

عملگر تغییر مکان به سمت چپ

این عملگر بیتهای عملوند سمت چپ را به تعدادn  مکان مشخص شده توسط عملوند سمت راست، به سمت چپ منتقل میکند. به عنوان مثال: 

result = 10 << 2; 
 
print(result);  

خروجی تکه کد بالا

 40 

در مثال بالا ما بیتهای مقدار 11 را دو مکان به سمت چپ منتقل کردهایم، حال بیایید تأثیر این انتقال را بررسی کنیم: 

10: 00000000000000000000000000001010 
------------------------------------ 
40: 00000000000000000000000000101000 

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

عملگر تغییر مکان به سمت راست

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

result = 100 >> 4; 
 
print(result); 

خروجی تکه کد بالا

6

با استفاده از عملگرتغییر مکان به سمت راست بیتهای مقدار 111 را به اندازه 4 واحد به سمت چپ جا به جا میکنیم. اجازه بدهید تأثیر این جا به جایی را مورد بررسی قرار دهیم: 

100: 00000000000000000000000001100100 
------------------------------------ 
  6: 00000000000000000000000000000110 

هر بیت به اندازه 4 واحد به سمت راست منتقل میشود، بنابراین 4 بیت اول سمت راست حذف شده و چهار صفر به سمت چپ اضافه میشود.

عملگرهای خاص  

علاوه بر عملگرهایی که تا کنون ذکر شد، پایتون دارای عملگرهای خاص زیر نیز میباشد:

  • عملگرهایmembership  که بررسی میکنند آیا متغیر مورد نظر در یک مجموعه(sequence)  همچون رشته، list یا tuple وجود دارد یا خیر.

  • عملگرهایIdentity  که مکانهای قرار گیری دو شیء را با هم مقایسه میکند (بررسی میکنند آیا دوشی با هم برابر هستند یا خیر).

 

در جدول زیر انواع عملگرهایmembership  وIdentity  ذکر شدهاند:

توضیح

 

عملگر

در صورت یافتن متغیر مورد نظر در مجموعهی مشخص شده ،True و در غیر این

 

 

صورتFalse  را برمی گرداند.

 in

 Memberships operator

در صورت یافت نشدن متغیر مورد نظر در مجموعهی مشخص شده ،True و در

 

 

غیر این صورتFalse  را برمی گرداند.

 not in

 

اگر متغیرهای هر دو طرف عملگر به شی یکسان اشاره داشته باشند ،True و در

 

 

غیر این صورتFalse  را برمی گرداند.

 is

 Identity operator

چنانچه متغیر در دو طرف عملگر به شی یکسان اشاره داشته باشد ،False و در

 

غیر این صورتTrue  را بر می گرداند.

 is not

 

 

به مثالهای زیر توجه کنید:

print(5 in     [3, 8, 5, 10]);
 print(5 not in [3, 8, 5, 10]); 

 

خروجی تکه کد بالا 

True 
False 

در خط اول کد بالا، چک میشود که آیا عدد 5 در مجموعه 10[ ,5 ,8 ,3] وجود دارد یا نه؟ و چون وجود دارد مقدارTrue  بر گردانده میشود. در خط دوم هم که کاملاً مشخص است که اگر عدد 5 در مجموعه وجود نداشته باشد مقدار True بر گردانده میشود ولی چون عدد 5 وجود دارد مقدارFalse  برگردانده میشود.

number1 = 5;
 number2 = 6; 
print(number1 is     number2);
 print(number1 is not number2); 

خروجی تکه کد بالا 

True 
False

در مثال بالا و در اولین مقایسه گفته شده است که آیاnumber1  همان number2 است و چون چنین نیست مقدارFalse  و در مقایسه دوم هم گفته شده است که آیاnumber1  برابرnumber2  نیست؟ و چون برابر نیستند مقدارTrue  برگردانده شده است.

گرفتن ورودی از کاربر  

پایتون متد()input  را برای گرفتن ورودی از کاربر، در اختیار شما قرار میدهد. همانطور که از نام این متد پیداست، تمام کاراکترهایی را که شما در محیط برنامه نویسی تایپ میکنید تا زمانی که دکمه enter را میزنید، میخواند. به برنامه زیر توجه کنید:  

name   = input("Enter your name: ");
 age    = input("Enter your age: ");
height = input("Enter your height: "); 
                                               #Print a blank line  
  print();  
                                               #Show the details you typed  
print("Name is {0}.".format(name));  
print("Age is {0}.".format(age));  
print("Height is {0}.".format(height)); 

خروجی تکه کد بالا

Enter your name: John 
Enter your age: 18 
Enter your height: 160.5 
 
Name is John. 
Age is .81 
Height is .5.06

ابتدا 3 متغیر را برای ذخیره داده در برنامه تعریف میکنیم )خطوط 1 و 1 و 3(. برنامه از کاربر میخواهد که نام خود را وارد کند (خط 1). در خط 1 شما به عنوان کاربر نام خود را وارد میکنید. سپس برنامه از ما سن را سؤال میکند )خط 3(. در خط 6 هم یک خط فاصله به وسیله متد print() ایجاد کرده ایم تا بین ورودی های شما و خروجی فاصله ای جهت تفکیک ایجاد شود. حال برنامه را اجرا کرده و با وارد کردن مقادیر مورد نظر نتیجه را مشاهده کنید.

ساختارهای تصمیم  

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

  1. دستورif 

  2. دستورif…else   عملگر سه تایی

  3. دستورif  چندگانه

  4. دستورif  تو در تو

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

دستورif   

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

if (condition): 
   code to execute  

قبل از اجرای دستور if ابتدا شرط بررسی میشود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا میشود. شرط یک عبارت مقایسهای است. میتوان از عملگرهای مقایسهای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم. برنامه زیر پیغام Hello World را اگر مقدار number کمتر از 11 و Goodbye World را اگر مقدار number از 11 بزرگتر باشد در صفحه نمایش میدهد:

#Declare a variable and set it a value less than 10
 number = 5;          
  #If the value of number is less than 10          
   if (number < 10):          
print("Hello World.");             
#Change the value of a number to a value which is greater than 10          
 number = 15;          
  #If the value of number is greater than 10        
  if (number > 10):         
print("Goodbye World.");             

خروجی تکه کد بالا

Hello World. 
Goodbye World. 

در خط 1 یک متغیر با نام number تعریف و مقدار 5 به آن اختصاص داده شده است. وقتی به اولین دستور if در خط 1 میرسیم برنامه تشخیص میدهد که مقدار number از 11 کمتر است یعنی 5 کوچکتر از 11 است.

منطقی است که نتیجه مقایسه درست میباشد، بنابراین دستور if دستور را اجرا میکند )خط 6( و پیغام Hello World چاپ میشود .

حال مقدار number را به 15 تغییر میدهیم)  خط 9(. وقتی به دومین دستور if در خط 11 میرسیم برنامه مقدار number را با 11 مقایسه میکند و چون مقدار number یعنی 15 از 11 بزرگتر است برنامه پیغامGoodbye World  را چاپ میکند )خط 13(. به این نکته توجه کنید که دستور if را میتوان در یک خط نوشت: 

if (number > 10): print("Goodbye World."); 

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

if (condition)  
   statement1;  
   statement2; . 
    .     . 
    statementN; 

این هم یک مثال ساده: 

x = 15;  
if (x > 10): 
   print("x is greater than 10.");    print("This is still part of the if statement."); 

در مثال بالا اگر مقدار x از 11 بزرگتر باشد دو پیغام چاپ میشود. حال اگر به عنوان مثال، تو رفتگی خط آخر را حذف کنیم و مقدار x از 11 بزرگتر نباشد مانند کد زیر: 

x = 5; 
if (x > 10): 
   print("x is greater than 10."); print("This is not part of the if statement."); 

کد بالا در صورتی بهتر خوانده میشود که بین دستورات فاصله بگذاریم:

x = 5;  
if (x > 10): 
   print("x is greater than 10."); 
 print("This is not part of the if statement."); 

میبیند که دستور آخر در مثال بالا، جز دستور if نیست. اینجاست که چون ما فرض را بر این گذاشتهایم که مقدار x از 11 کوچکتر است

پس خطThis is not part of the if statement. (Really?) چاپ میشود. در نتیجه اهمیت وجود تو رفتگی مشخص میشود. به عنوان تمرین همیشه حتی اگر فقط یک دستور در بدنه if داشتید برای آن یک تو رفتگی ایجاد کنید. فراموش نکنید که از قلم انداختن یک تو رفتگی باعث به وجود آمدن خطا شده و یافتن آن را سخت میکند. مثالی دیگر در مورد دستور if:

firstNumber  = input("Enter a number: "); 
secondNumber = input("Enter another number: "); 
 if (firstNumber == secondNumber):     
print("{0} == {1}".format(firstNumber, secondNumber)); 
 if (firstNumber != secondNumber): 

 

    print("{0} != {1}".format(firstNumber, secondNumber)); 
     if (firstNumber < secondNumber):   
  print("{0} < {1}".format(firstNumber, secondNumber)); 
      if (firstNumber > secondNumber):    
 print("{0} > {1}".format(firstNumber, secondNumber)); 
       if (firstNumber > secondNumber):   
  print("{0} > {1}".format(firstNumber, secondNumber)); 
        if (firstNumber >= secondNumber):     
print("{0} >= {1}".format(firstNumber, secondNumber)); 

خروجی تکه کد بالا

Enter a number: 2 
Enter another number: 5 
2 != 5 
2 < 5 
2 <= 5 
Enter a number: 10 
Enter another number: 3 
10 != 3 10 > 3 
10 >= 3 
Enter a number: 5 
Enter another number: 5 
5 == 5 
5 <= 5 
5 >= 5 

ما از عملگرهای مقایسهای در دستور if استفاده کردهایم. ابتدا دو عدد که قرار است با هم مقایسه شوند را به عنوان ورودی از کاربر میگیریم. اعداد با هم مقایسه میشوند و اگر شرط درست بود پیغامی چاپ میشود. به این نکته توجه داشته باشید که شرطها مقادیر بولی هستند، یعنی دارای دو مقدارTrue  یاFlase  می باشند.

 دستور  if…else 

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

if (condition): 
   code to execute if condition is true      
else: 
   code to execute if condition is false;      

از کلمه کلیدیelse  نمیتوان به تنهایی استفاده کرد بلکه حتماً باید با if به کار برده شود. اگر فقط یک کد اجرایی در داخل بدنهif  و بدنهelse  دارید استفاده از آکولاد اختیاری است. کد داخل بلوکelse  فقط در صورتی اجرا میشود که شرط داخل دستورif  نادرست باشد. در زیر نحوه استفاده از دستور if…else آمده است:

 

number = 5; 
 
#Test the condition  if (number < 10): 
    print("The number is less than 10.");      
else:  
    print("The number is either greater than or equal to 10.");    
 	 	 	 
#Modify value of number  number = 15;  
 
#Repeat the test to yield a different result if (number < 10):    
  print("The number is less than 10."); else:    
  print("The number is either greater than or equal to 10."); 


​خروجی تکه کد بالا

The number is less than 10. 
The number is either greater than or equal to 10.

در خط 1 یک متغیر به نامnumber  تعریف کرده ایم و در خط 4 تست میکنیم که آیا مقدار متغیرnumber  از 11 کمتر است یا نه و چون کمتر است در نتیجه کد داخل بلوکif  اجرا میشود (خط 7) و اگر مقدارnumber  را تغییر دهیم و به مقداری بزرگتر از 11 تغییر دهیم (خط 11)، شرط نادرست میشود (خط 13) و کد داخل بلوکelse  اجرا میشود (خط 16). 

 

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

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


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