ماژول itertools
آشنایی با ماژول itertools
ماژول itertools یک کتابخانه استاندارد است که شامل چندین توابع است که در برنامه نویسی کاربردی مفید هستند. یک نوع عملکردی که تولید می کند، تکرار کننده های بی نهایت است. شمارش تابع بطور بی نهایت از یک مقدار محاسبه می شود. چرخه تابع بی نهایت از طریق یک تکرار (به عنوان مثال یک لیست یا رشته) تکرار می شود. تابع تکرار را، به صورت بی نهایت و یا تعداد مشخصی از دفعات تکرار می کند. مثال:
from itertools import count
for i in count(3):
print(i)
if i >=11:
break
خروجی:
>>>
3
4
5
6
7
8
9
10
11
>>>
عملکردهای زیادی در itertools ها وجود دارد که بر روی آن کار می کنند،همچون map و filter. بعضی مثالها: takewhile - موارد را از یک تکرار طول می گیرد در حالی که یک تابع پیش بینی شده True می شود؛ Chain - چند iterable را با هم ترکیب و یک بزرگترش را می سازد. accumulate - یک مقدار مجموع از تمام ارزش های در حال اجرا باز می گرداند.
from itertools import accumulate, takewhile
nums = list(accumulate(range(8)))
print(nums)
print(list(takewhile(lambda x: x<= 6, nums)))
خروجی:
>>>
[0, 1, 3, 6, 10, 15, 21, 28]
[0, 1, 3, 6]
>>>
همچنین توابع ترکیبی چندگانه در intertool وجود دارد، مانند محصول و جایگزینی. اینها هنگامی استفاده می شود که شما می خواهید یک کار را با تمام ترکیبات ممکن از برخی موارد انجام دهید. مثال:
from itertools import product, permutations
letters = ("A", "B")
print(list(product(letters, range(2))))
print(list(permutations(letters)))
خروجی:
>>>
[('A', 0), ('A', 1), ('B', 0), ('B', 1)]
[('A', 'B'), ('B', 'A')]
>>>
سلام آقای بیگدلی ممنون از آموزش کاربردیتان بنده در تلاش بودم تا یک برنامه بنویسم ولی در یکجا به مشکل برخوردم بنده میخوام اگر یک شرط برقرار بود بره از اول فایل رو بخونه و بیاد جلو برای اینکار باید چیکار کنم باتشکر؟
می تونید فایلی که مد نظرتون هستش رو با در نظر گرفتن دستور subproccess و تحت command line مجدد فراخونی کنید
سلام و عرض ادب خسته نباشید
چطور میشه برنامه ای درست کرد که از کاربر مقدار پولی رو بگیره (مثلا 60000 تومن) بعد تمام حالت های ممکن
پرداخت اون با اسکناس 50000 و 10000 و 5000 تومن رو به ما نمایش بده؟
قطعا نمی تونم اینجا توضیح بدم و بهتره که قبلش کمی جست و جو کنین اینترنت رو چون برنامه ای که می خواید مشابه زیاد داره