由于第7行value = int(qty)*int(price)
,我无法运行下面的代码。如果我在int()
函数中使用print()
函数,我只能运行它。在我要求它打印之前,有没有办法可以定义它是一个整数? 浮动?
file = open("C:\\file.txt","r")
for mid in file:
qty = mid[38:53]
qty = qty.lstrip("0")
price = mid[75:86]
price = price.lstrip("0")
value = int(qty)*int(price)
trades = [qty,price,value]
print (trades)
file.close()
壳 - >
ValueError:基数为10的int()的文字无效:''
答案 0 :(得分:0)
正在发生的事情是,您的某个项目的价格或数量设置为0.当您在代码条中读取0时会留下一个空字符串,当它转换为int时会引发ValueError。
你应该删除lstrips。在最坏的情况下,你会得到像“04”这样的数字,int构造函数无论如何都可以处理它。
答案 1 :(得分:0)
如果字符串无效,则以下函数返回整数值或None:
def parseInt(ss):
try:
return int(ss)
except:
return None
使用此函数检查字符串是否为整数:
for mid in file:
qty = mid[38:53]
qty = qty.lstrip("0")
qty = parseInt(qty)
price = mid[75:86]
price = price.lstrip("0")
price = parseInt(price)
if qty != None and price != None:
value = qty*price
trades = [qty,price,value]
print (trades)
file.close()