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


#1

احتاج المساعدة في هذا التحدي:
عمل دالة تقوم بتحويل اول حرف من كل كلمة في النص الى حرف 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

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

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")

#3

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


#4

مرحبا @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


#5

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


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

#7

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


#8

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

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

#9

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


#10

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

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

#11

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


#12

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


#13

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


#14

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


#15

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


#16

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


#17
string1 = "hello"
string2 = "my"
string3 = "friend"
print (string1.capitalize() + string2.capitalize() + string3.capitalize())

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


#18

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


#19

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


#20

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