Задание: Мое задание - создать простую программу, которая решает заданную формулу c. Есть три входа xy и n, и эти три входа должны использовать один и тот же код многократного использования
Проблема: при использовании кода многократного использования учитель хочет, чтобы я проверял одну переменную в коде, значение которой "n" должно быть больше чем 0
Код:
import math
def main():
x = inputdata()
y = inputdata()
n = inputdata()
n = validate(n)
fact = myfactorial(n)
A = solveA(x,n,fact)
B = solveB(A,x,y,n)
show(A,B)
def inputdata():
z = int (input('Enter the Value \n Value = '))
z = validate(z)
return z
def solveA(x,n,fact):
A = ((x**n) / fact)
return A
def solveB(A,x,y,n):
B = ((2*A*x) + math.acos((0.235*n)))/((y**3)**(1/7))
return B
def myfactorial(n):
fact = 1
for i in range(1,n+1):
fact = fact * i
return fact
def show(A,B):
print("The value of A {:1.4f}".format(A))
print("The value of B {:1.4f}".format(B))
def validate(Value):
while Value < 0:
print("Invalid input, enter again : ")
Value=int(input())
return Value
x="Y"
while(x!="N"):
main()
x=input("Press Y to continue, N to stop : ").upper()
'ошибка': она проверяет все переменные, включая xy и n, хотя я просто хочу, чтобы она проверяла n
Enter the Value
Value = -2
Invalid input, enter again :
2
Enter the Value
Value = -2
Invalid input, enter again :
2
Enter the Value
Value = 2
The value of A 2.0000
The value of B 6.7475
Press Y to continue, N to stop :