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



4-خروجی قطعه کد زیر چیست؟جدول Trace آن را رسم کنید یا عملکرد کد آن را توضیح دهید.

تمرین 4

 

1-  لیست  [‘ Amir ’ , ‘ barry ‘ , ‘ Chales ‘ , ‘ Dao ‘ ] در خانه حفظه names1  قرار میگیرد.

 

2-   names1  در خانه حافظه ای به نام names2  قرار میگیرد

 

3-  کپی از names1  میگیرد و در خانه حافظه ای به نام names3 قرار میگیرد .

 

4-  رشته اندیس 0 (سطر0) خانه حافظه names2  ، از ‘ Amir ‘  به رشته ‘ Alice ‘ تغییر میدهد.

 

5- به جای رشته ‘ Barry ‘ رشته ‘ Bob ‘ را جاگذاری میکند . تغییرات حاصل:

 

[' Names1 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao 

 

[' Names2 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao 

 

[' Names3 = [‘ Amir ‘ , ‘ Bob ‘ , ‘ Chales ‘ , ‘ Dao 

 

6- در مرحله بعد یک خانه حافظه ای به نام sum تعریف کرده مقدار 0 را داخل آن قرار میدهیم.

 

7- حلقه for را که val آن ls و sequence آن شامل سه لیست بالاست فراخوانی میکنیم.

 

8- اگر رشته موجود در اندیس 0 که درnames1  قرار دارد با ‘ Amir ‘ برابر بشد آنگاه : sum = sum+1

 

9- شرط 12 برقرار است چون در خانه های names1  و names2 رشته Alice به طور یکسان وجود دارد پس:

 

[' Names1 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao 

 

[' Names2 = [‘ Alice ‘ , ‘ Barry ‘ , ‘ Chales ‘ , ‘ Dao 

 

Sum = s+1   à  sum = 2

 

 10- اگر رشته موجود در اندیس 1 (سطر 1 ) با رشته ‘ Bob ‘ برابر باشد آنگاه :

 

sum = sum+10

 

[' Names3 = [‘ Amir ‘ , ‘ Bob ‘ , ‘ Chales ‘ , ‘ Dao 

 

 

11-  شرط 13 نیز برقرار است پس در sum  قبلی مقدار 10 نیز جمع بسته میشود

 

Sum = sum +10  à sum = 12

 

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

 

12- عناصر موجود در خانه sum  را چاپ کن


2-تفاوت استفاده از تابع () sort با تابع () sorted برای مرتب سازی لیست ها چیست؟

تابع sort لیست مربوطه را مرتب نموده و مقدار آن را در خودش ذخیره میکند و خروجی برنمی گرداند اما تابع sorted خروجی داشته و می توان آن را در یک متغیر ذخیره نمود.در واقع sort متودی از یک iterable می باشد و از این رو نیازی به معرفی لیست موردنظر به عنوان ورودی ندارد اما به تابع sorted  باید iterable موردنظر برای مرتب سازی به عنوان ورودی داده شود.


1-اگر در دستور دوم قطعه برنامه زیر،به جای L1=L2 بنویسیم [:] L2=L1 نتیجه چه تفاوتی خواهد کرد؟آیا در عملکرد برنامه تاثیرگذار است؟امتحان کرده و توضیح دهید.تمرین یکتمرین یک_2

خیر در عملکرد برنامه تاثیرگذار نیست.

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


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

ایران ماوا مرکز اجاره آپارتمان مبله در تهران کرونا ویروس | COVID-19 نماد مهر تنکنولوژی های نوین جنگ و جنگ افزار از ممبران تصفیه آب میگم و از دلم :) sarjoo Kpop world دارالترجمه رسمی واژه چرکنویس های ذهنم... Rapid dl