مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

طبقه بندی موضوعی
بایگانی

۴۶ مطلب با موضوع «آموزش دروس» ثبت شده است

توابع کاربردی

پایتون دارای بسیاری از توابع و روش های مفید درونیست که برای انجام وظایف مشترک است.
join – پیوستن به یک لیست از رشته ها با رشته دیگری به عنوان جدا کننده.
replace – جایگزین یک رشته در رشته با دیگری است.
start with و endswith – تعیین اینکه آیا زیر رشته در ابتدای و پایان رشته وجود دارد.
برای تغییر case یک رشته، می توانید از حروف بزرگ و کوچک استفاده کنید.
روش split ، مخالف join است، و یک رشته را با یک جداکننده خاص به یک لیست تبدیل می کند.
بعضی مثالها:

print(", ".join(["spam", "eggs", "ham"]))
#prints "spam, eggs, ham"

print("Hello ME".replace("ME", "world"))
#prints "Hello world"

print("This is a sentence.".startswith("This"))
# prints "True"

print("This is a sentence.".endswith("sentence."))
# prints "True"

print("This is a sentence.".upper())
# prints "THIS IS A SENTENCE."

print("AN ALL CAPS SENTENCE".lower())
#prints "an all caps sentence"

print("spam, eggs, ham".split(", "))
#prints "['spam', 'eggs', 'ham']"

برای پیدا کردن حداکثر یا حداقل برخی از اعداد یا یک لیست، می توانید از max یا min استفاده کنید.
برای پیدا کردن فاصله از یک عدد از صفر (مقدار مطلق آن)، از abs استفاده کنید.
برای گرد کردن یک عدد به تعداد مشخصی از اعشار، از round استفاده کنید.
برای پیدا کردن مجموع لیست، از sum استفاده کنید.
بعضی مثالها:

print(min(1, 2, 3, 4, 0, 2, 1))
print(max([1, 4, 9, 2, 5, 6, 8]))
print(abs(-99))
print(abs(42))
print(sum([1, 2, 3, 4, 5]))

خروجی:

>>>
0
9
99
42
15
>>>

اغلب در اظهارات شرطی مورد استفاده قرار می گیرد، همه و هر یک را به عنوان یک استدلال می گیرند، و همگی و یا یکی از آن ها مقدار true را در صورتی که برابر با مقدار درست باشد بر می گرداند.
تابع شمارش یا enumerate را می توان برای تکرار از طریق ارزش ها و شاخص های یک لیست به طور همزمان استفاده می شود.
مثال:

nums = [55, 44, 33, 22, 11]

if all([i > 5 for i in nums]):
   print("All larger than 5")

if any([i % 2 == 0 for i in nums]):
   print("At least one is even")

for v in enumerate(nums):
   print(v)

خروجی:

>>>
All larger than 5
At least one is even
(0, 55)
(1, 44)
(2, 33)
(3, 22)
(4, 11)
>>>
۰ نظر موافقین ۰ مخالفین ۰ ۱۲ تیر ۹۸ ، ۱۱:۳۹
سعید دامغانیان

string format

قالب بندی رشته یا String formatting

تا کنون، برای ترکیب رشته ها و غیر رشته ها در پایتون، غیر رشته ها را به رشته تبدیل کرده و آنها را به هم اضافه کرده اید.
قالب بندی رشته (یا string formatting) یک راه قوی تر برای غیر رشته ها ،درون رشته ها را می سازد. قالب بندی رشته با استفاده از روش های فرمت رشته ،برای جایگزینی تعدادی از استدلال ها در رشته است.
مثال:

# string formatting
nums = [4, 5, 6]
msg = "Numbers: {0} {1} {2}". format(nums[0], nums[1], nums[2])
print(msg)

خروجی:

>>>
Numbers: 4 5 6
>>>

نکته:هر استدلال تابع فرمت در رشته در موقعیت متناظر قرار می گیرد، که با استفاده از جفت های مجزا {} مشخص می شود.

قالب بندی رشته نیز با استدلال های نامگذاری انجام می شود.
مثال:

a = "{x}, {y}".format(x=5, y=12)
print(a)

خروجی:

>>>
5, 12
>>>
۰ نظر موافقین ۰ مخالفین ۰ ۱۲ تیر ۹۸ ، ۱۱:۳۸
سعید دامغانیان

list comprehensions

