ذخیره سازی داده

فرض کنید شما یک بازی کامپیوتری به نام "User Hostile" ساخته اید که در آن بازیکنان با یک رابط کامپیوتری پیچیده و غیر دوستانه رقابت می کنند. اکنون باید برنامه ای بنویسید که فروش ماهانه این بازی را در یک دوره پنج ساله ردیابی کند. یا فرض کنید باید کارت های تجاری هکر قهرمان را موجودی کنید.
خیلی زود به این نتیجه خواهید رسید که برای ذخیره و پردازش اطلاعات به چیزی بیش از انواع داده های اولیه ساده نیاز دارید.
 

لیست ها (آرایه ها)

برای اینکه کار با حجم زیادی از داده ها راحت باشد، به گروهی از سلول ها یک نام مشترک داده می شود. به چنین گروهی از سلول هاآرایه
می گویند.  
آرایه – این یک گروه از سلول های حافظه از همان نوع است که در کنار هم قرار گرفته اند و نام مشترکی دارند. هر سلول در گروه یک شماره منحصر به فرد دارد.

هنگام کار با آرایه ها، باید چگونه حل سه کار را بیاموزید:
ایکس تخصیص حافظه با اندازه مورد نیاز برای آرایه؛
ایکس داده ها را در سلول مورد نظر بنویسید؛
ایکس خواندن داده ها از یک سلول

 

آرایه ها در پایتون

چنین آرایه هایی در پایتون وجود ندارد. در عوض، لیست ها برای ذخیره گروهی از اشیاء از همان نوع (اما نه تنها از یک نوع) استفاده می شود - اشیاء از نوع list. تفاوت لیست ها و آرایه ها در این است که لیست یک ساختار پویا است که اندازه آن را می توان در طول اجرای برنامه (حذف، اضافه کردن عناصر) بدون فکر کردن به عملیات مدیریت حافظه (این کار توسط کامپایلر انجام می شود) تغییر داد.
در آینده، هنگام تجزیه و تحلیل کار با لیست ها، از کلمه "آرایه" استفاده خواهیم کرد، زیرا اغلب لیست ها دقیقاً در نقش یک آرایه استفاده می شوند (داده هایی از یک نوع را ذخیره می کنند).
 
ایجاد آرایه
هنگامی که یک آرایه ایجاد می شود، فضا به حافظه اختصاص می یابد (تعداد مشخصی سلول). 1) آرایه ها را می توان با برشمردن عناصر ساده ایجاد کرد: A = [1، 4، 7، 12، 5] چاپ (نوع (A)) خروجی برنامه
خواهد بود <فهرست 'کلاس'>
یعنی یک آرایه یک شی از نوع list (ترجمه شده از list) انگلیسی است.

2) آرایه‌ها می‌توانند از هر نوع داده‌ای تشکیل شوند - اعداد صحیح یا واقعی، رشته‌های کاراکتر  A = ["واسیا"، "پتیا"، "فدیا"]

چند روش برای کار با آرایه ها
3) آرایه‌ها را می‌توان «افزودن» کرد. A = [1، 5] + [25، 7]
4) افزودن آرایه های یکسان را می توان با ضرب جایگزین کرد. بنابراین ایجاد یک آرایه پر از مقادیر مشابه آسان است، مانند: A = [0]*10 # آرایه ای از 10 عنصر ایجاد کرد و آن را با صفر پر کرد
5) یک آرایه همیشه "می داند" اندازه شما تابع  len() برای تعیین اندازه یک آرایه استفاده می شود. اغلب اندازه آرایه در یک متغیر جداگانه ذخیره می شود تا برنامه به راحتی قابل تغییر باشد تا با اندازه آرایه متفاوت کار کند.

مثال
N = 10 # اندازه آرایه را در متغیر N ذخیره می کند A = [0] * N # آرایه ای به اندازه N ایجاد کنید print(len(A)) # اندازه آرایه را چاپ کنید اندازه یک آرایه را می توان از صفحه کلید تنظیم کرد.

کار با عناصر آرایه

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

برای ارجاع به عنصر آرایه، باید نام آرایه و به دنبال آن شاخص آن را در پرانتز مشخص کنید. به عنوان مثال، می توانید مقدار 100 را به عنصر آرایه در شاخص 1 به این صورت بنویسید: A[1] = 100.


شما باید به یاد داشته باشید!
شماره‌سازی آرایه‌ها در پایتون از صفر شروع می‌شود!
(این یک پیش نیاز است - شما باید از صفر شروع کنید. این نکته به ویژه مهم است که به خاطر بسپارید.)
 
مثال
x = (A[3] + 5) * A[1] # مقادیر A[3] و A[1] را بخوانید A[0] = x + 6 # مقدار جدید را به A[0] بنویسید
بیایید برنامه کار با عناصر آرایه را تجزیه و تحلیل کنیم. <پیش> i = 1 A = [0] * 5 # آرایه ای از 5 عنصر ایجاد کنید A[0] = 23 # در هر یک از 5 عنصر آرایه (شاخص‌های 0 تا 4) A[1] = 12 # یک مقدار خاص بنویسید A[2] = 7 A[3] = 43 A[4] = 51 A[2] = A[i] + 2*A[i-1] + A[2*i] # مقدار عنصر را با شاخص 2 به نتیجه عبارت تغییر دهید # از آنجایی که i=1 است، سپس مقدار متغیر i را با عبارتی که دریافت می کنیم جایگزین می کنیم # عبارت زیر A[2] = A[1] + 2*A[0] + A[2]; چاپ (A[2] + A[4])
در نتیجه اجرا این برنامه مقدار مجموع عناصر آرایه با شاخص 2 و با اندیس 4 برابر با 116 روی صفحه ظاهر می شود. همانطور که از مثال می بینید، ما می توانیم به هر عنصر آرایه دسترسی داشته باشیم . و همچنین تعداد عنصر مورد نیاز را با استفاده از فرمول های مختلف محاسبه کنید (به عنوان مثال، مانند برنامه A[i-1] یا A[2*i]). در این موارد، شاخص های عناصر محاسبه می شود و به مقدار i بستگی دارد.

در پایتون می توانید از مقادیر شاخص منفی برای آرایه ها استفاده کنید و از انتهای آرایه بشمارید. مثلا: A[-1] - آخرین عنصر آرایه A[-2] - عنصر ماقبل آخر و غیره

بیایید برنامه را تجزیه و تحلیل کنیم. N=5 A = [0] * N  x=1 چاپ (A[x - 3])   # دسترسی به عنصر A[-2] print(A[x - 3 + len(A)]) # عنصر دسترسی A[3]                       # این همان عنصر  A[-2] است A[x + 4] = A[x] + A[2 * (x + 1)]  # پس از جایگزینی x به عبارات و محاسبات                            # خط بعدی A[5] = A[1] + A[4] را دریافت کنید                           # A[5] چنین عنصری وجود ندارد                           # خطا - آرایه خارج از محدوده از آنجایی که آرایه با 5 عنصر اعلام شده است، عناصر از -5 تا 4 شماره گذاری می شوند. می بینیم که برنامه در خط ششم به عنصری که وجود ندارد اشاره می کند: A[5].
معلوم می شود که برنامه از مرزهای آرایه فراتر رفته است.
 

در چنین مواردی، برنامه معمولاً با خطای زمان اجرا از کار می افتد.

تکرار روی عناصر آرایه

هنگام کار با آرایه ها، معمولاً باید با تمام عناصر آرایه به طور همزمان کار کنید.
 
تکرار از طریق عناصر: حلقه را از طریق تمام عناصر آرایه انجام دهید و در صورت لزوم، عملیاتی را انجام دهید روی هر یک از آنها.

برای این، اغلب از یک حلقه با یک متغیر استفاده می شود که از 0 به N-1 تغییر می کند، جایی که N تعداد آرایه است. عناصر.
در N اندازه فعلی آرایه را در نظر می گیریم، یعنی  N = len(A). ... برای i در محدوده (N): # در اینجا ما با A[i] کار می کنیم ... در حلقه مشخص شده، متغیر i مقادیر 0، 1، 2، ...، N-1 را می گیرد.  بنابراین، در هر مرحله از حلقه، به عنصر خاصی از آرایه با شماره i دسترسی داریم.
بنابراین، کافی است آنچه را باید با یک عنصر از آرایه A[i] انجام داد و این اقدامات را در داخل چنین حلقه‌ای قرار داد.

بیایید برنامه ای بنویسیم که آرایه را با اولین N اعداد طبیعی پر کند، یعنی در پایان برنامه، عناصر آرایه باید برابر شوند. A[0] = 1 A[1] = 2 A[2] = 3 ... A[N - 1] = N دیدن الگو آسان است: مقدار یک عنصر آرایه باید 1 بیشتر از شاخص عنصر باشد.

حلقه به این شکل خواهد بود برای i در محدوده (N): A[i] = i + 1

لیست سازندگان

زبان پایتون به شما این امکان را می دهد که بسیاری از مسائل را به طور مختصر و قابل اعتماد حل کنید. بیایید امکانات اصلی پر کردن یک آرایه را فهرست کنیم. 1) ایجاد و پر کردن یک آرایه را می توان به صورت زیر نوشت: A = [i برای i در محدوده(N)] # با N = 5، آرایه A = [0،1،2،3،4] A = [i*i برای i در محدوده(N)] # با N = 5، آرایه A = [0،1،4،9،16] برای i در محدوده(N) - در تمام مقادیر i از 0 تا N-1 حلقه می‌زند.

عنصر بعدی آرایه حاوی مقداری است که قبل از کلمه for آمده است، در مورد اول i، در مورد دوم - i*i.

با استفاده از نماد زیر همین نتیجه را بدست می آوریم: <پیش> A = list(range(N)) # با N = 5، آرایه A = [0,1,2,3,4]
2) شما می توانید در آرایه نه همه مقادیر، بلکه فقط آنهایی را بنویسید که شرایط خاصی را برآورده می کنند.
 
مثال
پر کردن آرایه با تمام اعداد زوج در محدوده 0 تا 9. A = [i برای i در محدوده (10) اگر من % 2 == 0] print(*A) # آرایه A = [0,2,4,6,8] در این مورد، باید بدانید که طول آرایه کمتر از 10 خواهد بود. 

3) پر کردن یک آرایه از صفحه کلید با عناصری که در هر خط یک قرار دارند به دو روش انجام می شود.
  <بدن>
N=5 A = [0] * 5 برای i در محدوده (N): A[i] = int(input()) <پیش> A = [int(input()) برای i در محدوده (N)] # هر بار که حلقه تکرار می شود، # رشته ورودی تبدیل می شود # به یک عدد صحیح (با استفاده از int) # و این عدد به آرایه اضافه می شود


4) پر کردن یک آرایه از صفحه کلید با عناصری که همه در یک خط قرار دارند کمی پیچیده تر است. شما باید رشته را بخوانید، آن را به عناصر تقسیم کنید و سپس هر عنصر را به یک عدد صحیح تبدیل کنید s = input().split()  A = [int(i) برای i در s]  یا بیشتر A = list(map(int, input().split())) # لیست توابع داخلی()   # دنباله را تبدیل می کند   # به لیست قابل تغییر

خروجی آرایه

همچنین می توانید یک آرایه را به روش های مختلف روی صفحه نمایش دهید.
  <بدن>
روش استاندارد، در بسیاری از زبان های برنامه نویسی استفاده می شود. چنین چرخه ای را می توان کوتاهتر نوشت. مقدار х در هر مرحله از حلقه با عنصر بعدی آرایه پر می شود. در پایتون، می توانید اینگونه بنویسید.
برای i در محدوده (len(A)): print(A[i], end=" ") برای x در A: print(x, end=" ") <پیش> چاپ (*A) # علامت * جلوی نام # آرایه به این معنی است # باید تبدیل شود آرایه # در مجموعه ای از مقادیر فردی