Navigation

    انجمن پایتون فارسی

    • نام‌نویسی
    • درون آمدن
    • جستجو
    • دسته‌بندی‌ها
    • تازه‌ها
    • برچسب‌ها
    • دوست‌داشتنی‌ها
    • کاربران
    • گروه‌ها
    1. خانه
    2. hadikooh
    H
    • پروفایل
    • دنبال‌شونده‌ها 0
    • دنبال‌کننده‌ها 2
    • موضوع ها 1
    • دیدگاه‌ها 4
    • بهترین 0
    • گروه‌ها 0

    hadikooh

    @hadikooh

    0
    اعتبار
    1
    بازدیدهای نمایه
    4
    دیدگاه‌ها
    2
    دنبال‌کننده‌ها
    0
    دنبال‌شونده‌ها
    عضو شده آخرین حضور

    hadikooh دنبال نکن دنبال کن

    آخرین پست های hadikooh

    • RE: آدرس دهی به آرایه ها

      دوستان جواب رو پیدا کردم 4 تایی که نگه داشته میشه برای خود آرایه استفاده میکنه . وقتی که شما آرایه خالی تعریف میکنید سایزش 64 بایته وقتی که به آرایه یک عضو اضافه میکنیم یعنی آرایه ای با یک عضو میسازیم سایز آرایه از 64 به 68 تغییر میکنه . توی این مثال که سایز آرایه 80 هست از 64+4+4+4+4 بدست آمده که این 4 بایت ها از 32 هر کدام از اعضا کم شده و به سایز آرایه اضافه شده . خیلی جالببببههههه !!! چطوری اینو هندل میکنه !!!

      پست شده در پرسش و پاسخ
      H
      hadikooh
    • RE: آدرس دهی به آرایه ها

      من متوجه شدم که sizeof() برای مقادیر بزرگتر عدد بیشتری رو بر میگردونه ولی نمیدونم چرااا!!! کمترین مقدار برای sizeof(0) هستش که 24 میباشد و اگه عدد بزرگتری رو به پایتون بدین جای بیشتری به بایت برای شما نگه میداره
      هنوز نمیدونم چطوری آرایه رو هندل میکنه ولی در مورد متغییر های دیگه به دلیل اینکه هر متغییری در پایتون یک آدرس خانه حافظه است که به یک آبجکت عددی اشاره میکنه بنابراین این تغییر مقدار برای آبجکت های عددی منطقی به نظر میرسه شاید در مورد آرایه ها هم همینطور باشه که فقط آدرس اشاره به آبجکت های عددی دیگه رو نگه میداره . اما هنوز یه مطلب دیگه میمونه اونم اینکه که چرا آدرس خود آرایه با اعضای آرایه تفاوت زیادی داره
      احتمال خیلی قوی آدرس خود آرایه یک اشاره به آبجکت آرایه هستش که مقادیر توش نگه داشته میشن و پشت سر هم هستند
      احتمالا اینطوری باید باشه اگه من اشتباه میگم دوستان راهنمایی کنن
      نکته بعدی که جا میمونه اینه که چرا 4 تا فاصله بین بایت های اعضای آرایه وجود داره این موضوع رو از اینجا میشه فهمید که فاصله آدرس ها از هم 32 تایی هست ولی سایز آنها 28 تاییه!!! این یکی رو دیگه نفهمیدم!!!

      پست شده در پرسش و پاسخ
      H
      hadikooh
    • RE: آدرس دهی به آرایه ها

      آدرس ها با اختلاف 4 عدد پشت سر هم هستند ولی آدرس خود آرایه a متفاوت است لطفا راهنماییم کنید

      پست شده در پرسش و پاسخ
      H
      hadikooh
    • آدرس دهی به آرایه ها

      سلام دوستان من توی کتاب پایتون این موضوع رو خودم که برای محاسبه آدرس یه آرایه باید از فرمول
      42920238-a1fd-4ab0-a0c4-1b136da6fd3e-image.png
      استفاده کنیم ولی توی کد که زدم با اتفاق عجیبی روبرو شدم میشه یکی از دوستان منو راهنمایی کنه ؟
      کد :

      import array
      import sys
      # import ctypes
      
      a = array.array('i',[1,2,3,4])
      print("address of a[] :" , id(a))
      print("size of a : " , sys.getsizeof(a))
      for i in range(len(a)) :
          print("address of a[%i]:" % i  ,id(a[i]))
          print("size of a[%i]:" % i , sys.getsizeof(a[i]))
      

      و جواب به صورت زیر بود چراا؟🙄 🙄 🙄

      address of a[] : 1975923375536
      size of a : 80
      address of a[0]: 1975915997488
      size of a[0]: 28
      address of a[1]: 1975915997520
      size of a[1]: 28
      address of a[2]: 1975915997552
      size of a[2]: 28
      address of a[3]: 1975915997584
      size of a[3]: 28

      پست شده در پرسش و پاسخ
      H
      hadikooh