كيف أعمل خوارزمية لتكبير الحرف الاول من كل كلمة ؟

احتاج المساعدة في هذا التحدي:
عمل دالة تقوم بتحويل اول حرف من كل كلمة في النص الى حرف capital
وتعيد باقي الاحرف كما هي
مثال

def capital(string):
    any code


لاستدعاء الدالة 
capital("hello my friends")
capital("welcome to my page")

النتيجة:
"Hello My Friends"
"Welcome To My Page"

ملاحظة:
دون استخدام الدوال التالية
split() , " ".join , istitle

@kaabi_otman
هل يوجد عندك فكرة

2 Likes

هذا هو بداية حلي ولكن لم استطع اكماله

def capital(string):
    new_sentences = " "
    space = " "
    first = string[0].capitalize()
    new_sentences += first
    second = string[1:(string.find(space)) + 1]
    new_sentences += second

    print(new_sentences)
capital("hello my friends")
2 Likes

في الحقيقة انه سؤال صعب سأحاول حله :thinking:

3 Likes

مرحبا @yahya-alshammout عمل رائع
هاذا هو حلي

def cap(string):
		return string.replace(string[0], string[0].capitalize())
دور الدالة replace هنا 
هو استبدال حرف في
string  بحرف اخر 
string.replace( الحرف او الكلمة الجديدة ,الحرف او الكلمة المراد تغيرها )

بامكانك معرفة المزيد عنها من هنا:

https://www.tutorialspoint.com/python3/string_replace.htm

2 Likes

هل قمت بتجربة الكود ؟
لأنه لم يعطي الناتج المطلوب وشكراً
وهل هناك حل اخر دون استخدام دالةreplace
@malek.salem
مهندس ياسر هل عندك اقتراحات ؟
@YaserAlnajjar
@Nabila

1 Like
print(cap("hello world"))
اجل هناك العديد من الطرق دون استخدام replace
2 Likes

هذه الطريقة لا تعطي النتيجة المطلوبة بعد التجربة
انا هذا ما اقصد اريد طرق اخرى
هل يمكن ان تكتب واحده اذا ما فيها ازعاج
@malek.salem

1 Like

بعد بحت طويل و مضني وجدت حل رائع @yahya-alshammout

def capital(string):
    return string.title()
    
print capital("hola que tal")
2 Likes

شكراً على المشاركة يا صديقي
انا اعرف هذه الدالة لكني اريد
حلاً دون استخدامها
@kaabi_otman

1 Like

ما رأيك في هذا الكود

def capital(s):
    return ' '.join(word[0].upper() + word[1:] for word in s.split())
print capital("hello my friend")
2 Likes

لم اجد حلا غير دلك ان وجدت حلا أخر شاركه معنا :clap:
@yahya-alshammout

2 Likes

ايضاً اعرف هذا الحل
ولكن اريده بدون استخدام هاتين الدالتين :grinning:
ووضعت السؤال هنا لكي اجد الاجابة له
@kaabi_otman

2 Likes

@yahya-alshammout
احد الاصدقاء عرض علي استعمال مكتبة textblob اضن انها ستفيدك بهذا الشؤن

2 Likes

you can try a new and easy way :blush::blush:
Importing package

import string
string.capwords('hello my best friend')

>>> Hello My Best Friend

https://drive.google.com/file/d/1CxL393zFswBbPl7P0hM0RzJpYiRY4VqF/view?usp=sharing

1 Like

شكراً على هذه المشاركة
ولكن اريد طريقة بدون استخدام الدوال
هل ممكن ذلك :grinning:
@Nabila

1 Like

انا استخدمت دالة بطريقة غير مباشرة عن طريق
Package
:stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye:
لحظة لدي طريقة بلا دوال أبسط من هذه :unamused:

1 Like
string1 = "hello"
string2 = "my"
string3 = "friend"
print (string1.capitalize() + string2.capitalize() + string3.capitalize())

يلا ورينا طريقتك بلا دوال :grin:

3 Likes

هذا في حال اذا كنا نعرف كم عدد الكلمات
انا عملت دالة حتى تقبل اي عدد من الكلمات
انا وضعت السؤال لأني توقفت عند حد معين ولم استطيع اكماله
انا بحاجه للإجابة :joy::joy::joy:
@Nabila

أعتقد ان هناك اجابات طرحت ليس فيها هذه الدوال
split() , " ".join , istitle
فإجابتي الاولى مثلا لم يكن فيها الدوال التي لم يطلب منك استعمالها.
:ok_hand::ok_hand:
لكن ان كنت تريد اجابة بلا استعمال أي دالة مهما كانت فسيكون الكود طويلا جدا لأنك ستظطر للعمل على
Conditions
و
Code ASCII
لكل حرف
و ان تبحث عن بداية كل كلمة بعد وجود فراغ في الجملة
و ان تغير اول حرف
حسب عدده بالكود
ASCII

1 Like

قمت بتجريب كودك لكنه لا يعمل

1 Like