آموزش پایتون


پایتون یک زبان برنامه نویسی قوی و ساده برای یادگیری است. پایتون دارای ساختارهای داده سطح بالای کارآمد و یک راهکار ساده اما موثر برای برنامه نویسی شی گرا است. نحو ظریف پایتون و تایپ پویای آن، به همراه طبیعت مفسر گونه آن، پایتون را تبدیل به یک زبان ایده آل برای برنامه نویسی و توسعه سریع برنامه های کاربردی در بسیاری از حوزه ها و در اکثر پلتفورم ها کرده است. مفسر پایتون و کتابخانه استاندارد گسترده آن برای اکثر پلتفورم ها در وب سایت پایتون به آدرس https://www.python.org/ به صورت رایگان در دسترس است و امکان توزیع رایگان آن نیز ممکن است. مفسر پایتون با توابع جدید و به سادگی قابل توسعه است. در آموزش پایتون مفاهیم اولیه و ویژگی های زبان و سیستم پایتون به صورت غیر رسمی به خواننده معرفی می شود. داشتن یک مفسر پایتون برای تجربه های دم دستی به کار می آید، اما تمامی مثال ها کامل و موجود هستند، بنابراین این آموزش را به صورت آفلاین نیز می توانید بخوانید. برای توصیف اشیا و ماژول ها استاندارد، کتابخانه استاندارد پایتون را ببینید. مرجع زبان پایتون تعاریف رسمی تری از زبان ارائه می کند. همچنین کتاب های متعددی که پایتون را به طور عمیق پوشش می دهند وجود دارد. این آموزش سعی در کامل بودن و پوشش تمامی ویژگی ها، یا حتی ویژگی های معمول و پر استفاده پایتون را ندارد. در عوض، بسیاری از ویژگی های پر ارزش زبان پایتون را معرفی می کند و یک دید خوبی از ساختار زبان به شما خواهد داد. پس از خواندن این آموزش، شما قادر به خواندن و نوشتن ماژول ها و برنامه های پایتون خواهید بود. همچنین برای یادگیری بیشتر درباره ماژول های متنوع کتابخانه پایتون موجود در کتابخانه استاندارد پایتون آماده خواهید بود. نگاهی به فهرست خالی از لطف نخواهد بود.


فراخواني مفسر در زبان برنامه نويسي پايتون

مفسر پایتون معمولا در /usr/local/bin/python3.8 نصب می شود (روی ماشین هایی که این مسیر در دسترس است). با قرار دادن /usr/local/bin در مسیر جستجو پوسته Unix و با نوشتن دستور python3.8 در پوسته می توانید شروع کنید

از آنجایی که انتخاب محل قرار گیری مفسر یک گزینه نصب است، مکان های دیگر نیز ممکن است. این موضوع را با راهنمای محلی پایتون یا مدیر سیستم بررسی کنید. (به عنوان مثال /usr/local/python یک مکان متداول برای قرار گیری است).

بر روی سیستم های ویندوز که پایتون را از آدرس Microsoft Store نصب کرده اید، دستور python3.8 در دسترس خواهد بود

. اگر راه انداز py.exe را نصب کرده اید، می توانید از دستور py استفاده کنید.


قسمت Excursus: Setting environment variables را ببینید تا سایر روش ها برای راه اندازی پایتون را ببینید.

تایپ یک کاراکتر end-of-life (کنترلD در Unix و کنترلZ در ویندوز) در primary prompt باعث می شود تا مفسر با خروج حالت صفر خارج شود. اگر کار نکرد، می توانید با نوشتن دستور quit() از مفسر خارج شوید. ویژگی های تصحیح خطوط مفسر شامل تصحیح تعاملی، جایگزینی تاریخچه و تکمیل کد روی سیستم هایی که از کتابخانه GNU Readline پشتیبانی می کند، می باشد. شاید سریع ترین راه برای بررسی اینکه آیا تصحیح خطوط دستور پشتیبانی می شود، نوشتن کنترلP در اولین prompt پایتون که به آن دسترسی دارید باشد. اگر بوق بزند، شما تصحیح خطوط دستور دارید.

اگر هیچ اتفاقی نیافتد، یا ^P تکرار شود، تصحیح خطوط دستور قابل استفاده نیست. شما تنها می توانید با استفاده از کلید backspace کاراکتر ها را از خط فعلی حذف کنید. مفسر چیزی شبیه به پوسته Unix عمل می کند: زمانی که با ورودی استاندارد متصل به دستگاه tty فراخوانی شود، دستورات را به صورت تعاملی می خواند و اجرا می کند. زمانی که با آرگومان نام فایل یا یک فایل به عنوان ورودی استاندارد فراخوانی شود، یک اسکریپت را از آن فایل می خواند و اجرا می کند.

روش دوم برای شروع مفسر python -c command [arg] ... است، که دستور(ها) را، مشابه گزینه -c پوسته در command اجرا می کند. از آنجایی که عبارات پایتون اغلب شامل فاصله یا سایر کاراکتر هایی است که برای پوسته خاص هستند، معمولا توصیه می شود command را در کل با نقل قول تکی، نقل قول کنیم. برخی از ماژول های پایتون در قالب اسکریپت نیز مفید هستند. اینها می توانند با استفاده از python -m module [arg] ... فراخوانی شوند، که فایل کد را برای ماژول اجرا می کند، انگار که نام کامل آن را در خط دستور نوشته باشید. زمانی که از یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوانیم اسکریپت را اجرا و سپس حالات تعاملی را وارد کنیم. با پاس دادن -i قبل از اسکریپت می توان این کار را انجام داد. تمامی گزینه های خط دستور در Command line and environment توضیح داده شده است.

آموزش پایتون - پاس دادن آرگومان در زبان برنامه نويسي پايتون

هنگامی که برای مفسر شناخته شده باشید، نام اسکریپت و آرگومان های اضافی به لیستی از رشته ها(strings) تبدیل می شوند و به متغییر argv در ماژول sys تخصیص داده می شوند. با اجرای import sys می توانید به این لیست دسترسی پیدا کنید.

طول این لیست حداقل یک است. زمانی که هیچ اسکریپت و آرگومانی داده نشده باشد، sys.argv[0] یک رشته خالی است. زمانی که نام اسکریپت به صورت '-' ( به معنی ورودی استاندارد) داده شده باشد، مقدار sys.argv[0] ، '-' می شود. زمانی که از دستور –c استفاده شود، مقدار sys.argv[0] ، '-c' می شود. زمانی که از ماژول –m استفاده شود، مقدار sys.argv[0] ، نام کامل ماژول قرار داده شده می شود. گزینه های بعد از دستور –c و ماژول –m توسط پردازش گزینه مفسر پایتون استفاده نمی شود اما برای اینکه توسط دستور یا ماژول مدیریت شود در sys.argv قرار میگیرد.

حالت تعاملی در Python

زمانی که دستورات از یک tty خوانده شده باشند، گفته می شود که مفسر در حالت تعاملی است. در این حالت، با primary prompt آماده دستور بعدی می شود، معمولا سه علامت بزرگتر از (>>>) . برای خطوط پشت سر هم توسط secondary prompt آماده می شود، به صورت پیش فرض سه نقطه (...). مفسر یک پیام خوش آمد گویی با بیان شماره نسخه خود و اعلان حق کپی برداری را قبل از چاپ اولین prompt چاپ می کند.

$ python3.8
Python 3.8 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type &quothelp&quot, &quotcopyright&quot, &quotcredits&quot or &quotlicense&quot for more information.
>>>

خطوط پشت سر هم در زمان وارد کردن ساختار چند خطی مورد نیاز است. به عنوان مثال این قطعه کد if را ببینید:

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print(&quotBe careful not to fall off!&quot)
...
Be careful not to fall off!

آموزش استفاده از مفسر پایتون قسمت دوم

آموزش استفاده از رمزنگاری متن کد در مفسر پایتون

به طور پیش فرض با متن فایل های پایتون به صورت رمزنگاری شده در UTF-8 رفتار می شود. در این رمزنگاری، کاراکتر های بیشتر زبان های جهان می تواند به طور همزمان در ادبیات(literals) رشته، شناسه ها(identifiers) و توضیحات (comments) مورد استفاده قرار گیرد.

اگرچه کتابخانه استاندارد تنها از کاراکترهای ASCII برای شناسه ها استفاده می کند، و این قراردادی است که هر کد قابل جا به جایی باید از آن پیروی کند. برای نمایش مناسب همه این کاراکتر ها، ویرایشگر شما باید تشخیص بدهد که فایل UTF-8 است، و از فونتی استفاده کند که از همه کاراکتر های استفاده شده در فایل پشتیبانی کند.

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

# -*- coding: encoding -*-

در این جا encoding یکی از codecs های معتبر است که توسط پایتون پشتیبانی می شود. برای مثال، برای اعلان اینکه از رمزنگار Windows-1252 استفاده می شود، اولین خط از فایل متن کد شما باید این باشد:

# -*- coding: cp1252 -*-

یک استثنا از قاعده خط اول زمانی است که متن کد با UNIX “shebang” line شروع شود. در این شرایط، اعلان رمز نگاری باید در خط دوم فایل اضافه شود. برای مثال:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

توجه !

در Unix، مفسر پایتون 3.x به صورت پیش فرض با نام قابل اجرای python نصب نشده است، بنابراین با پایتون 2.x قابل اجرا که به طور همزمان نصب شده باشد، در تعارض نیست.

معرفی غیر رسمی پایتون

در مثال های زیر، ورودی و خروجی با حضور یا عدم حضور prompt ها ( >>> و ... ) تشخیص داده می شود:

برای تکرار مثال، زمانی که prompt ظاهر شد، باید همه چیز را پس از prompt تایپ کنید. خطوطی که با prompt شروع نمی شود خروجی مفسر است. توجه داشته باشید که حضور یک prompt ثانویه در یک خط در مثال، به این معناست که باید یک خط خالی تایپ کنید. از این برای اتمام دستورات چند خطی استفاده می شود. بسیاری از مثال های این کتاب راهنما، حتی آنهایی که در prompt تعاملی وارد شده اند، شامل توضیحات می باشند.

در آموزش پایتون توضیحات با کاراکتر hash (#) شروع می شود و تا انتهای خط فیزیکی ادامه می یابد. توضیحات ممکن است در ابتدای یک خط، پس از فضای خالی و یا پس از کد شروع شود، اما نه در میان حروف یک رشته (string literal). یک کاراکتر hash در حروف یک رشته، تنها یک کاراکتر hash است. از آنجایی که توضیحات برای روشن تر و خوانا تر کردن کد است و توسط پایتون تفسیر نمی شود، ممکن است هنگام نوشتن مثال ها حذف شوند.

تعدادی مثال:

# this is the first comment
spam = 1  # and this is the second comment
          # ... and now a third!
text = &quot# This is not a comment because it's inside quotes.&quot

استفاده از پایتون به عنوان ماشین حساب

بیایید برخی دستورات ساده پایتون را امتحان کنیم. مفسر را شروع کنید و صبر کنید تا prompt اولیه ظاهر شود >>>. (نباید زمان زیادی طول بکشد.)

اعداد

مفسر به عنوان یک ماشین حساب ساده عمل می کند: می توانید یک عبارت را در آن تایپ کنید و مفسر مقدار آن را خواهد نوشت.

نحوه نگارش عبارات سر راست است: عملگر های + ، - ، * و / همانند بسیاری از زبان های دیگر کار می کند (به عنوان مثال پاسکال یا C). از پرانتز ( () ) برای دسته بندی استفاده می شود. برای مثال:
                                                                                                                             >>> 2 + 2 
                                                                                                                                      4
                                                                                                                        >>> 50 - 5*6
                                                                                                                                            20
                                                                                                                            >>> (50 - 5*6) / 4
                                                                                                                                                  5.0
>>> 8 / 5  # division always returns a floating point number
1.6

اعداد صحیح (integer)

مثلا 2 ، 4 ، 20 از نوع int هستند و آنهایی که بخش کسری دارند مانند 5.0 ، 1.6 از نوع float هستند.

در ادامه این آموزش چیزهای بیشتری درباره انواع اعداد می بینیم. تقسیم (/ ) همیشه یک مقدار float باز می گرداند. برای انجام تقسیم کف (floor division) و گرفتن نتیجه صحیح ( چشم پوشی از هر نتیجه کسری) می توانید از عملگر (// ) استفاده کنید. برای محاسبه باقیمانده از % استفاده کنید.

>>> 17 / 3  # classic division returns a float
5.666666666666667
>>>
>>> 17 // 3  # floor division discards the fractional part
5
>>> 17 % 3  # the % operator returns the remainder of the division
2
>>> 5 * 3 + 2  # result * divisor + remainder
17

در پایتون برای محاسبه توان میتوان از عملگر ** استفاده کرد

>>> 5 ** 2  # 5 squared
25
>>> 2 ** 7  # 2 to the power of 7
128

از علامت مساوی (=) برای تخصیص یک مقدار به یک متغیر استفاده می شود. پس از آن هیچ نتیجه ای قبل از prompt تعاملی بعدی نمایش داده نمی شود.

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

اگر یک متغیر تعریف نشده باشد (تخصیص یک مقدار)، در صورتی که بخواهید از آن استفاده کنید یک خطا دریافت خواهید کرد:

 >>> n  # try to access an undefined variable
    Traceback (most recent call last):
      File &quot<stdin>&quot, line 1, in <module>
    NameError: name 'n' is not defined
</module></stdin>

از اعداد اعشاری (floating point) به طور کامل پشتیبانی می شود. عملگر هایی با انواع متفاوت عملوند، عملوند از نوع صحیح را به اعشاری تبدیل می کنند.

                                                                                                                        >>> 4 * 3.75 - 1
                                                                                                                                        14.0

در حالت تعاملی، آخرین عبارت چاپ شده به متغیر _ تخصیص داده می شود. این به این معناست که هنگامی که از پایتون به عنوان ماشین حساب رو میزی استفاده می کنید، به نوعی ادامه محاسبات ساده تر می شود. برای مثال:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

کاربر باید با این متغیر به صورت فقط خواندنی رفتار کند. به صراحت یک مقدار را به آن تخصیص ندهید. شما یک متغیر محلی مستقل با همان نام ایجاد می کنید که متغیر داخلی با رفتار جادویی را تحت پوشش خود می برد. علاوه بر int و float ، پایتون از سایر انواع اعداد نیز پشتیبانی می کند، از جمله Decimalو Fraction . همچنین پایتون پشتیبانی داخلی برای اعداد مختلط نیز دارد و از پسوند j یا J برای نمایش بخش موهومی عدد استفاده می کند، برای مثال 3+5j.

رشته ها در برنامه نویسی python

پایتون علاوه بر اعداد، میتواند رشته ها را نیز مدیریت کند. رشته ها به چندین طریق می توانند بیان شوند. رشته ها می توانند در نقل قول تکی ('...') و یا دوتایی ("...") قرار گیرند، و در هر دو صورت نتیجه یکسان است.2 از \ برای در رفتن از نقل قول استفاده می شود.

>>> 'spam eggs'  # single quotes
'spam eggs'
>>> 'doesn\'t'  # use \' to escape the single quote...
&quotdoesn't&quot
>>> &quotdoesn't&quot  # ...or use double quotes instead
&quotdoesn't&quot
>>> '&quotYes,&quot they said.'
'&quotYes,&quot they said.'
>>> &quot\&quotYes,\&quot they said.&quot
'&quotYes,&quot they said.'
>>> '&quotIsn\'t,&quot they said.'
'&quotIsn\'t,&quot they said.'

در مفسر تعاملی، رشته خروجی درون نقل قول قرار می گیرد و از کاراکتر های خاص با backslash ها صرف نظر میشود. در حالی که ممکن است گاهی این متفاوت از ورودی به نظر برسد (نقل قول های در بر گیرنده می توانند تغییر کنند)، هر دو رشته برابر هستند. اگر رشته شامل نقل قول تکی باشد و هیچ نقل قول دوتایی نداشته باشد، رشته در نقل قول دوتایی قرار می گیرد. در غیر این صورت، در نقل قول تکی قرار میگیرد. تابع print() با حذف نقل قول های در برگیرنده و چاپ کاراکتر های خاص و escaped ، خروجی خوانا تری تولید می کند.

>>> '&quotIsn\'t,&quot they said.'
'&quotIsn\'t,&quot they said.'
>>> print('&quotIsn\'t,&quot they said.')
&quotIsn't,&quot they said.
>>> s = 'First line.\nSecond line.'  # \n means newline
>>> s  # without print(), \n is included in the output
'First line.\nSecond line.'
>>> print(s)  # with print(), \n produces a new line
First line.
Second line.

اگر نمی خواهید کاراکترهایی که بعد از \ قرار دارند به عنوان کاراکتر های خاص تفسیر شوند، می توانید با اضافه کردن یک r قبل از اولین نقل قول از رشته خام (raw strings) استفاده کنید.

>>> print('C:\some\name')  # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name')  # note the r before the quote
C:\some\name

حروف رشته می توانند در چندین خط قرار گیرند. یک روش استفاده از نقل قول سه تایی است : """...""" یا '''...''' . انتهای خطوط به صورت خودکار در رشته قرار دارد، اما با اضافه کردن \ در انتهای خط می توان از آن جلوگیری کرد. مثال زیر:

print(&quot&quot&quot\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
&quot&quot&quot)

خروجی زیر را تولید می کند( توجه داشته باشید که شامل خط جدید اولیه نیست).

Usage: thingy [OPTIONS]
-h                        Display this usage message
-H hostname               Hostname to connect to

رشته ها می توانند با استفاده از عملگر + به همدیگر متصل شوند (مانند چسب به هم بچسبند) و با عملگر * تکرار شوند:

>>> # 3 times 'un', followed by 'ium'
>>> 3 * 'un' + 'ium'
'unununium'

تعداد دو یا بیشتر از حروف رشته در کنار یکدیگر(مثل آنهایی که درون یک نقل قول قرار دارند) به صورت خودکار به هم چسبیده هستند.

>>> 'Py' 'thon'
'Python'

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

>>> text = ('Put several strings within parentheses '
...         'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'

البته این ویژگی فقط با دو حرف کار میکند نه با متغیرها یا عبارات.

 >>> prefix = 'Py'
    >>> prefix 'thon'  # can't concatenate a variable and a string literal
      File &quot<stdin>&quot, line 1
        prefix 'thon'
                    ^
    SyntaxError: invalid syntax
    >>> ('un' * 3) 'ium'
      File &quot<stdin>&quot, line 1
        ('un' * 3) 'ium'
                       ^
    SyntaxError: invalid syntax
</stdin></stdin>

اگر می خواهید متغیر ها را اتصال دهید یا یک متغیر و یک حرف، از + استفاده کنید.

>>> prefix + 'thon'
'Python

رشته ها می توانند اندیس گذاری شوند (زیر نویس دار) به این صورت که اندیس اولین کاراکتر صفر باشد. هیچ نوع کاراکتر مجزا وجود ندارد. یک کاراکتر در واقع یک رشته به طول یک است.

>>> word = 'Python'
>>> word[0]  # character in position 0
'P'
>>> word[5]  # character in position 5
'n'

همچنین، اندیس ها ممکن است به منظور شمارش از راست، منفی باشند.

>>> word[-1]  # last character
'n'
>>> word[-2]  # second-last character
'o'
>>> word[-6]
'P'

توجه داشته باشید از آنجایی که -0 همان 0 است، اندیس های منفی از -1 شروع می شوند. علاوه بر اندیس گذاری، از برش زدن (slicing) نیز پشتیبانی می شود. در حالی که از اندیس گذاری برای دسترسی به کاراکترها به صورت مجزا استفاده می شود، برش زدن به شما امکان دسترسی به زیر رشته ها را می دهد.

>>> word[0:2]  # characters from position 0 (included) to 2 (excluded)
'Py'
>>> word[2:5]  # characters from position 2 (included) to 5 (excluded)
'tho'

توجه داشته باشید که چگونه همیشه شروع بازه شامل می شود و انتهای بازه حذف. این نشان می دهد s[:i] + s[i:] همیشه با s برابر است.

>>> word[:2] + word[2:]
'Python'
>>> word[:4] + word[4:]
'Python'

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

>>> word[:2]   # character from the beginning to position 2 (excluded)
'Py'
>>> word[4:]   # characters from position 4 (included) to the end
'on'
>>> word[-2:]  # characters from the second-last (included) to the end
'on'

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


+---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1


ردیف اول شماره ها مکان اندیس های 0 … 6 در رشته را بیان می کند. ردیف دوم اندیس های منفی متناظر را می دهد. یک برش از i به j ، شامل همه کاراکتر ها بین لبه با نام i و لبه با نام j است. برای اندیس های غیر منفی، طول یک برش اختلاف اندیس ها است، اگر هر دو در بازه باشند. برای مثال، طول word[1:3 2 است. استفاده از اندیس خیلی بزرگ باعث بروز خطا می شود.

  >>> word[42]  # the word only has 6 characters
    Traceback (most recent call last):
      File &quot<stdin>&quot, line 1, in <module>
    IndexError: string index out of range
</module></stdin>

اگر چه اندیس های برش خارج از بازه در هنگام استفاده از برش، با ظرافت مدیریت می شود.

>>> word[4:42]
'on'
>>> word[42:]
''

رشته ها در پایتون نمیتوانند تغییر کنند. آنها تغییر ناپذیر (immutable) هستند. بنابراین، تخصیص به یک مکان اندیس گذاری شده در رشته باعث بروز خطا می شود.

 >>> word[0] = 'J'
    Traceback (most recent call last):
      File &quot<stdin>&quot, line 1, in <module>
    TypeError: 'str' object does not support item assignment
    >>> word[2:] = 'py'
    Traceback (most recent call last):
      File &quot<stdin>&quot, line 1, in <module>
    TypeError: 'str' object does not support item assignment
</module></stdin></module></stdin>

اگر به یک رشته متفاوت احتیاج دارید، باید یک رشته جدید ایجاد کنید.

>>> 'J' + word[1:]
'Jython'
>>> word[:2] + 'py'
'Pypy'

تابع داخلی len() طول رشته را باز می گرداند.

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34

لیست ها در برنامه نویسی python

زبان برنامه نویسی پایتون تعدادی انواع داده ترکیبی برای دسته بندی مقادیر مختلف با هم، می شناسد. متنوع ترین آن لیست است، که می توان آن را به صورت لیستی از مقادیر که درون ([]) با ویرگول (,) از هم جدا شده اند نوشت. لیست ممکن است شامل مواردی از انواع مختلف باشد، اما معمولا همه موارد از نوع یکسانی برخوردار هستند.

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

همانند رشته ها (و سایر انواع داخلی ترتیبی)، لیست نیز می تواند اندیس گذاری و برش شود.

>>> squares[0]  # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:]  # slicing returns a new list
[9, 16, 25]

همه عملیات برش یک لیست جدید شامل عناصر درخواست شده را باز می گرداند. این به این معناست که برش مورد نظر یک کپی سطحی از لیست را باز می گرداند.

>>> squares[:]
[1, 4, 9, 16, 25]

همچنین لیست ها از عملیاتی نظیر اتصال پشتیبانی می کنند.

>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

برخلاف رشته ها که غیر قابل تغییر هستند، لیست یک نوع قابل تغییر است و می توان محتویات آن را تغییر داد.

>>> cubes = [1, 8, 27, 65, 125]  # something's wrong here
>>> 4 ** 3  # the cube of 4 is 64, not 65!
64
>>> cubes[3] = 64  # replace the wrong value
>>> cubes
[1, 8, 27, 64, 125]

همچنین می توانید با استفاده از متد append() (درباره متد ها در آینده بیشتر صحبت خواهیم کرد) مواردی را به انتهای لیست اضافه کنید.

>>> cubes.append(216)  # add the cube of 6
>>> cubes.append(7 ** 3)  # and the cube of 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]
تخصیص به برش ها نیز امکان پذیر است. این امر حتی می تواند سایز لیست را تغییر دهد یا کلا آن را خالی کند.
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # clear the list by replacing all the elements with an empty list
>>> letters[:] = []
>>> letters
[]

همچنین تابع داخلی len() نیز بر روی لیست ها اعمال می شود.

>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
4

می توان لیست ها را تو در تو کرد (ایجاد لیستی شامل لیست های دیگر). برای مثال:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

آموزش پایتون ادامه دارد