یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام
بستن تبلیغات
دوره تسلط بر پایتون ؛ آموزش پروژه محور برای حرفه ای ها

با آموزش حضوری و آنلاین مقدماتی تا پیشرفته پایتون , محبوب‌ترین زبان برنامه‌نویسی دنیا در محیطی عملی کاربردی و پروژه محور وارد دنیای برنامه نویسی شوید

مشاهده بیشتر
دوره آموزش ماشین لرنینگ

اگه پایتون بلدی و می‌خوای وارد دنیای هوش مصنوعی بشی، این دوره مخصوص توئه! با آموزش پروژه‌محور و همراهی اساتید حرفه‌ای، یاد بگیر چطور از هوش مصنوعی تو زمینه‌هایی مثل پزشکی، بورس و املاک استفاده کنی.

مشاهده بیشتر
یادگیری عمیق از پایه تا پیشرفته، همراه با پروژه‌های واقعی!

اگه یادگیری ماشین بلدی و آماده‌ای وارد چالش‌های حرفه‌ای بشی، دوره یادگیری عمیق پروژه‌محور برای توئه! طراحی شبکه‌های عصبی و کار روی پروژه‌های واقعی مثل تشخیص تصویر و پردازش زبان رو اینجا یاد می‌گیری.

مشاهده بیشتر
دوره پروژه محور آموزش جنگو

با این دوره، Django رو از پایه شروع کن و به یک حرفه‌ای تبدیل شو! یاد بگیر چطور با معماری MVT، پایگاه داده و RESTful API کار کنی، پروژه‌های واقعی بسازی و آن‌ها رو روی وب سرور مستقر کنی!

مشاهده بیشتر

بررسی اجمالی برخی از دستورات در پایتون

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


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

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

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

تعدادی مثال:

1
2
3
4
5
6
    # this is the first comment
    spam = 1  # and this is the second comment
              # ... and now a third!
    text = "# This is not a comment because it's inside quotes."
     
<button></button>

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


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

اعداد


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

نحوه نگارش عبارات سر راست است: عملگر های + ، - ، * و / همانند بسیاری از زبان های دیگر کار می کند (به عنوان مثال پاسکال یا C). از پرانتز ( () ) برای دسته بندی استفاده می شود. برای مثال:

1
2
3
4
5
6
7
8
9
    >>> 2 + 2
    4
    >>> 50 - 5*6
    20
    >>> (50 - 5*6) / 4
    5.0
    >>> 8 / 5  # division always returns a floating point number
    1.6
<button></button>

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


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

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

1
2
3
4
5
6
7
8
9
10
    >>> 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
<button></button>

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

1
2
3
4
5
6
    >>> 5 ** 2  # 5 squared
    25
    >>> 2 ** 7  # 2 to the power of 7
    128
     
<button></button>

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

1
2
3
4
5
    >>> width = 20
    >>> height = 5 * 9
    >>> width * height
    900
<button></button>

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

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

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

1
2
3
    >>> 4 * 3.75 - 1
    14.0
<button></button>

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

1
2
3
4
5
6
7
8
9
    >>> tax = 12.5 / 100
    >>> price = 100.50
    >>> price * tax
    12.5625
    >>> price + _
    113.0625
    >>> round(_, 2)
    113.06
<button></button>

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

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
    >>> 'spam eggs'  # single quotes
    'spam eggs'
    >>> 'doesn\'t'  # use \' to escape the single quote...
    "doesn't"
    >>> "doesn't"  # ...or use double quotes instead
    "doesn't"
    >>> '"Yes," they said.'
    '"Yes," they said.'
    >>> "\"Yes,\" they said."
    '"Yes," they said.'
    >>> '"Isn\'t," they said.'
    '"Isn\'t," they said.'
<button></button>

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

1
2
3
4
5
6
7
8
9
10
11
    >>> '"Isn\'t," they said.'
    '"Isn\'t," they said.'
    >>> print('"Isn\'t," they said.')
    "Isn't," 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.
<button></button>

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

1
2
3
4
5
6
    >>> 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
<button></button>

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

1
2
3
4
5
6
    print("""\
    Usage: thingy [OPTIONS]
         -h                        Display this usage message
         -H hostname               Hostname to connect to
    """)
<button></button>

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

1
2
3
4
    Usage: thingy [OPTIONS]
    -h                        Display this usage message
    -H hostname               Hostname to connect to
<button></button>

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

1
2
3
4
    >>> # 3 times 'un', followed by 'ium'
    >>> 3 * 'un' + 'ium'
    'unununium'
<button></button>

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

1
2
3
    >>> 'Py' 'thon'
    'Python'
<button></button>

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

1
2
3
4
5
    >>> text = ('Put several strings within parentheses '
    ...         'to have them joined together.')
    >>> text
    'Put several strings within parentheses to have them joined together.'
<button></button>

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

1
2
3
4
5
6
7
8
9
10
11
12
    >>> prefix = 'Py'
    >>> prefix 'thon'  # can't concatenate a variable and a string literal
      File "<stdin>", line 1
        prefix 'thon'
                    ^
    SyntaxError: invalid syntax
    >>> ('un' * 3) 'ium'
      File "<stdin>", line 1
        ('un' * 3) 'ium'
                       ^
    SyntaxError: invalid syntax
</stdin></stdin><button></button>

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

1
2
3
    >>> prefix + 'thon'
    'Python'
<button></button>

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

1
2
3
4
5
6
    >>> word = 'Python'
    >>> word[0]  # character in position 0
    'P'
    >>> word[5]  # character in position 5
    'n'
<button></button>

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

1
2
3
4
5
6
7
    >>> word[-1]  # last character
    'n'
    >>> word[-2]  # second-last character
    'o'
    >>> word[-6]
    'P'
<button></button>

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

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

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

1
2
3
4
5
    >>> word[:2] + word[2:]
    'Python'
    >>> word[:4] + word[4:]
    'Python'
<button></button>

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

1
2
3
4
5
6
7
    >>> 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'
<button></button>

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

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

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

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

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

1
2
3
4
5
    >>> word[4:42]
    'on'
    >>> word[42:]
    ''
<button></button>

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

1
2
3
4
5
6
7
8
9
    >>> word[0] = 'J'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment
    >>> word[2:] = 'py'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment
</module></stdin></module></stdin><button></button>

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

1
2
3
4
5
    >>> 'J' + word[1:]
    'Jython'
    >>> word[:2] + 'py'
    'Pypy'
<button></button>

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

1
2
3
4
    >>> s = 'supercalifragilisticexpialidocious'
    >>> len(s)
    34
<button></button>

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


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

1
2
3
4
    >>> squares = [1, 4, 9, 16, 25]
    >>> squares
    [1, 4, 9, 16, 25]
<button></button>

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

1
2
3
4
5
6
7
    >>> squares[0]  # indexing returns the item
    1
    >>> squares[-1]
    25
    >>> squares[-3:]  # slicing returns a new list
    [9, 16, 25]
<button></button>

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

1
2
3
    >>> squares[:]
    [1, 4, 9, 16, 25]
<button></button>

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

1
2
3
    >>> squares + [36, 49, 64, 81, 100]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
<button></button>

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

1
2
3
4
5
6
7
    >>> 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]
<button></button>

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

1
2
3
4
5
    >>> 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]
<button></button>

تخصیص به برش ها نیز امکان پذیر است. این امر حتی می تواند سایز لیست را تغییر دهد یا کلا آن را خالی کند.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    >>> 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
    []
<button></button>

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

1
2
3
4
    >>> letters = ['a', 'b', 'c', 'd']
    >>> len(letters)
    4
<button></button>

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

1
2
3
4
5
6
7
8
9
10
    >>> 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'
<button></button>

1403/05/31 2235 701
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...