قواميس بايثون

في هذا الدرس سنكلم عن قواميس بايثون في مزيد من التفاصيل .
قواميس بايثون تحتوي على مفاتيح وقيمها وهي قابلة للتغيير أو التبديل ويمكن أن تحتوي على عدة أنواع من البيانات ، ويتم تسمية القواميس في لغات البرمجة الأخري بالمصفوفات .
المفاتيح في القواميس يجب أن تكون كائنات ثابتة مثل السلاسل أو الأرقام كما لا يجب أن تتكرر المفاتيح في نفس القاموس .

 
إنشاءالقاموس

weekend = { "Fri": "Friday", "Sat": "Saturday" }
vals = dict(one=1, two=2)
capitals = {}
capitals["Algeria"] = "Alger"
capitals["Morocco"] = "ٌRabat"
capitals["Tunisia"] = "Tunisia"


print weekend
print vals
print capitals

في المثال السابق قمنا بإنشاء ثلاثة قواميس بثلاثة طرق مختلفة ثم قمنا بعرض محتويات تلك القواميس باستخدام الدالة print
 

weekend = { "Fri": "Friday", "Sat": "Saturday" }

في هذا المثال قمنا بإنشاء قاموس خاص بنهاية الأسبوع بطريقة التدوين الحرفي حيث يتم كتابة كل محتويات القاموس المفتاح والقيمة داخل القوسين {}ويتم كتابة المفاتيح والقيم بين العلامة ” “
ويم الفصل بينهما ب النقطتين : حيث Fri هي المفتاح و Friday هي القيمة .

vals = dict(one=1, two=2)

في المثال الثاني قمنا بإنشاء القاموس باستخدام الدالة dict()

capitals = {}
capitals["Algeria"] = "Alger"
capitals["Morocco"] = "ٌRabat"
capitals["Tunisia"] = "Tunisia"

في هذا المثال قمنا بإنشاء قاموس فارغ ثم بدانا بإضافة ثلاثة أزواج إلى القاموس حيث يتواجد المفتاح بين العلامتين [] والقيمة تتواجد على يمين علامة التعيين =.

العمليات الأساسية

في المثال التالي سنقوم بعرض بعض العمليات الأساسية المتعلقة بالقواميس على بايثون.
basket = { 'oranges': 12, 'pears': 5, 'apples': 4 }

basket['bananas'] = 5

print basket
print "There are %d various items in the basket" % len(basket)

print basket['apples']
basket['apples'] = 8
print basket['apples']

لدينا سلة تحتوي على فواكه مختلفة  وسنقوم بأجراء بعض العمليات على هذا القاموس .

basket = { 'oranges': 12, 'pears': 5, 'apples': 4 }

حسنا قاموس السلة تم إنشاءه ويحتوي على ثلاثة مفاتيح بقيمها.
 

basket['bananas'] = 5

قمنا بإضافة مفتاح وقيمة أخرى إلى القاموس حيث bananas مفتاح و 5 قيمة المفتاح .
 

print "There are %d various items in the basket" % len(basket)

الدالة len ستعطينا عدد المفاتيح الموجودة على القاموس.
 

print basket['apples']

عرض قيمة المفتاح apples.

basket['apples'] = 8

قمنا بتغيير قيمة المفتاح appels لتصبح 8.

المفاتيح والقيم

لكي نقوم بعرض مفاتيح أو قيم قاموس ما نقوم بعمل مايلي:
domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary",
    "us": "United States", "no": "Norway"  }

print domains.keys()# عرض جميع مفاتيح القاموس فقط
print domains.values()# عرض جميع قيم القاموس فقط  
print domains.items()#عرض جميع مفاتيح وقيم القاموس

انتـــــــــــهى.

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

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

مثال بسيط عن كيفية استخدام المفاتيح والقيم في قواميس بايثون.

>>> data = {'x': 1, 'y': 2, 'z': 3}

>>> for d in data.items():
... print d
...
('y', 2)
('x', 1)
('z', 3)

>>> for k, v in data.items():
... print k, v
...
y 2
x 1
z 3

>>> data.keys()
['y', 'x', 'z']

>>> data.values()
[2, 1, 3]

>>> data.items()
[('y', 2), ('x', 1), ('z', 3)]

>>> dict(data.items())
{'y': 2, 'x': 1, 'z': 3}

>>> for d in data.items():
... print list(d)
...
['y', 2]
['x', 1]
['z', 3]

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

اضافة وازالة عناصر من قوائم بايثون

نأخذ قائمة على سبيل المثال

