Функция цикла для вычисления y в python

#python #iteration

Вопрос:

Я хотел бы выполнить это вычисление от x = 0 до x . Он остановится, когда y = 0,5 и вернет значение x, я не знаю, как правильно написать функцию цикла на python. Кто-нибудь может мне помочь?

 y = ((x-1) * (x-2) * (x-3) * (x-4) * (x-5) * (x-6))/x^6
 

Я использую этот код, но он работает не так, как я думал

 x = 0
while x > 0:
    print ("The percent is", y)
    x  = 1
    y = ((x-1) * (x-2) * (x-3) * (x-4) * (x-5) * (x-6))/x**6
    if round(y,1) == 0.5:
        print (x)
 

Комментарии:

1. x =0, и пока условие x>0, ваше время не запускается

2. Ваше условие таково when y=0.5 , так почему же вы ставите условие выхода x > 0 .

3. Спасибо за ваш ответ, я хотел бы написать функцию, которая возвращает x, когда мы знаем, что y = 0,5. Как я могу изменить этот код правильным образом ?

4. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

 x = 1
while x > 0:
    y = round(((x-1) * (x-2) * (x-3) * (x-4) * (x-5) * (x-6))/x**6, 1)
    if y == 0.5:
        print (x)
        break
     x  = 1
 

вы также можете проверить ответ, как показано ниже

 x = 29
y = round(((x-1) * (x-2) * (x-3) * (x-4) * (x-5) * (x-6))/x**6, 1)
print(y)
 

Ответ №2:

Я надеюсь, что это вам поможет :

 x = 1
while x > 0:
    
    y = ((x-1) * (x-2) * (x-3) * (x-4) * (x-5) * (x-6))/x**6
    print ("The percent is", y)
    x  = 1
    if round(y) > 0.5:
        print("the value of x is:", x)
        break
 

Комментарии:

1. Большое спасибо. Это действительно помогает мне понять, как работает этот цикл

2. значение x равно 29, когда y равно 0,5, а ваш код напечатан 34, что является неправильным методом

3. поскольку я использую > вместо == , я не знаю , хочет ли он принять значение 0,5 или нет, в любом случае мой метод верен, как и ваш