MPGH
2 سال پیش توسط MPGH مطرح شد
1 پاسخ

گرفتن عدد از فانکشن و خطای UnboundLocalError

number = int(input("please Enter integer number: "))
factorial = 1
def factorieladad(number) :
 for i in range(1, number+1):
      factorial = ((factorial * i)^int(i))/i
      return(factorial)

print("The factorial of {} is: {}".format(number, factorial))

سلام
من این کد را نوشتم
اما درش یک مشکل دارم
وقتی مثلا نامبر را میدم 5 و فانکشن رو صدا میزنم همچین خرجی میده :

UnboundLocalError: local variable 'factorial' referenced before assignment

چطور میتونم از فانکشنم واقعا یک عدد بگیرم !


ثبت پرسش جدید
محمدکاظم اکبری
تخصص : نامشخص
@mohammadk12 1 سال پیش آپدیت شد
0

اونجا که نوشتی

print("The factorial of {} is: {}".format(number, factorial))`

میتونی برای راحتتر شدن کار همون کد رو اینطوری بنویسی:

print(f"The factorial of {number} is: {factorial}")

که فقط هم پیشنهاد بود
در اینجا حرف f معنی همون format رو میده و کار اون رو انجام میده

ولی برای سوالت باید بگم که متغیر factorial رو باید global کنی چون بیرون از تابع نمیشناسنش و وقتی بخوای ازش استفاده کنی ارور میده
باید اینطوری بنویسی:

number = int(input("please Enter integer number: "))
factorial = 1
def factorieladad(number) :
 for i in range(1, number+1):
      global factorial
      factorial = ((factorial * i)^int(i))/i
      return(factorial)

print("The factorial of {} is: {}".format(number, factorial))

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام