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

السؤال

نشر (معدل)
import random 
print("""Welcome to the Coin Guessing Game! \nchoose a method to toss the Coin: \n 1. Using random.random() \n 2.Using random.randint() \n""") 
num = int(input("enter 1 or 2: \n")) 
if num == 1: 
    if random.random() >= 0.5: 
        computer_result = "heads" 
    else: computer_result = "tails" 
elif num == 2: 
    if random.randint(0,1) == 0: 
        computer_result = "heads" 
    else: computer_result = "tails" 
    
else: 
    print("Invalid choice. please select either 1 or 2,") 
    exit() 
    
user_num = input("enter your guess(heads or tails):") 
if user_num.lower() == computer_result.lower(): 
    print("congratulations! you win") 
else: 
    print("sorry, you lost!") 
    
print(f"the computer's coin toss result was: {computer_result}")

اذا دخل المستخدم احرف او رموز بدل الارقام يحصل خطا كيف اصحح ال ايرورر هذا ؟

 

تم التعديل في بواسطة محمد عاطف17
تنسيق الشيفرة و تغير عنوان السؤال

Recommended Posts

  • 0
نشر

يجب عند إستقبال أي قيمة من المستخدم التأكد من إمساك الأخطاء وعدم تركها هكذا حيث لا نضمن ما الذى سوف يقوم المستخدم بإدخاله لذلك لا نترك الأمر متاحا للأخطاء الغير متوقعه.

الخطأ الذي يحدث لديك هو من نوع ValueError حيث أنك تستخدم الدالة int والتي تقوم بتحويل السلسلة النصية إلى رقم وإذا كانت السلسلة النصية تحتوي أي رموز أو نصوص سترجع الدالة int خطأ من نوع ValueError أي خطأ في القيمة . 

لذلك يمكننا حل المشكلة عن طريق try except في بايثون هكذا :

import random 
print("""Welcome to the Coin Guessing Game! \nchoose a method to toss the Coin: \n 1. Using random.random() \n 2.Using random.randint() \n""") 

try:
    num = int(input("enter 1 or 2: \n"))
except ValueError:
    print("Invalid choice. please select either 1 or 2,") 
    exit()

if num == 1: 
    if random.random() >= 0.5: 
        computer_result = "heads" 
    else: computer_result = "tails" 
elif num == 2: 
    if random.randint(0,1) == 0: 
        computer_result = "heads" 
    else: computer_result = "tails" 
    
else: 
    print("Invalid choice. please select either 1 or 2,") 
    exit() 
    
user_num = input("enter your guess(heads or tails):") 
if user_num.lower() == computer_result.lower(): 
    print("congratulations! you win") 
else: 
    print("sorry, you lost!") 
    
print(f"the computer's coin toss result was: {computer_result}")

لاحظ هنا إستخدما try و except حول سطر الذى يحوي الدالة int ونقوم بإمساك الخطأ ValueError

try:
    num = int(input("enter 1 or 2: \n"))
except ValueError:
    print("Invalid choice. please select either 1 or 2,") 
    exit()

وبذلك إذا أدخل المستخدم قيمة غير صالحة ستلقى الدالة int خطأ ValueError ونحن سنمسك هذا الخطأ لنتعامل معه ونظهر رسالة للمستخدم بأن القيمة المدخلة خاطئة ونوقف تنفيذ الكود.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...