اذهب إلى المحتوى

السؤال

نشر

انفذ الكود التالي :

from random import choice

quotes_list=[

    "for jnkjs smdlkm psdlkasmd jknalnd klasldks kja;wkkm sdklks kmlkgfgh",

    "every knjksd kjsdkj kjhdskhs kjhas kjaskas jk iojoijs jkkhslfgfd ",

    "its khsdn sjkdkjlsd  kdsnkn skjd kjsda kahsw nashdkj kjashd "

]



def get_quotes():

    return"\n".join(quotes_list)



def add_quotes(quotes):

    if isinstance(quotes , str):        # isinstance(quotes , str) دالة بيلد ان بايثون للتحقق من ان المدخل نص

        quotes_list.append(quotes)

    else:

        return 'the quotes must be a string'

   

# to select random quote from quotes

# we import choice from random in the top



def get_random_quote():

    return choice(quotes_list)



if __name__ == ' __main__':

    print(get_random_quote())

    add_quotes('you only love me')

    print(get_quotes())


و لكن دون ان يظهر لي نتائج بعد اضافة  if __name__ == ' __main__':

Recommended Posts

  • 0
نشر

بسبب وجود مساحة فارغة في نص  __main__ فلو أضفت مساحة فارغة في النص سيصبح مختلف ولن يتم التعرف عليه كالتالي:

if __name__ == ' __main__':

في البداية لاحظ، فالقيمة هي __main__ ولكن بدون مساحة زائدة فارغة.

from random import choice

quotes_list = [
    "for jnkjs smdlkm psdlkasmd jknalnd klasldks kja;wkkm sdklks kmlkgfgh",
    "every knjksd kjsdkj kjhdskhs kjhas kjaskas jk iojoijs jkkhslfgfd ",
    "its khsdn sjkdkjlsd  kdsnkn skjd kjsda kahsw nashdkj kjashd "
]

def get_quotes():
    return "\n".join(quotes_list)

def add_quotes(quotes):
    if isinstance(quotes, str):  # isinstance(quotes , str) دالة بيلد ان بايثون للتحقق من ان المدخل نص
        quotes_list.append(quotes)
    else:
        return 'the quotes must be a string'

def get_random_quote():
    return choice(quotes_list)

if __name__ == ' __main__':
    print(get_random_quote())
    add_quotes('you only love me')
    print(get_quotes())

 

  • 0
نشر

الخطأ الموجود في الشيفرة يكمن في أنك كتبت الشرط الأخير بشكل خاطئ، فقد قمت بإضافة مسافة إضافية زائدة هكذا:

if __name__ == ' __main__':

وفي هذه الحالة بايثون لن يستطيع التعرف على أن البرنامج يتم تشغيله بشكل مباشر لذا نقوم بكتابتها بهذا الشكل الصحيح:

if __name__ == '__main__':

كذلك الدالة add_quotes تعمل بشكل صحيح في حال كان الإدخال نصا فقط ولكن يمكن تحسين الشرط ليشمل الحالات التي يتم فيها إضافة شيء غير نصي، فتقوم بإرجاع رسالة خطأ مناسبة بحيث يمكنك إضافة حالة للتعامل مع القيم الفارغة (Empty string) والتحقق من أن النص المضاف ليس فارغا كالتالي:

def add_quotes(quotes):
    if isinstance(quotes, str) and quotes.strip():
        quotes_list.append(quotes)
    else:
        return 'مدخل غير نصي'

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...