Python并不认识除1之外的任何数字作为整数。当我输入要乘以的数字时,即使我输入了一个整数,程序也会运行除ValueError之外的值。这是我的代码。
clock.o main.o --> main
g++ -std=c++11 -Wall -o main clock.o main.o
当我输入数量时输入除1以外的任何其他数字时发生错误。如果有人能看到问题,任何输入都将受到赞赏
答案 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()。