تدور هذه المحاضرة حول بنية أساسية أخرى في بايثون ، تسمى tuple.
الصفوف
تتشابه المجموعات مع القوائم ، لذا يمكننا استخدامها لتخزين قائمة بالعناصر. لكن بخلاف القوائم ، لا يمكننا تعديلها أو إضافة عناصر جديدة أو إزالة عناصر موجودة. يمكننا القول أن المجموعات غير قابلة للتغيير.
دعني اريك. يتم تحديد المجموعات بواسطة أقواس بدلاً من الأقواس المربعة في القوائم.
numbers = (4, 1, 7, 5, 0, 9)
الآن ، إذا سحبنا قائمة التوابع لـ tuple ، يمكنك أن ترى أننا لا نملك أساليب الإلحاق أو الإدراج ، لذلك لا يمكن إضافة عناصر جديدة إلى هذه المجموعة. لدينا طريقتان فقط: العد والفهرس.
نحن نستخدم "العد" لحساب عدد تكرارات العنصر. يستخدم "الفهرس" للعثور على فهرس التواجد الأول لعنصر ما. لذلك ، يمكننا فقط الحصول على معلومات حول tuple ، ولا يمكننا تغييرها. بالمناسبة ، هذه الطرق الأخرى التي تراها هنا ، تبدأ بشرطة سفلية.
نشير إلى هذه الطرق السحرية. إنها أكثر من موضوع متقدم ، وسوف نتطرق إليها في سلسلتنا المستقبلية.
بخلاف كونها غير قابلة للتغيير ، تشترك المجموعات في معظم خصائص القائمة.
من الناحية العملية ، ستستخدم القوائم في معظم الأوقات ، لكن المجموعات مفيدة أيضًا. إذا كنت ترغب في إنشاء قائمة بالعناصر والتأكد من عدم تعديل هذه القائمة في أي مكان في برنامجك ، فمن الأفضل استخدام tuple.
تفريغ
في هذا القسم ، سأريكم ميزة قوية ، لدينا في بايثون تسمى unpacking.
دعنا نحدد "تنسيق" tuple
coordinate = (1, 2, 3)
الآن ، تخيل أن هذه هي إحداثيات "x" و "y" و "z". لنفترض الآن أننا نريد الحصول على هذه القيم واستخدامها في عدد قليل من التعبيرات المعقدة في برنامجنا. ربما نريد تضمينها كجزء من صيغة معقدة كبيرة.
لذا ، سنقوم معًا بكتابة رمز مثل هذا:
coordinate[0] * coordinate[1] * coordinate[2]
سيضاعف سطر الكود هذا جميع الإحداثيات ولكن كتابة الكود لدينا بهذا الشكل غير فعالة. أولاً ، دعنا نستخدم طريقة أفضل ونخزن هذه الإحداثيات في متغيرات منفصلة.
x = coordinate[0]
y = coordinate[1]
z = coordinate[2]
هذا أفضل. حق؟ لذلك لا شيء جديد حتى الآن. الآن ، اسمحوا لي أن أريكم ميزة قوية تسمى التفريغ وبهذا ، يمكننا تحقيق نفس النتيجة باستخدام كود أقل بكثير.
x, y, z, = coordinate
الآن ، هذا السطر الفردي من التعليمات البرمجية مكافئ تمامًا لأسطر الشفرة الثلاثة المكتوبة أعلاه. اسمحوا لي أن أشرح لك كيف يعمل.
عندما يرى مترجم بايثون هذه العبارة ، سيحصل على العنصر الأول في هذه المجموعة ويعينه للمتغير. وبالمثل ، سيتم تخصيص العناصر الثانية والثالثة للمتغيرات. عند القيام بذلك ، نقوم بتفكيك هذه المجموعة إلى 3 متغيرات. دعنا نتحقق من مخرجاتنا.
يمكن أيضًا إجراء التفريغ باستخدام القوائم.
القواميس
سنتعرف على القواميس في بايثون. نستخدم القواميس في المواقف التي نريد فيها تخزين المعلومات التي تأتي على شكل أزواج من المفاتيح والقيمة.
هنا مثال. فكر في عميل لديه مجموعة من السمات مثل الاسم والبريد الإلكتروني ورقم الهاتف والعنوان وما إلى ذلك. الآن كل من هذه السمات لها قيمة. فمثلا:
name = Jay
email = [email protected]
في هذا المثال ، مفاتيحنا هي الاسم والبريد الإلكتروني والهاتف. كل مفتاح مرتبط بقيمة لذلك هذا هو المكان الذي نستخدم فيه القاموس. باستخدام القاموس ، يمكننا تخزين مجموعة من أزواج المفتاح والقيمة. اسمحوا لي أن أوضح لك كيفية تحديد القاموس في بيثون.
customer = {
"name": "Jay",
"email": "[email protected]",
"age": 30,
"is_verified": True
}
يمكن تعيين المفتاح إلى سلاسل أو أرقام أو منطقية أو أي شيء. المفاتيح فريدة ولا يمكن تحديدها إلا مرة واحدة ، أي لا يمكنني تحديد "العمر" مرة أخرى برقم آخر. كما أنها حساسة لحالة الأحرف.
الآن ، إذا كتبت customer["name"],
سوف ينادي اسم العميل. دعنا نطبعها على المحطة:
يمكننا أيضًا استخدام الأساليب مع القواميس. يمكن تكرار نفس الوظيفة الموضحة أعلاه باستخدام طريقة "get".
هناك اختلاف واحد معين بين الطريقتين السابقتين. اسمحوا لي أن أوضح ذلك.
يمكنك أن ترى أنه عندما قمنا ببساطة بطباعة مفتاح غير موجود ، فقد أدى ذلك إلى حدوث خطأ. من ناحية أخرى ، فإن استخدام الطريقة لاستدعاء مفتاح غير موجود يؤدي إلى نتيجة "لا شيء" والتي تمثل عدم وجود قيمة. عند استخدام طريقة "get" ، يمكننا أيضًا توفير قيمة افتراضية.
على سبيل المثال ، إذا كان هذا القاموس لا يحتوي على مفتاح "تاريخ الميلاد" ، فيمكننا توفيره على النحو التالي:
customer.get("birthdate", "Jan 01, 1994")
يمكننا أيضًا تحديث أي مفتاح في القاموس ، على غرار القائمة. لنفترض أننا نريد تحديث مفتاح الاسم في قاموسنا. إليك كيف سنفعل ذلك.
customer["name"] = "Shahbaz"
يمكن استخدام صيغة مشابهة لإضافة مفتاح جديد في قاموسنا أيضًا. دعونا نضيف مفتاح "تاريخ الميلاد" بطريقة مماثلة.
customer["birthdate"] = "Jan 01, 1994"
إذن ، هذه هي أساسيات استخدام القواميس في بايثون. إنها مهمة للغاية ولديها الكثير من التطبيقات في العالم الحقيقي.
ممارسة
ستكتب برنامجًا يحول الأرقام إلى كلمات مثل هذا:
الحلول
هذا هو الحل لكم يا رفاق.
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine",
"0": "Zero"
}
output = " "
for ch in phone:
output += digits_mapping.get(ch, "!") + " "
print(output)
وبالمثل ، يمكنك إنشاء برامج ممتعة أخرى مثل "محول الرموز التعبيرية" استمتع بوقتك!
يتم إحتوائه!
أتمنى أن تكون قد استمتعت بهذه المحاضرة. بعد ذلك ، سوف نتعمق في جانب مهم من برمجة Python والوظائف والمعلمات.
اترك تعليق