شهریور ۱۰, ۱۳۹۸ Mostafa بدون دیدگاه

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

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

متغیر صرفا فضاهای رزرو شده در حافظه هستند که مقادیری را در آن ها ذخیره می کنیم، بدین معنا که در زمان ایجاد یک متغیر، بخشی از حافظه اشغال شده و به آن متغیر تخصیص داده می شود.
بسته به نوع داده ای متغیر، مفسر بخشی از حافظه را رزرو کرده و تصمیم می گیرد چه مقداری در حافظه ی تخصیص داده شده، ذخیره گردد. بنابراین، با تخصیص نوع داده های مختلف به متغیرها، می توانید اعداد صحیح (integer)، اعداد اعشاری (decimal) یا character در این متغیرها ذخیره کنید.

تخصیص مقادیر به متغیرها

برای تخصیص حافظه، در پایتون نیازی به اعلان صریح متغیر نیست. زمانی که مقداری را به متغیر انتساب می دهد، اعلان به صورت خودکار رخ می دهد. مانند زبان های برنامه نویسی دیگر، انتساب مقدار به متغیر توسط علامت مساوی ” = ” صورت می پذیرد.
عملوندی (operand) که در سمت چپ عملگر (operator) ” = ” قرار می گیرد، اسم متغیر و عملوندی که در سمت راست عملگر ” = ” قرار می گیرد، مقداری است که در متغیر ذخیره می شود. مثال:

#!/usr/bin/python
counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string
print counter
print miles
print name

در اینجا، ۱۰۰، ۱۰۰۰.۰و “John” همگی مقادیر تخصیص داده شده به ترتیب به متغیرهای counter، miles و name هستند. کد بالا نتیجه ی زیر را بدست می دهد:

۱۰۰
۱۰۰۰.۰
John

چندین تخصیص به صورت یکجا

پایتون به شما امکان می دهد یک مقدار را همزمان به چندین متغیر تخصیص دهید. مثال:

a = b = c = 1

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

a, b, c = 1, 2, "john"

در این مثال، سه مقادیر دو عدد صحیح و یک رشته به ترتیب به متغیرهای a، b و c تخصیص داده شده اند.

نوع داده های رایج

داده های ذخیره شده در حافظه می توانند از هر نوعی باشند. به عنوان مثال، سن یک شخص به صورت یک مقدار عددی ذخیره شده و آدرس وی در قالب حروف الفبا (alpha-numeric) داخل حافظه ذخیره می شود. پایتون دارای نوع داده های متعددی است که عملیات ممکن بر روی آن ها و روش های ذخیره ویژه ی هر یک را تعریف می کند.
در کل زبان پایتون از نوع داده های زیر پشتیبانی می کند:

  1. نوع عددی
  2. نوع رشته ای
  3. لیست
  4. tuple (نوع داده ی چندتایی)
  5. Dictionary

اعداد یا نوع عددی در پایتون

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

var1 = 1
var2 = 10

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

del var1[,var2[,var3[....,varN]]]]

می توانید با استفاده از دستور del یک یا چند شی را حذف کنید. مثال:

del var
del var_a, var_b

پایتون نوع های عددی زیر را پشتیبانی می کند:

  1. int (اعداد صحیح علامت دار)
  2. long (اعداد صحیح بسیار بزرگ یا long integers، آن ها را می توان به صورت شانزده شانزدهی و هشت هشتی نمایش داد)
  3. float (مقادیر حقیقی میمز شناور)
  4. complex (اعداد مختلط)

 

  1. پایتون به شما اجازه می دهد برای مشخص کردن نوع عددی Long از l کوچک استفاده کنید، اما برای اینکه آن l با عدد ۱ اشتباه گرفته نشود، توصیه می کنیم از L بزرگ استفاده کنید. بنابراین پایتون اعداد صحیح بسیار بزرگ را با L بزرگ نمایش می دهد.
  2. یک عدد مختلط متشکل است از دو عدد ممیز شناور حقیقی و یک بخش که یکه ی موهومی نام دارد. برای مثال در x + yj، x و y اعداد حقیقی هستند و j نشانگر واحد یا یکه ی موهومی (imaginary) می باشد.

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

رشته ها در پایتون عبارت است از مجموعه کاراکترهای همجوار که در علامت نقل و قول نمایش داده می شوند. پایتون از هر دو شکل تک کوتیشن و دابل کوتیشن پشتیبانی می کند. می توان با بهره گیری از عملگر برش یا slice operator ([ ] [:] ) که اندیس آن در آغاز رشته با اندیس ۰ شروع شده و تا ۱- در انتها ادامه می یابد، بخش هایی از یک رشته را استخراج کرد.
علامت (+) یک عملگر اتصال است که دو رشته را به هم پیوند می دهد. علامت * درواقع یک repetition operator است که دستوری را تکرار می کند (برای مثال یک رشته را دوبار چاپ می نمایند).

str = 'Hello World!'
print str          # Prints complete string
print str[0]       # Prints first character of the string
print str[2:5]     # Prints characters starting from 3rd to 5th
print str[2:]      # Prints string starting from 3rd character
print str * 2      # Prints string two times
print str + "TEST" # Prints concatenated string

