qq_54915886 2022-05-06 20:38 采纳率: 50%
浏览 3597

TypeError: unsupported operand type(s) for -: 'str' and 'str' 如何解决

img

img

def save_money(group_price,market_price):
if group_price=='' or market_price=='':
balance=''
else:
balance=float(market_price-group_price)
if balance=='':
string="尚不清楚"
elif balance<100:
string="差额一般,可以团购"
elif balance<1000:
string="差额较大,推荐团购"
else:
string="差额巨大,特别推荐团购"
return balance,string
file=open("hotpot_data_new.csv",'r')
file1=open("hotpot_data_new1.csv",'a+')
newlist=file.readline().split('\n')[0].split(',')
for i in range(10):
file1.write(newlist[i]+',')
file1.write('差额'+','+'建议'+',')
for i in range (10,len (newlist)-1):
file1.write(newlist[i]+',')
file1.write(newlist[-1]+ '\n')
while True:
line=file.readline()
if line=='':
break
else:
newlist1=line.split(' \n')[0].split(',')
for i in range(10):
file1.write(newlist1[i]+',')
balance=str(save_money(newlist1[8], newlist1[9])[0])
advise=save_money (newlist1[8],newlist1[9]) [1]
file1.write (balance+','+advise+',')
for i in range(10,len(newlist1)-1):
file1.write (newlistl[i]+',')
file1.write(newlist1[-1]+'\n')
file1.close()
file.close()

  • 写回答

2条回答 默认 最新

  • 鸡蛋酱$ 2022-05-06 20:44
    关注

    这个报错是说你是将2个字符串进行相减了,如果进行相减的是2个数字字符串的话,你可以转换一下,
    用eval(str1)-eval(str2)

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月6日

悬赏问题

  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面