التحدي رقم 9 لليوم رقم 9 من رمضان
اولا
كل عام و انتم بخير و اعاده الله عليكم بالمن و بالخير و البركه
لا تنشغل بالحل كثيرا كي لا تهمل عباداتك الاصليه
و لا تنسي تجديد نيتك فأن طلب العلم عباده
لا تنسوني و اخي المعتقل سياسيا من جميل دعائكم
وصف التحدي :
**مستوي التحدي : **
اعلي من سهل برمجيا
قم بكتابة دالة تستقبل مصفوفة من القيم النصية
، تقوم تلك الدالة بمقارنة القيم النصية وإرجاع true
في حال كان عدد characters
لجميع النصوص متطابق، وإرجاع false
في حال خلاف ذلك. اذا كانت المصفوفة فارغة أو تحتوي على عنصر واحد فقط، قم بإرجاع القيمة false
.
ملحوظه : كلمة مصفوفة يعني ليست ← [,]
ملحوظه : لو شايفه ساهل خلي المدخل يكون String
مش ليست(مصفوفه)
و بالتالي هيكون في خطوة كدا زيادة مثال علي المدخل في الحاله دي :-
"Khalid Sultan AlDana Johrah Ghadah"
أضغط لرؤية المخرجات المتوقعة عشان تتيست الكود بتاعك
الاختبار 1
المدخلات (Inputs)
words = [‘A’, ‘B’]
المخرجات (Outputs)
true
الاختبار 2
المدخلات (Inputs)
words = [‘Khalid’, ‘Sultan’, ‘AlDana’, ‘Johrah’, ‘Ghadah’]
المخرجات (Outputs)
true
الاختبار 3
المدخلات (Inputs)
words = [‘Satr’, ‘CoderHub’]
المخرجات (Outputs)
false
الاختبار 4
المدخلات (Inputs)
words = [‘123’, ‘456’, ‘789’]
المخرجات (Outputs)
true
حل التحدي
def str_len_comparison(words):
if len(words) <= 1:
return False
else:
for i in words:
if len(i) != len(words[0]):
return False
return True
حل التحدي لو المدخل `String`
def str_len_comparison(words):
if len(words) <= 1:
return False
else:
splited_string = words.split()
for i in splited_string:
if len(i) != len(splited_string[0]):
return False
return True
4 إعجابات
انا عملت الداله تنفع لـ str أو list، هذه هي الدالة :
def is_all_one_length (input): return (len (set ([len (x) for x in (input if type (input) is list else input.split(" "))])) == 1) if len (input if type (input) is list else input.split(" ")) > 1 else False
أمثله عليها :
print (is_all_one_length ("ahmad ahmed")) # الناتج : True
print (is_all_one_length (["and", "or"])) # الناتج : False
إعجاب واحد (1)
تمام كويس بس ارجع و اقولك انك حاول متعقدش الامور مش لازم تكتبها في سطر ممكن سطرين عشان الموضوع ع الاقل يكون قابل للقراءه بدون تشتت او عدم فهم
إعجابَين (2)
راجع الحل انت عقدت الدنيا و شتت دماغك هديك هنت بسيط جدا :
الهنت
افترض انك عندك صاله باطوال معينه انت متعرفهاش تمام
و جالكم الناس اللي بيروجوا لمنتجاتهم علي الباب و انت حبيت تجرب سجادهم
فا خدت منه كذا واحده بكذا طول
لما تخش عند الصاله بقا هتعمل ايه ؟
لو لسه مش عارف هتعمل ايه :
فا الطبيعي اني هفرش كل واحده من اللي معايا و اشوفهم بيساووي الاطوال الثابته اللي عندي ( اطوال الصاله )
ولا لا
لو بيساوي هقول للمروج True
لو مش مظبوطه ايا كان اطول او اقصر من اطوال الصاله هقوله False
فكر شويه كمان و لو معرفتش شوف فكره الحل و هتفهم كل حاجه
ولما تحلها او تفهما ابقا قولي عشان هوضحلك فكره كدا في حته ال return
إعجابَين (2)
ده نفس الحل ولاكن بشكل منظم مع شرح لكل جزء بالكومنتس (#
) :
def is_all_one_length (input): # داله تتحقق من ان جميع القيم بداخلها متساويه الطول
lens_input = set () # نصنع متغير من نوع set لان set لا تسمح بتكرار العناصر داخلها
input = input if type (input) is list else input.split (" ") # اذا كان المدخل list لا يحدث شيء، لاكن إن كان شيء آخر (str) يتحول بـ.split (" ")
if len (input) <= 1: return False # نرجع False إن كان طول المدخل 1 او اقل
for x in input: lens_input.add (len (x)) #نصيف طول العنصر
return len (lens_input) == 1 # اذا كانت جميع العناصر بنفس الطول وlen لا تكرر العناصر، سيكون طول الـset يساوي 1
إعجابَين (2)
ايوه كدا عشان تفيد اللي يقرأ التعليقات انمما الاول محدش كان بيستفيد 
وخد كمان اختصار منطقي اهو :
def is_all_one_length(input_data):
if isinstance(input_data, str):
input_data = input_data.split()
if len(input_data) <= 1:
return False
return len({len(x) for x in input_data}) == 1
3 إعجابات