نتیجه ی زیر حاصل می گردد :

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

 

نوع داده ای List در پایتون

از میان نوع های داده ای پایتون، List ها تطبیق پذیرترین نوع داده ای هستند، بدین معنا که برای منظورهای مختلف می توان از آن ها بهره گرفت. یک لیست شامل مجموعه ای از آیتم ها است که توسط ویرگول از هم جدا شده و داخل [] محصور می شوند. تا حدی می توان گفت که List شبیه به نوع داده ای آرایه در زبان C است. یک تفاوت اساسی بین آرایه و لیست این است که آیتم های موجود در لیست می توانند از نوع داده های مختلف باشند (از نظر نوع با هم متفاوت باشند).
مقادیر ذخیره شده در یک لیست را می توان با استفاده از عملگر برش ([ ] [:]) از طریق اندیس که از در ابتدای لیست ار صفر آغاز شده و تا ۱- در انتهای لیست ادامه می یابد، مورد دسترسی قرار داد. علامت + به عنوان یک عملگر اتصال نقش ایفا کرده و عملگر * نیز صرفا یک دستور را تکرار می کند.

مثال :

#!/usr/bin/python
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists


خروجی :
['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[۷۸۶, ۲.۲۳]
[۲.۲۳, 'john', 70.200000000000003]
[۱۲۳, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

نوع داده ای Tuple در پایتون

Tuple نیز یک نوع داده ای متشکل از رشته یا مجموعه ای از آیتم هاست که مشابه نوع داده ای List می باشد. یک Tuple تعدادی مقادیر را در خوش دارد که این مقادیر توسط ویرگول از هم جدا می شوند. اما برخلاف List، نوع داده ای Tuple داخل پرانتز محصور می شود.
بین نوع داده ای مذکور تفاوت هایی وجود دارد: در List مقادیر درون [] جای می گیرند، در حالی که این مقادر در tuple داخل پرانتز محصور می شوند. تفاوت دیگر این است که المان های List و اندازه ی آن را می توان اصلاح نمود ولی این امکان برای tuple وجود ندارد. می توان به tuple به چشم list های فقط خواندنی (read-only) نیز نگریست.

مثال :

#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')
print tuple           # Prints complete list
print tuple[0]        # Prints first element of the list
print tuple[1:3]      # Prints elements starting from 2nd till 3rd
print tuple[2:]       # Prints elements starting from 3rd element
print tinytuple * 2   # Prints list two times
print tuple + tinytuple # Prints concatenated lists

خروجی :
('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(۷۸۶, ۲.۲۳)
(۲.۲۳, 'john', 70.200000000000003)
(۱۲۳, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

کد زیر از آنجایی که سعی می کند المان های tuple را بروز رسانی کند، مجاز و معتبر نیست. اما همین عملیات را می توان بر روی List پیاده کرد :

#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

نوع داده ای Dictionary

Dictionary در پایتون تا حدی شبیه به جداول hash (hash table type) هستند. این نوع داده ای علمکردی مشابه آرایه های شرکت پذیر -associative array – یا hash ها در Perl دارند و از جفت های کلید مقدار (key-value pairs) تشکیل می شوند. کلید می تواند از هر نوعی باشد، با این وجود اغلب از نوع اعداد و رشته ها هستند. اما مقادیر، می توانند از هر شی دلبخواه و اختیاری در پایتون باشند.
آیتم های Dictionary داخل {} محصور می شوند. جهت دسترسی و استخراج مقادیری از dictionary می بایست از [] استفاده کرد. مثال :

#!/usr/bin/python
dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values


خروجی :
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

در Dictionary، المان ها دارای ترتیب یا order مشخصی نیستند.

تبدیل نوع داده ای

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

 

 

 

شرحتابع
X را به عدد صحیح integer تبدیل می کند.int(x [,base])
X را به یک عدد صحیح بزرگ long integer تبدیل می کند.long(x [,base] )
X را به یک عدد ممیز شناور تبدیل می کند.float(x)
یک عدد مختلط ایجاد می کند.complex(real [,imag])
شی x را به صورت یک رشته نمایش می دهد.str(x)
شی x را به یک expression string تبدیل می نماید.repr(x)
یک رشته را ارزیابی کرده و یک شی به عنوان خروجی برمی گرداند.eval(str)
به نوع tuple تبدیل می کند.tuple(s)
به نوع داده ای list تبدیل می کند.list(s)
به یک set (مجموعه) تبدیل می کند.set(s)
یک dictionary ایجاد می کند. d بایستی یک مجموعه ی پست سرهم یا دنباله ای از tuple ها (به صورت جفت کلید، مقدار) باشد.dict(d)
S را به یک مجموعه ی ثابت یا ایستا (frozen set) تبدیل می کند.frozenset(s)
یک integer را به کاراکتر تبدیل می کند.chr(x)
یک integer را به کاراکتر یونیکد تبدیل می کند.unichr(x)
یک تک کاراکتر را به معادل یا مقدار عدد صحیح (integer) آن تبدیل می کند.ord(x)
یک عدد صحیح را به رشته ی شانزده شانزدهی تبدیل می کند.hex(x)
یک عدد صحیح را به رشته ی هشت هشتی تبدیل می کند.oct(x)