Float division by zero ошибка

Обновлено: 01.07.2024

1. Ошибка появилась после попытке обновления скайпа.
2. Удалить тоже нормально нельзя.
3. Удаляла вручную с чисткой реестра - не дает установить скайп с той же ошибкой.
4. Делала восстановление системы - восстановил с ошибкой, скайп не удаляет старый.
Что делать. )
ПС: комп родителей, я за ним бываю редко, поэтому что происходило в мое отсутствие не знаю, так же как не с кажу после какого момента это началось. Ошибка стала вылетать после обновления с тем же текстом и теперь нет возможности вообще что-либо делать с этой программой стандартным способом (без выемки из системы по кускам)

ОС: winXP, 7, 8, 10 и права админа давали?
Скайп полностью скачиваете с официального сайта?
Ну и скрин с ошибкой

1. win 7
2. Скайп с официального сайта.
3. Скрин? Там ошибка в всплывающем окне. Текст дословно. Больше ничего.

1. Выносить мозг не получится, к сожалению.
2. Установка-удаление программ работает частично - не дает устанавливать/удалять некоторые программы, хотя другие спокойно позволяет.
3. Винда 7 ультимэит или как там её )))
4. Железо не меняли, но для этой ос вполне.
5. Из антивирустников - лицензионный kis + оутпост. Закрывала их - все равно та же ошибка. Но они настроены на нормальную работу друг с другом - добавлены в доверенные и т. п. Работают в союзе 2-3 года без проблем. За компом сидят только родители и только по доверенным программам.

Пришелец Мастер (1333) ну да, поддержка не будет поддерживать устаревие версии системы типа Windows 7, насчет 2го - вы уверены что у вас есть необходимые права для установки и удаления, нужно выполнять с аккаунта администратора, так-же даже администратор не может выполнять запись в папках которыми владеет например "Trusted Installer", проверьте папки назначения и смените для них права установив себя сначала в качестве аудита, а затем добавив себе чтение и запись, если там их нет. А вообще пора обновлятся мне кажется, скоро Windows 11 анонсируют а вы до сих пор на 7й, на нее уже обновления безопасности выходить перестали, а это значит что еще 1 найти дыру в системе и все. По сравнению с Win 8 и Win 8.1, Win 10 более-менее готовая, не сырая. Можно и перейти. А по поводу антивирусов.

То, что ошибка математическая я догадалась - сначала искала решение в интернете, там подобное выскакивает у программистов в основном. Ошибка деления на 0.

I have calcularBeta1 method. When I run the program, I've got this error:

ZeroDivisionError: float division by zero

626k 49 49 gold badges 422 422 silver badges 523 523 bronze badges 23 1 1 gold badge 1 1 silver badge 3 3 bronze badges fix: do not divide by zero. Your problem is data-derived - you do not provide data. How should we help? Show us what inputs lead to this problem. On a afterthough .. even if you provided data .. if you calculations are correct there is not much you can do to prevent it - try: except: and invalidate that calculationif it leads to an error-

3 Answers 3

The ZeroDivisionError happens when you try to divide a number by 0, which as you know is a mathematical impossibility, just change the value of the dividend.

240 1 1 gold badge 3 3 silver badges 14 14 bronze badges

Python is unable to divide numbers by 0. If you ever attempt to divide by 0, python will throw a ZeroDivisionError , which is what happened to you. The best way to fix it is to just not divide by zero. You can use an if statement to ensure that the values are not zero.

Код.
from colorama import init
from colorama import Fore, Back, Style

print("здравствуйте! Это калькулятор индекса массы тела")

a= float(input ("введи вес в кг: "))

if a <= (0):
print("вы не ввели число")
a= float(input ("введи вес в кг: "))

b= float(input ("введи рост в метрах: "))
if b <= (0):
print("вы не ввели число")
b= float(input ("введи рост в метрах: "))

if b == 0:
print("Упс, где-то ошибачка. Проверьте введённые числа")
print("вес " + str(a) + "рост" + str(b))
input

if c <= (1):
print("Упс, где то ошибочка. ваш индекс массы тела = 1")

elif c <= (16):
print(str(c) + " Ярко выроженный дефицит массы тела")

elif c <= (18):
print(str(c) + " Дефицит массы тела")

elif c <= (25):
print(str(c) + " Норма")

elif c <= (30):
print(str(c) + " Предожирение")

elif c <= (35):
print(str(c) + " Ожирение 1 степени")

elif c <= (40):
print(str(c) + " Ожирение 2 степени")

elif c >= (40):
print(str(c)+"Ожирение 3 степени")


input ("exit")

. Гений (78261) Николай Бессмертный, return или sys.exit() н-р

d=[
" Ярко выраженный дефицит массы тела",
" Дефицит массы тела",
" Норма",
" Предожирение",
" Ожирение 1 степени",
" Ожирение 2 степени",
" Ожирение 3 степени"
]

a=float(input('Рост в метрах '))

b=float(input('Вес в килограммах '))

if 1<b<500: ans=1
imt=b/a**2
print (round(imt))
if imt<=16: i=0
elif imt<=18: i=1
elif imt<=25: i=2
elif imt<=30: i=3
elif imt<=35: i=4
elif imt<=40: i=5
else: i=6
print (f'Поздравляю! У Вас ')

ZeroDivisionError: float division by zero.

Проверял - значения максимума и минимума присваиваются верно, значит беда во внутреннем цикле. Зафэйлил с пробелами, или же в Python так вообще делать нельзя?

Обновление

Значения max = 15.7029740933. , min = -16.53312943. . Отсчет i начинается с 1, изначально max = min , а затем присваиваем значения.

Вывел min и max перед ошибкой. Оба значения 0.126264. Хотя если убрать внутренний цикл - все нормально. По идее должно 50 раз вывести на экран значения max и min (15.703. и -16.533).


49.3k 72 72 золотых знака 248 248 серебряных знаков 477 477 бронзовых знаков значения косинуса math.cos(2*3.14*i/50) может где то 0 попадается ? А какие значения используются для инициализации min и max ? напечайте min , max перед ошибкой. Скорее всего на первой итерации min=max и поэтому min-max==0 . Приведите полный traceback.

Если min=max хотя бы на одной (первой) итерации цикла, то это достаточно чтобы ошибка деления на ноль ( ZeroDivisionError ) возникла, что прерывает нормальное исполнение кода.

Чтобы лучше понять что происходит, попробуйте выбросить весь код и оставьте только min :

В этом коде min=0 только на одной (первой) итерации цикла, но этого достаточно чтобы ошибка деления на ноль завершила программу (дальнейшие итерации не состоятся). Eсли min=1 в начале поставить вместо min=0 , то это создаст бесконечный цикл с разными значениями min на каждой итерации.

Читайте также: