【发布时间】:2018-11-12 01:56:47
【问题描述】:
我是初学者,请多多包涵。我正在尝试解决一个非常简单的问题,但是在输入和 int 命令中遇到了一致的错误。我要解决的问题如下:
您有 5 万欧元的债务。您比较不同的存款,最赚钱的存款是年复利 6% 的存款。你应该多少钱 投资该存款以在 N 年内拥有 50k€?
我的代码是:
FV=50000 #future value of the deposit is 50,000 euros
I=0.06 #the interest rate of the deposit is 6%
N=input("number of months:")
N=int(N)
print(FV/(1+I)**N)
print("I should invest", FV/(1+I)**N, "euros to have", FV, " euros in", N,
"months with interest", I)
但是内核在第三行(输入命令)之后停止运行和执行,当我手动按 Enter 获取换行符时,我得到一个 ValueError 代码,上面写着:
ValueError: int() 以 10 为底的无效文字:''
谁能告诉我为什么会出现这个错误?我在解决问题方面哪里错了?提前致谢。
【问题讨论】:
-
输入一个数字然后回车会发生什么?只要按回车就会输入
''。 -
有提示时输入数字。如果按不带数字的回车键,则会读取空字符串,这对于
int()来说是无效的文字。 -
我不明白你的问题,timgeb。我在内核中按 Enter 以获得换行符,因为内核在第三行代码之后停止执行,但我不知道要输入什么数字,因为我不知道 N 的值(月数) ,这是我要解决的问题的一部分......
-
内核没有“停止”,它在等待你输入 N。你不是在求解 N 的值,这里提供了 N。您正在尝试使用需要提供的一些 N 值来解决初始投资。然而,当你按下回车键时,你只是给它一个空字符串,这会导致 int(N) 失败,因为它是 int('')