التنبيهات التالية ظهرت :
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 94 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$today_rel - Line: 474 - File: inc/functions.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions.php 474 errorHandler->error
/global.php 489 my_date
/showthread.php 28 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 573 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 573 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined variable $can_access_moderationqueue - Line: 749 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 749 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined array key "avatartype" - Line: 889 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 889 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined array key "avatartype" - Line: 889 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 889 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined variable $awaitingusers - Line: 34 - File: global.php(956) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php(956) : eval()'d code 34 errorHandler->error
/global.php 956 eval
/showthread.php 28 require_once
Warning [2] Undefined array key "style" - Line: 1021 - File: global.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php 1021 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5196 - File: inc/functions.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions.php 5196 errorHandler->error
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$bottomlinks_forumteam - Line: 2 - File: global.php(1033) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php(1033) : eval()'d code 2 errorHandler->error
/global.php 1033 eval
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$bottomlinks_markread - Line: 15 - File: global.php(1056) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/global.php(1056) : eval()'d code 15 errorHandler->error
/global.php 1056 eval
/showthread.php 28 require_once
Warning [2] Undefined array key "mybb" - Line: 1997 - File: inc/functions.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions.php 1997 errorHandler->error
/inc/functions_indicators.php 41 my_set_array_cookie
/showthread.php 669 mark_thread_read
Warning [2] Undefined property: MyLanguage::$ratings_update_error - Line: 5 - File: showthread.php(772) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php(772) : eval()'d code 5 errorHandler->error
/showthread.php 772 eval
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions_user.php 816 is_member
/inc/functions_post.php 416 purgespammer_show
/showthread.php 1124 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(484) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions_post.php(484) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 484 eval
/showthread.php 1124 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 672 - File: inc/functions_post.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions_post.php 672 errorHandler->error
/showthread.php 1124 build_postbit
Warning [2] Undefined array key "showimages" - Line: 758 - File: inc/functions_post.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions_post.php 758 errorHandler->error
/showthread.php 1124 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 763 - File: inc/functions_post.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/inc/functions_post.php 763 errorHandler->error
/showthread.php 1124 build_postbit
Warning [2] Undefined array key "invisible" - Line: 1565 - File: showthread.php PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php 1565 errorHandler->error
Warning [2] Undefined property: MyLanguage::$post_deleted_error - Line: 21 - File: showthread.php(1597) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 21 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $threadnotesbox - Line: 33 - File: showthread.php(1597) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 33 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $addremovesubscription - Line: 82 - File: showthread.php(1597) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 82 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $thread_deleted - Line: 104 - File: showthread.php(1597) : eval()'d code PHP 8.1.2-1ubuntu2.17 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 104 errorHandler->error
/showthread.php 1597 eval




تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
المتتاليات sequences
#1
# المتتاليات sequences



هي أساسا مجموعة الانواع types التالية: list - tuple - str - bytes لكنها تجمع أنواع أخرى غير هذه.

تعريفها: المتتاليات هي مجموعة محددة ومرتبة من العناصر المؤشرة من صفر الى ن - 1 إذا كان عدد العناصر يساوي ن.

نبدأ بمتتالية تمثل سلسلة نصية str:

كود :
s = 'egg, bacon'
يمكن الوصول الى كل عنصر على حده:

كود :
s[0]        # أول عنصر
s[9]        # آخر عنصر
لتحديد عدد عناصر المتتالية نستخدم الدالة len

كود :
len(s)
يمكن التحقق من عضوية عنصر الى المتتالية بطريقة قريبة من اللغة الطبيعية عبر:

كود :
'egg' in s
'egg' not in s
يمكن تجميع (concatenate) متتاليات (من نفس النوع، انظر الانواع أعلاه) بطريقة سهلة كما لو أنها عملية جمع: سينتج عن ذلك متتالية جديدة من نفس النوع. في المثال التالي لن تتغير قيمة المتغير s (الذي هو اصلا متتالية من النوع النصي غير القابل للتعديل بدون نسخ) لكن سنحصل على متتالية جديدة اذا اردنا حفظها فلابد من ربطها بمتغير s2 مثلا:

كود :
s + ' and beans'
هناك عدة عمليات أخرى يمكن تنفيذها على المتتاليات، على سبيل المثال:

- تحديد مؤشر اول ظهور لعنصر في المتتالية (تنبيه: index ترجع خطأ اذا لم تجد ما تبحث عنه)

كود :
s.index('g')
s.index('x')      # Error !
- حساب عدد المرات التي يتكرر فيها عنصر

كود :
s.count('g')
- الدالتان min و max لتحديد أصغر أو أكبر عنصر:

كود :
min(s)
max(s)
-يمكن تنفيذ عملية نسخ (shallow copy) عبر عملية الضرب (من المهم مزيد البحث عن الفرق بين shallow copy و deep copy)

كود :
s * 2
'x' * 30


## التقطيع/الشرائح: slicing

هذه العملية هامة جدا ومستخدمة بكثرة في بيثون، وهي ترد الينا متتالية جديدة من نفس النوع (ما يحدث هو عملية نسخ shallow copy). الحد الايسر مضمّن دائما والحد الايمن مستثنى دائما: اقرأها رياضيا هكذا دائما
كود :
s[ a:b [

### أمثلة

كود :
s = 'egg, bacon'
s[0:3]
s[:3]
s[5:10]
s[5:]
s[:]
العملية الاخيرة هي عملية نسخ سطحي (shallow copy) للمتتالية.

### مزيد من الامثلة عبر اضافة عدد الخطوات

كود :
s[0:10:2]
s[::2]
s[:8:3]
s[2::3]
s[100:200]
هذا المثال الاخير غريب نوعا ما، فالمتتالية s لا تحتوي على مؤشرات لـ 100 عنصر ورغم ذلك لم ترد الينا خطأ، بل فقط متتالية فارغة من نفس نوع المتتالية الاصلية: هنا ردت الينا سلسلة نصية فارغة لأن المتتالية s من نوع سلسلة نصية، في المثال التالي لدينا متتالية من نوع قائمة (المتغير من نوع قائمة يقبل عناصر من انواع غير متجانسة وحتى تعبير برمجي او دالة أخرى كما هو الحال مع آخر ثلاثة عناصر فيها)

كود :
mlist = [1, 2, 'a', 'bug', 12.5, {'January':31, 'February':28, 'March':31, 'April':30}, ('fname', 'lname', 'ntel'), s, set(s), [c for c in 'Hello']]
mlist
mlist[0:3]
mlist[:3]
mlist[5:10]
mlist[5:]
mlist[:]
### تنبيه: هذه الأخيرة تقوم بنسخ سطحي فقط للقائمة...

كود :
mlist[0:10:2]
mlist[::2]
mlist[:8:3]
mlist[2::3]
mlist[5:100]


### لنتحدث عن المؤشرات السالبة



كود :
s[-10: -7]
المؤشرات السالبة هي كالموجبة غير أنها تبدأ من آخر المتتالية: في المثال طلبنا نسخة من العناصر انطلاقا من -10 مضمّنة الى -7 مستثناة

(-1 هو آخر عنصر في المتتالية لعرضه نستخدم الطريقة التالية)

كود :
s[-10:]
المؤشرات السالبة لا تعني تصفح المتتالية من آخرها الى اولها: التصفح يتم دائما من اول المتتالية الى آخرها (أي من اليسار الى اليمين)، وبذلك يكون العنصر صاحب المؤشر 0 هو نفسه العنصر ذو المؤشر -len()

كود :
s[-len(s):]
s[:len(s)]
s[:-3]
الآن اذا رغبنا في نسخة مقلوبة من المتتالية (أو جزء منها) نستخدم عدد خطوات سلبي لكي نتنقل من اليمين الى اليسار:

كود :
s[::-1]
s[2:0:-1]
انتبه الى أننا هذه المرة نستثني العنصر صفر، فاذا اردناه ضمن النسخة الجزئية المقلوبة نختار خطوات سلبية بداية من المؤشر 2 الى البداية هكذا :

كود :
s[2::-1]
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف