gpt4 book ai didi

Python 错误 : [ZeroDivisionError: division by zero]

转载 作者:行者123 更新时间:2023-11-28 21:31:32 24 4
gpt4 key购买 nike

我有一个关于我的 python 代码的问题。我还在学习,所以请不要介意任何错误。作业是计算某人在正常年份和金星年份的年龄。

平年很容易,但金星年有点难。

a = input("What is your name? ")
b = input("What is your birth year? ")
c = 2019
d = 0.62

# calculating age
try:
e = int(c) - int(b)
except ZeroDivisionError:
e = 0

# calculating age in venus years
try:
f = int(e) / int(d)
except ZeroDivisionError:
f = 1


print('Dear',a,','' in 2019 your age will be ',e,'.',sep='')
print('And your age is',f,'in Venusyears.')

我遇到的问题是总是将 f 视为 0。但如果我不这样做:

    f = int(e) / int(d)
except ZeroDivisionError:
f = 1

它会给我一个 ZeroDivisionError,因为 e 还不是一个数字(还)。

有人可以向我解释如何解决这个问题吗?

希望收到您的来信!

亲切的问候,

最佳答案

ZeroDivisionError 不是由 e 不是数字引起的。这是由于试图将一个数除以 int(d) 引起的,因为 int(d) 为零。

d 是一个值为 0.62 的 float 。如果将其转换为整数,则会得到零。

你可以除以 float 本身:

f = int(e) / d

这会给你另一个 float 。如果你想要它作为一个整数,你可以将它转换为一个:

f = int(int(e) / d)

这不会导致 ZeroDivisionError,因为 d 在您的代码中明确为非零值。

关于Python 错误 : [ZeroDivisionError: division by zero],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58027537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com