آموزش پایتون رایگان

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

آموزش پایتون از صفر تا 100

۷۶ بازديد

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

  • معرفی زبان برنامه نویسی پایتون
  • فراخوانی مفسر در زبان برنامه نویسی پایتون
  • حالت تعاملی در Python
  • آموزش استفاده از رمزنگاری متن کد در مفسر پایتون
  • استفاده از پایتون به عنوان ماشین حساب
  • رشته ها در برنامه نویسی python
  • لیست ها در برنامه نویسی python

حال با ادامه آموزش پایتون همراه ما باشید.

مراحل اولیه برای برنامه نویسی پایتون Python

1البته که می توان از پایتون برای کارهای پیچیده تر از دو به اضافه دو استفاده کرد. برای مثال، می توان یک زیر دنباله اولیه سری فیبوناتچی را به صورت زیر نوشت:
1>>> # Fibonacci series:
1... # the sum of two elements defines the next
1... a, b = 0, 1
1>>> while a < 10:
1...     print(a)
1...     a, b = b, a+b
1...
10
11
11
12
13
15
18

این مثال چندین ویژگی جدید را معرفی می کند

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

2. حقله while تا زمانی که شرط (در اینجا a < 10) صحیح (true) باشد اجرا می شود. در پایتون همانند C، هر مقدار صحیح(integer) غیر صفر صحیح (true) است. صفر غلط(false) است . شرط نیز ممکن است مقدار رشته یا لیست باشد؛ در واقع هر داده ترتیبی می تواند باشد. هر چیزی با طول غیر صفر صحیح و دنباله های خالی غلط هستند. تست استفاده شده در این مثال یک مقایسه ساده است. عملگرهای مقایسه ای استاندارد مشابه C نوشته می شوند. < کمتر از ، > بزرگتر از ، == تساوی ، <= کمتر مساوی ، >= بزرگتر مساوی ، =! نا مساوی.

3. بدنه حلقه فرورفتگی دارد. فرو رفتگی روش پایتون برای دسته بندی عبارات است. در prompt تعاملی، برای هر خط فرو رفته باید یک tab یا چندین فاصله تایپ کنید. در عمل به وسیله ویرایشگر متن، ورودی های پیچیده تری را برای پایتون آماده می کنید. همه ویرایشگر های متن محبوب دارای تسهیلات ایجاد فرورفتگی خودکار هستند. زمانی که یک عبارت ترکیبی به صورت تعاملی وارد شود، یک خط خالی باید پس آن وجود داشته باشد که نشان دهنده تکمیل آن باشد (زیرا پارسر(parser)نمیتواند حدس بزند که شما چه زمانی خط آخر را نوشته اید). توجه داشته باشید که همه خطوط درون یک بلاک باید به یک اندازه فرو رفته باشند.

4. تابع print() مقدار آرگومان هایی که به آن داده شده را چاپ می کند. عملکرد این تابع متفاوت است از نوشتن ساده عبارات مورد نظر(مانند نوشتن در مثال ماشین حساب). دلیل این تفاوت نحوه مدیریت چندین آرگومان، مقادیر اعشاری و رشته ها توسط این تابع است. رشته ها بدون علامت نقل قول چاپ می شوند و در بین موارد فاصله قرار می گیرد ، بنابراین می توانید به همه چیز به زیبایی شکل دهید. مانند این:

1>>> i = 256*256
1>>> print('The value of i is', i)
1The value of i is 65536

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

1>>> a, b = 0, 1
1>>> while a < 1000:
1...     print(a, end=',')
1...     a, b = b, a+b
1...
10,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

توجه !

1. از آنجایی که ** اولویت بالاتری نسبت به – دارد، -3**2 به صورت -(3**2) تفسیر می شود ، پس بنابراین نتیجه -9 می شود. برای جلوگیری از این اتفاق و رسیدن به نتیجه 9، می توان از (-3)**2 استفاده کرد.

2. بر خلاف سایر زبان ها، کاراکتر های خاص مانند n با هر دوی نقل قول تکی ('...') و دوتایی ("...") معنای یکسان دارند. تنها تفاوت در این دو این است که در نقل قول تکی نیازی به گریز از " نیست( اما باید از ’ گریز کرد) و بالعکس.

ابزارهای کنترل در زبان پایتون Python

آموزش عبارات if در زبان برنامه نویسی Python

شاید شناخته شده ترین نوع عبارات، عبارت if باشد. برای مثال:

1>>> x = int(input("Please enter an integer: "))
1Please enter an integer: 42
1>>> if x < 0:
1...     x = 0
1...     print('Negative changed to zero')
1... elif x == 0:
1...     print('Zero')
1... elif x == 1:
1...     print('Single')
1... else:
1...     print('More')
1...

میتوان به تعداد دلخواه (هیچ یا بیشتر ) بخش elif قرار داد، و بخش else اختیاری است. کلمه کلیدی elif خلاصه شده else if است، و بهتر است از اعمال فرورفتگی اضافی خودداری شود. یک دنباله if….elif….elif…. جایگزینی برای عبارات switch یا case موجود در سایر زبان ها است.

آموزش عبارات for در زبان برنامه نویسی Python

عبارات for در پایتون با آنچه که در C یا پاسکال استفاده می کردید، ممکن است کمی متفاوت باشد. به جای روند تکرار همیشگی که روی دنباله ای از اعداد حسابی که به صورت افزایشی تغییر میکند (مانند پاسکال)، یا به جای دادن این امکان به کاربر که بتواند گام تکرار و شرط پایان حلقه را مشخص کند (مانند C)، عبارت for در پایتون روی موارد هر نوع دنباله ای ( یک رشته یا یک لیست)، بر اساس همان ترتیبی که در دنباله قرار دارند، تکرار می شوند. برای مثال:

1>>> # Measure some strings:
1... words = ['cat', 'window', 'defenestrate']
1>>> for w in words:
1...     print(w, len(w))
1...
1cat 3
1window 6
1defenestrate 12

کدی که یک مجموعه را تغییر می دهد و همزمان روی عناصر همان مجموعه تکرار می کند (درون حلقه for)، می تواند برای اجرای صحیح چالش بر انگیز باشد. به جای آن، معمولا سر راست تر است که روی یک کپی از مجموعه حلقه بزنید یا یک مجموعه جدید ایجاد کنید.

1# Strategy:  Iterate over a copy
1for user, status in users.copy().items():
1    if status == 'inactive':
1        del users[user]
1 
1# Strategy:  Create a new collection
1active_users = {}
1for user, status in users.items():
1    if status == 'active':
1        active_users[user] = status

آموزش تابع range() در برنامه نویسی پایتون

اگر احتیاج دارید که روی دنباله ای از اعداد در حلقه تکرار کنید، تابع داخلی range() به کار می آید. این تابع توالی از اعداد حسابی تولید می کند.

1>>> for i in range(5):
1...     print(i)
1...
10
11
12
13
14

نقطه پایان داده شده هیچگاه جزء ای از دنباله تولید شده نیست. Range(10) ده مقدار تولید می کند که اندیس های مجاز برای عناصر یک دنباله به طول ده هستند. امکان دارد که بخواهیم بازه از عددی دیگر شروع شود، و یا یک واحد افزایشی متفاوت مشخص کنیم (حتی منفی، گاهی به آن گام می گویند).

1range(5, 10)
1   5, 6, 7, 8, 9
1 
1range(0, 10, 3)
1   0, 3, 6, 9
1 
1range(-10, -100, -30)
1  -10, -40, -70

برای تکرار روی اندیس های یک دنباله، می توانید range() و len() را مانند زیر ترکیب کنید:

1>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
1>>> for i in range(len(a)):
1...     print(i, a[i])
1...
10 Mary
11 had
12 a
13 little
14 lamb

اگر چه در بیشتر این موراد، راحت تر است از تابع enumerate() استفاده شود. لینک Looping Techniques را ببینید. اگر فقط یک range را چاپ کنید، اتفاق عجیبی می افتد:

1>>> print(range(10))
1range(0, 10

شی باز گردانده شده توسط تابع range() به طرق مختلف به صورت یک لیست رفتار می کند، در حالی که واقعا لیست نیست. شی ای است که عناصر پی در پی دنباله مورد نظر را در زمان تکرار در حلقه باز می گرداند. اما واقعا یک لیست نیست، بدین ترتیب در ذخیره فضا صرفه جویی می کند. می گوییم چنین شی ای قابل تکرار است، یعنی به عنوان هدف برای توابع و ساختار هایی که انتظار چیزی را دارند که بتوان از آن عناصر ترتیبی به دست آورد تا هنگامی که عناصر خاتمه یابند ، مناسب است. دیدیم که عبارت for دارای این چنین ساختاری است، درحالی که یک مثال از یک تابع که یک شی قابل تکرار را پذیرفته تابع sum() است:

1>>> sum(range(4))  # 0 + 1 + 2 + 3
16

در ادامه با توابع بیشتری آشنا خواهیم شد که تکرار پذیر ها را به عنوان آرگومان دریافت می کنند و آنها را باز می گردانند. در انتها شاید کنجکاو باشید بدانید چگونه از یک range یک لیست بگیرید. و این راه حل است:

1>>> list(range(4))
1[0, 1, 2, 3]

در بخش ساختار های داده، جزییات بیشتری درباره list() ارائه می دهیم.

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

آموزش پایتون

۷۰ بازديد

پایتون یک زبان برنامه نویسی قوی و ساده برای یادگیری است. پایتون دارای ساختارهای داده سطح بالای کارآمد و یک راهکار ساده اما موثر برای برنامه نویسی شی گرا است. نحو ظریف پایتون و تایپ پویای آن، به همراه طبیعت مفسر گونه آن، پایتون را تبدیل به یک زبان ایده آل برای برنامه نویسی و توسعه سریع برنامه های کاربردی در بسیاری از حوزه ها و در اکثر پلتفورم ها کرده است. مفسر پایتون و کتابخانه استاندارد گسترده آن برای اکثر پلتفورم ها در وب سایت پایتون به آدرس 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 چاپ می کند.

1$ python3.8
1Python 3.8 (default, Sep 16 2015, 09:25:04)
1[GCC 4.8.2] on linux
1Type "help", "copyright", "credits" or "license" for more information.
1>>>

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

1>>>the_world_is_flat = True
1>>>if the_world_is_flat:
1...     print("Be careful not to fall off!")
1...
1Be careful not to fall off!

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

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

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

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

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

1# -*- coding: encoding -*-

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

1# -*- coding: cp1252 -*-

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

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

توجه !

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

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

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

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

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

تعدادی مثال:

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

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

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

اعداد

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

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

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

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

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

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

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

1>>>5 ** 2  # 5 squared
125
1>>>2 ** 7  # 2 to the power of 7
1128

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

1>>>width = 20
1>>>height = 5 * 9
1>>>width * height
1900

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

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

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

1>>> 4 * 3.75 - 1
114.0

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

1>>>tax = 12.5 / 100
1>>>price = 100.50
1>>>price * tax
112.5625
1>>>price + _
1113.0625
1>>>round(_, 2)
1113.06

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

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

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

1>>>'spam eggs'  # single quotes
1'spam eggs'
1>>>'doesn't'  # use ' to escape the single quote...
1"doesn't"
1>>>"doesn't"  # ...or use double quotes instead
1"doesn't"
1>>>'"Yes," they said.'
1'"Yes," they said.'
1>>>""Yes," they said."
1'"Yes," they said.'
1>>>'"Isn't," they said.'
1'"Isn't," they said.'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1>>>prefix + 'thon'
1'Python

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

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

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

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

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

1>>>s = 'supercalifragilisticexpialidocious'
1>>>len(s)
134

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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