big_maghreb = ["Morocco", "Algeria", "Tunisia"]

الآن سنقوم بعرض محتويات القائمة باستخدام حلقة for
 

big_maghreb = ["Morocco", "Algeria", "Tunisia"]
for country in big_maghreb:
    print country

وستكون النتيجة :

Morocco
Algeria
Tunisia
الآن سنقوم بإضافة بلد أخر ينتمي إلى المغرب العربي الكبير إلى القائمة 
big_maghreb = ["Morocco", "Algeria", "Tunisia"]
big_maghreb.append("Mauritania")
for country in big_maghreb:
    print country

وستكون النتيجة :

Morocco
Algeria
Tunisia
Mauritania

 وكما تلاحظون عند إضافة عنصر إلى القائمة يتم إضافته افتراضيا في مؤخرة القائمة ولكن يمكن اضافة أي عنصر في أي مكان تريد على القائمة مثال:
big_maghreb.insert(0, "Mauritania")

باستخدام insert يمكننا اضافة أي عنصر في أي مكان نريد على القائمة وفي المثال السابق سيتم اضافة Mauritania في المركز الأول حيث يتم حساب مراكز العناصر على القوائم ابتداءا من الصفر.
وكما يمكننا ايضا حذف اي عنصر من القائمة باستخدام remove وبدون أي إطالة دعونا نأخذ مثال أخر:

numbers = [5, 4, 3, 2, 1]
numbers.remove(5)

كما يمكننا أيضا حذف العناصر باستخدام pop وهي بحاجة إلى رقم موضع العنصر المراد حذفه على القائمة أما إذا تم استخدامها من دون تحديد موضع العنصر ستقوم بحذف العنصر الاخير الموجود على القائمة وتقوم بعرض العنصر الذي تم حذفه .

 

numbers = [5, 4, 3, 2, 1]

numbers.pop(0)

numbers.pop()

for number in numbers:
    print number

انتهـــــــــــــــى.

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

عبارات else

في المرة السابقة تكلمنا عن عبارات IF والتي تسمح لنا بكتابة برامج مثل :

print "What's your name?"
name = raw_input()
print "Hello " + name + "!"
if name == "Abdelkader ":
    print "Hey wait a minute! That's not your name is it?!"

وسيعرض لنا البرنامج مايلي :

What’s your name?
َAbdelkader
Hello Abdelkader!
Hey wait a minute! That’s not your name is it?!
او

What’s your name?

Kader

Hello Kader!

اذا لماذا يقوم برنامجنا بترحيب المستخدم Abdelkader اذا كان اسمه غير صحيح؟
دعونا نقوم بتعديل الكود ليصبح مفهوم اكثر.

print "What's your name?"
name = raw_input()
if name == "Abdelkader":
    print "You're not fooling anybody you know."
else:
    print "Hello " + name + "!" 

نقوم بحظ البرنامج ونجربه من جديد ونرى مالذي يحدث:

What’s your name?
َAbdelkader
You’re not fooling anybody you know
أو
What’s your name?
Kader
Hello Kader! 

اذا كان لدينا عدة خيارات نريد اختبارها يمكننا استخدام if لاختبار الشرط الأول فاذا كان صحيح فهذا جيد واذا كان الشرط الاول غير صحيح يمكن استخدام else لتنفيذ بقية البرنامج

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

دالة randrange

الأرقام العشوائية تستخدم بشكل كبير في علوم الحاسوب خاصة في البرامج التي تنطوي على الألعاب والمحاكاة.


دالة randrange

افتراضيا بايثون لا يعرف كيف يقوم بتقديم أرقام عشوائية ومن الضروري أن يقوم بايثون بجلب مكتبة أكواد خاصة من أجل عمل أرقام عشوائية، ولاستعمال الأرقام العشوائية علينا أن نقوم جلب مكتبة خاصة وذلك بكتابة  عبارة Import أعلى البرنامج .

import random

لا تحاول تسمية الملف التي تعمل عليه ب random.py لأنه في ما بعد وعند استعمال import random سيقوم بايثون بجلب الملف الذي قمت بإنشائه وليس المكتبة الخاصة بالأرقام العشوائية .

الآن بعدما قمنا بجلب مكتبة random سنقوم بكتابة برنامجنا الذي سيقوم بعرض رقم عشوائي من 0 إلى 49  باستخدام الدالة randrange  .

my_number = random.randrange(50)

كما يمكننا استعمال خاصية random مع القوائم أيضا.

my_list = ["dz", "ma", "tn"]
random_index = random.randrange(3)
print(my_list[random_index])
أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع