当我运行这段代码时,shell会输出错误'无法将'int'对象转换为str隐式'.
我在StackOverflow上尝试了其他修复,但是我无法在代码中解决问题.
import math while True: try: di = input('Input 7 digit number ') total = (int(di[0])+int(di[2])+int(di[4])+int(di[6]))*3+(int(di[1])+int(di[3])+int(di[5])) if len(str(di)) != 7: print('Incorrect') if len(str(di)) == 7: print('Okay') multiplier = [3,1] times = '' total = 0 for index, digit in enumerate(list(str(di))): total = total + int(digit)*multiplier[index%2] times = times+str(int(digit)*multiplier[index%2])+', ' mof10 = total + (10 - total%10) checkdigit = mof10 - total final = str(di) + str(checkdigit) print(times[:-1]) print(total) print(mof10) print(checkdigit) print(final) final = (di[1]+di[3]+di[5])+((di[0]+di[2]+di[4]+di[6])*3) final = (final+4) Base10=(int(round(final, -1))) Check = Base10-final checkdigit = int(input('8th number in product code: ')) if (n8 == Check): print('Valid product code') except ValueError: print('Invalid product code') break
错误信息:
Traceback(最近一次调用最后一次):
文件"C:\ Documents and Settings\User\Desktop\GTIN-8 product code.py",第55行,最后=(final + 4)
TypeError:无法隐式地将'int'对象转换为str
CoryKramer.. 5
你首先得到的价值d1
是str
di = input('Input 7 digit number ')
然后你就final
过去了
final = (di[1]+di[3]+di[5])+((di[0]+di[2]+di[4]+di[6])*3)
因此final
也是str
如此,所以你做不到
final = (final+4)
因为final
是一个str
而且4
是一个int
你首先得到的价值d1
是str
di = input('Input 7 digit number ')
然后你就final
过去了
final = (di[1]+di[3]+di[5])+((di[0]+di[2]+di[4]+di[6])*3)
因此final
也是str
如此,所以你做不到
final = (final+4)
因为final
是一个str
而且4
是一个int