درک مطلب ها یک راه مفید برای ایجاد سریع لیست هایی است که محتویات آنها به یک قاعده ساده احتیاج دارند.
به عنوان مثال، ما می توانیم موارد زیر را انجام دهیم:

# a list comprehension
cubes = [i**3 for i in range(5)]

print(cubes)

خروجی:

>>>
[0, 1, 8, 27, 64]
>>>

نکته:فراخوانی فهرست توسط نماد set-builder در ریاضیات الهام گرفته شده است.

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

evens=[i**2 for i in range(10) if i**2 % 2 == 0]

print(evens)

خروجی:

>>>
[0, 4, 16, 36, 64]
>>>

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

even = [2*i for i in range(10**100)]

خروجی:

>>>
MemoryError
>>>

نکته:این مسئله توسط ژنراتورها حل شده است که در ماژول بعدی پوشش داده شده است.

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ تیر ۹۸ ، ۱۱:۳۶
سعید دامغانیان

list slices

لیست برش ها یک روش پیشرفته تر برای بازیابی مقادیر از یک لیست را فراهم می کند. برش فهرست اصلی شامل index سازی یک لیست با دو عدد صحیح جدا شده است. یک لیست جدید با تمام مقادیر موجود در لیست قدیمی بین شاخص ها را نشان می دهد.
مثال:

squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[2:6])
print(squares[3:8])
print(squares[0:1])

خروجی:

>>>
[4, 9, 16, 25]
[9, 16, 25, 36, 49]
[0]
>>>

نکته:همانند آرگومان هایی برای Range، اولین شاخص ارائه شده در یک slice در نتیجه گنجانده شده است، اما در slice دوم آن نیست.

اگر شماره اول در یک slice حذف شده باشد،مقدارش برای شروع لیست در نظر گرفته شده است.
اگر عدد دوم حذف شده باشد، مقدارش برای پایان در نظر گرفته شده است.
مثال:

squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[:7])
print(squares[7:])

خروجی:

>>>
[0, 1, 4, 9, 16, 25, 36]
[49, 64, 81]
>>>

نکته:sliceنیز می تواند بر روی tuple نیز انجام شود.

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

squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[::2])
print(squares[2:8:3])

خروجی:

>>>
[0, 4, 16, 36, 64]
[4, 25]
>>>

نکته:[2: 8: 3] شامل عناصر شروع از 2 تا 8 با واسته 3 تایی است.

مقادیر منفی را می توان در slice لیست (و فهرست بندی عادی لیست) استفاده کرد. وقتی مقادیر منفی برای مقادیر اول و دوم در یک تکه (یا یک شاخص عادی) استفاده می شود، از پایان لیست محاسبه می شود.

squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[1:-1])

خروجی:

>>>
[1, 4, 9, 16, 25, 36, 49, 64]
>>>

نکته:اگر یک مقدار منفی برای این مرحله استفاده شود، slice برعکس انجام خواهد شد.
با استفاده از [:: - 1] به عنوان یک slice یک روش رایج و اصیل برای تبدیل یک لیست است.

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ تیر ۹۸ ، ۱۱:۳۵
سعید دامغانیان

u30753_Untitled-1.jpg

۲ نظر موافقین ۰ مخالفین ۰ ۱۲ تیر ۹۸ ، ۱۱:۲۵
سعید دامغانیان

Tuple در پایتون

Tuple ها به لیستها بسیار شبیه هستند، به جز اینکه Tuple ها غیرقابل تغییر هستند .
همچنین، آنها با استفاده از پرانتز، به جای براکت مربعی، ایجاد می شوند.
مثال:

words = ("spam", "eggs", "sausages",)

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

print(words[0])

تلاش برای تخصیص یک مقدار در یک Tuple، یک TypeError را ایجاد می کند.

words[1] = "cheese"

خروجی:

>>>
TypeError: 'tuple' object does not support item assignment
>>>

نکته:مانند لیست ها و dictionary ها، tuple ها را می توان در داخل یکدیگر قرار داد.

tuple ها را می توان فقط با جدا کردن مقادیر با کاما و بدون پرانتز ایجاد کرد.
مثال:

my_tuple = "one", "two", "three"
print(my_tuple[0])

خروجی:

>>>
one
>>>

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

tpl = ()

نکته:tuple ها سریعتر از لیست ها هستند اما قابل تغییر نیستند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۸ ، ۲۲:۰۱
سعید دامغانیان

توابع dictionary

