logo

تقنيات الحلقات في بايثون

تدعم لغة Python تقنيات التكرار المتنوعة من خلال وظائف معينة مدمجة في حاويات متسلسلة مختلفة. تعتبر هذه الأساليب مفيدة جدًا في المقام الأول في البرمجة التنافسية وأيضًا في العديد من المشاريع التي تتطلب تقنية معينة مع حلقات تحافظ على البنية العامة للتعليمات البرمجية.  تم توفير الكثير من الوقت ومساحة الذاكرة حيث ليست هناك حاجة للإعلان عن المتغيرات الإضافية التي نعلن عنها في الطريقة التقليدية للحلقات.

أين يتم استخدامها؟

تعد تقنيات التكرار المختلفة مفيدة بشكل أساسي في الأماكن التي لا نحتاج فيها إلى معالجة بنية وترتيب الحاويات الإجمالية بدلاً من طباعة العناصر فقط لمثيل الاستخدام الفردي ولا يحدث أي تغيير في الحاوية. ويمكن استخدام هذا أيضًا في الحالات لتوفير الوقت.

تقنيات التكرار المختلفة باستخدام هياكل بيانات Python هي:  

الطريقة 1: استخدام التعداد ():   يتم استخدام enumerate() للتنقل عبر الحاويات التي تطبع رقم الفهرس مع القيمة الموجودة في هذا الفهرس المحدد.



Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value) 

الإخراج:

سلسلة جافا إلى منطقية
0 The  
1 Big
2 Bang
3 Theory
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['Geeks' 'for' 'Geeks' 'is' 'the' 'Best' 'Coding' 'Platform']): print(value end=' ') 

الإخراج:

Geeks for Geeks is the Best Coding Platform 

الطريقة 2: استخدام الرمز البريدي ():  يُستخدم zip() لدمج حاويتين أو أكثر لطباعة القيم بالتسلسل. الحلقة موجودة فقط حتى تنتهي الحاوية الأصغر. يمكن العثور على شرح تفصيلي لـ zip() و enumerate() هنا .

مثال 1: نوعان مختلفان من البيانات (listtuple)

Python
# python code to demonstrate working of zip() names = ['Deep' 'Sachin' 'Simran'] # list ages = (24 27 25) # tuple for name age in zip(names ages): print('Name: ' name) print('Age: ' age) print() 

الإخراج
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 

مثال 2: قائمتان متشابهتان لنوع البيانات

Python3
# python code to demonstrate working of zip() # initializing list questions = ['name' 'colour' 'shape'] answers = ['apple' 'red' 'a circle'] # using zip() to combine two containers # and print values for question answer in zip(questions answers): print('What is your {0}? I am {1}.'.format(question answer)) 

الإخراج:

What is your name? I am apple.  
What is your color? I am red.
What is your shape? I am a circle.

الطريقة 3: استخدام iteritem ():  يتم استخدام iteritems () للتنقل عبر القاموس لطباعة زوج قيمة مفتاح القاموس بشكل تسلسلي والذي يتم استخدامه قبل إصدار Python 3.

الطريقة الرابعة: استخدام العناصر (): تؤدي العناصر () مهمة مماثلة في القاموس لـ iteritems () ولكن لها عيوب معينة عند مقارنتها مع iteritems () .

  • إنها تستغرق وقتا طويلا جدا . إن استدعائها في القواميس الكبيرة يستهلك الكثير من الوقت.
  • يستغرق أ الكثير من الذاكرة . في بعض الأحيان يستهلك ضعف الذاكرة عند استدعائه في القاموس.

مثال 1:

دائرة الجامع كاملة
Python3
# python code to demonstrate working of items() d = {'geeks': 'for' 'only': 'geeks'} # iteritems() is renamed to items() in python3 # using items to print the dictionary key-value pair print('The key value pair using items is : ') for i j in d.items(): print(i j) 

الإخراج:

The key value pair using iteritems is :   
geeks for
only geeks

مثال 2:

Python3
# python code to demonstrate working of items() king = {'Ashoka': 'The Great' 'Chandragupta': 'The Maurya' 'Modi': 'The Changer'} # using items to print the dictionary key-value pair for key value in king.items(): print(key value) 

الإخراج
Ashoka The Great Chandragupta The Maurya Modi The Changer 

الطريقة 5: استخدام الفرز ():   يتم استخدام الترتيب () لطباعة الملف يتم ترتيب الحاوية . هو - هي لا يفرز الحاوية ولكن فقط قم بطباعة الحاوية بترتيب مفروز لمثيل واحد. استخدام يمكن دمج set() لإزالة التكرارات الأحداث.

مثال 1:

فك ترميز js base64
Python3
# python code to demonstrate working of sorted() # initializing list lis = [1 3 5 6 2 1 3] # using sorted() to print the list in sorted order print('The list in sorted order is : ') for i in sorted(lis): print(i end=' ') print('r') # using sorted() and set() to print the list in sorted order # use of set() removes duplicates. print('The list in sorted order (without duplicates) is : ') for i in sorted(set(lis)): print(i end=' ') 

الإخراج:

    The li   st in sorted order is :   
1 1 2 3 3 5 6
The list in sorted order (without duplicates) is :
1 2 3 5 6

مثال 2:

Python3
# python code to demonstrate working of sorted() # initializing list basket = ['guave' 'orange' 'apple' 'pear' 'guava' 'banana' 'grape'] # using sorted() and set() to print the list # in sorted order for fruit in sorted(set(basket)): print(fruit) 

الإخراج:

apple  
banana
grape
guava
guave
orange
pear

الطريقة 6: استخدام العكس ():  عكس () يستخدم لطباعة قيم ال الحاوية بالترتيب العكسي . ولا يعكس أي تغييرات في القائمة الأصلية

مثال 1:

Python3
# python code to demonstrate working of reversed() # initializing list lis = [1 3 5 6 2 1 3] # using reversed() to print the list in reversed order print('The list in reversed order is : ') for i in reversed(lis): print(i end=' ') 

الإخراج:

The list in reversed order is :   
3 1 2 6 5 3 1

مثال 2:

Python3
# python code to demonstrate working of reversed() # using reversed() to print in reverse order for i in reversed(range(1 10 3)): print(i) 

الإخراج:

7  
4
1
  • هذه التقنيات سريعة الاستخدام وتقلل من جهد البرمجة. لأن حلقات while تحتاج إلى تغيير بنية الحاوية بأكملها.
  • لا تتطلب تقنيات التكرار هذه أي تغييرات هيكلية في الحاوية. لديهم كلمات رئيسية تقدم الغرض الدقيق من الاستخدام. في حين أنه لا يمكن إجراء تنبؤات مسبقة أو تخمينات في حلقة while، أي أنه لا يمكن فهم الغرض بسهولة في لمحة.
  • تجعل تقنية التكرار الكود أكثر إيجازًا من استخدام التكرار أثناء التكرار.

تقنيات التكرار أثناء التكرار باستخدام عبارات if:

في هذا المثال نستخدم حلقة while لزيادة متغير يسمى count. داخل الحلقة نستخدم عبارة if للتحقق مما إذا كان العدد يساوي 3. إذا كان الأمر كذلك، فإننا نطبع رسالة.

شارع إلى كثافة العمليات

يقترب:

تهيئة متغير العدد إلى 0
استخدم حلقة while لتنفيذ مجموعة من التعليمات البرمجية بشكل متكرر طالما أن العدد أقل من 5
داخل الحلقة، استخدم عبارة if للتحقق مما إذا كان العدد يساوي 3
إذا كان العدد 3 اطبع رسالة
قم بزيادة العدد بمقدار 1 في نهاية كل تكرار

Python3
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1 

الإخراج
Count is 3


التعقيد الزمني: O(n) حيث n هو عدد التكرارات المطلوبة ليصل العدد إلى 5.

المساحة المساعدة: O(1) حيث يتم استخدام متغير واحد فقط (عدد) في جميع أنحاء الكود.

إنشاء اختبار