Python除了1之外不识别整数

时间:2017-02-12 12:11:26

标签: python

Python并不认识除1之外的任何数字作为整数。当我输入要乘以的数字时,即使我输入了一个整数,程序也会运行除ValueError之外的值。这是我的代码。

clock.o main.o --> main
g++ -std=c++11 -Wall -o main clock.o main.o

当我输入数量时输入除1以外的任何其他数字时发生错误。如果有人能看到问题,任何输入都将受到赞赏

2 个答案:

答案 0 :(得分:2)

问题在于

Total += float(line.split(",")[2] * int(Quantity))

字符串 line.split(",")[2]乘以Quantity转换为整数。然后尝试将结果字符串转换为浮点数。

例如,如果line.split(",")[2]为“1.2”且Quantity为“3”,那么

line.split(",")[2] * int(Quantity)   

导致'1.21.21.2',无法转换为浮点数。 :)

取而代之的是

Total += float(line.split(",")[2]) * int(Quantity)

顺便说一句,您实际上并没有关闭receipt文件。您只是发出方法名称并将其丢弃。所以改变

receipt.close

receipt.close()

更好:使用with块打开所有文件,以便自动关闭。

我还应该提到普通exit()函数主要用于交互式解释器,并不保证在所有环境中都存在。为了确保可移植性,请使用sys.exit()。 OTOH,这里不是真的需要,你可以break循环while

答案 1 :(得分:0)

一个原因可能是输入Promo_Code,你正在使用输入,所以如果你的促销代码是abcdefgh那么你必须输入它作为'abcdefgh'或“abcdefgh”因为python 2中的输入不能自动决定。为简单起见,请始终使用raw_input()输入字符串, 同样在你的elif中将reciept.close转换为reciept.close()。