درست مانند لیست ها، کلید های dictionary را می توان به مقادیر مختلف اختصاص داد.
با این حال، بر خلاف لیست ها، یک کلید dictionary جدید نیز می تواند یک مقدار تعیین شود، نه فقط آنهایی که قبلا وجود داشته اند.

squares = {1: 1, 2: 4, 3: "error", 4: 16,}
squares[8] = 64
squares[3] = 9
print(squares)

خروجی:

{8: 64, 1: 1, 2: 4, 3: 9, 4: 16}

برای تعیین اینکه آیا یک کلید در یک dictionary است، می توانید از in و not in استفاده کنید، همانطور که می توانید برای یک لیست نیز استفاده کنید.
مثال:

nums = {
  1: "one",
  2: "two",
  3: "three",
}
print(1 in nums)
print("three" in nums)
print(4 not in nums)

خروجی:

>>>
True
False
True
>>>

یکی از متد های مفید پایتون که در Dictionary می باشد get است. این همان چیزی است که نمایه سازی (index) می کند، اما اگر کلید در dictionary یافت نشد، مقدار دیگر مشخص شده را به جای آن (به صورت پیش فرض “none”) به دست می آید.
مثال:

pairs = {1: "apple",
  "orange": [2, 3, 4], 
  True: False, 
  None: "True",
}

print(pairs.get("orange"))
print(pairs.get(7))
print(pairs.get(12345, "not in dictionary"))

خروجی:

>>>
[2, 3, 4]
None
not in dictionary
>>>
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۸ ، ۲۲:۰۰
سعید دامغانیان

dictionary در پایتون

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

ages = {"Dave": 24, "Mary": 42, "John": 58}
print(ages["Dave"])
print(ages["Mary"])

خروجی:

>>>
24
42
>>>

نکته:هر عنصری را در dictionary می توان به حالت keyLvalue نشان داد.

تلاش برای باز کردن فهرست یک کلید که بخشی از dictionary نیست، KeyError را باز می کند.
مثال:

primary = {
  "red": [255, 0, 0], 
  "green": [0, 255, 0], 
  "blue": [0, 0, 255], 
}

print(primary["red"])
print(primary["yellow"])

خروجی:

>>>
[255, 0, 0]

KeyError: 'yellow'
>>>

همانطور که می بینید، یک dictionary می تواند هر نوع داده را به عنوان مقادیر ذخیره کند.

نکته:یک dictionary خالی را با {} نشان می دهند.

تنها اشیاء غیر قابل تغییر می توانند به عنوان کلید های dictionary مورد استفاده قرار گیرند. اشیاء غیر قابل تعویض هستند که قابل تغییر نیستند. تاکنون، تنها اشیا قابل تغییر که شما در آن قرار داده اید، لیست ها و dictionary ها هستند. تلاش برای استفاده از یک شیء قابل تغییر به عنوان یک کلید واژه دیکشنری سبب ایجاد TypeError می شود.

bad_dict = {
  [1, 2, 3]: "one two three", 
}

خروجی:

>>>
TypeError: unhashable type: 'list'
>>>
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۸ ، ۲۱:۵۸
سعید دامغانیان

استفاده از None در پایتون

None برای نشان دادن عدم وجود یک مقدار استفاده می شود.
این در زبان های دیگر برنامه نویسی مشابه است.
مانند دیگر مقادیر خالی مانند 0، [] و رشته خالی، زمانی که به یک متغیر بولی تبدیل می شود false خواهد بود.
هنگامی که در کنسول Python وارد شدید، به عنوان رشته خالی نمایش داده می شود.

>>> None == None
True
>>> None
>>> print(None)
None
>>>

None در واقع توسط هر تابعی که به عنوان مقدار بازگردانده می شود که هیچ چیزی برای برگرداندن ندارد.

def some_func():
   print("Hi!")

var = some_func()
print(var)

خروجی:

>>>
Hi!
None
>>>
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۸ ، ۲۱:۵۵
سعید دامغانیان

کار کردن با فایل

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

try:
   f = open("filename.txt")
   print(f.read())
finally:
   f.close()

این تضمین می کند که فایل همیشه بسته است، حتی اگر یک خطا رخ دهد.

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

with open("filename.txt") as f:
   print(f.read())

نکته:فایل به طور خودکار در انتهای بیانیه With بسته می شود، حتی اگر با Exception برخورد کند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۸ ، ۲۱:۵۳
سعید دامغانیان