У меня следующее сообщение об ошибке сообщил:неподдерживаемый тип операнда (ов) для -: 'INT' и 'ул'
unsupported operand type(s) for -: 'int' and 'str'
с этим кодом:
def main():
# step 1
print "LOAD CASE BASE"
# using csv
# into array of classes
# filepath = 'C:\\Users\\standalone\\Dropbox\\PYTHONDEV\\Scripts\\BCO6004\\CASEBASE.txt'
filepath = 'C:\Users\Trip Admin\Documents\Python Scripts\IntelSysAssignment\CASEBASE.txt'
casebase = readCSVintoList(filepath)
for case in casebase:
print case
print case[1]
c1 = Camera(case[0], case[1], case[2], case[3]) # overwritten, so store in an array of cases
print c1.get_special_features(), c1.get_optical_sensor_resolutions(), c1.get_optical_sensor_size(), c1.get_optical_zoom()
# step 2
print "GET USER INPUT"
#2special_features = input("Enter the camera's special_features: ")
optical_zoom = int(input("Enter the camera's optical_zoom: "))
optical_sensor_size = int(input("Enter the camera's optical_sensor_size: "))
optical_sensor_resolutions = int(input("Enter the camera's optical_sensor_resolutions: "))
unknowncase = Camera("special_features", optical_zoom, optical_sensor_size, optical_sensor_resolutions)
# step 3
print "CALCULATE SIMILARITY"
similarity = unknowncase.similarity(c1)
# step 4
print "PRINT OUT RESULT"
print similarity
class Camera(object):
def __init__(self, special_features="", optical_zoom=0, optical_sensor_size=0, optical_sensor_resolution=0):
self.special_features = special_features # e.g. Serial Shot Mode
self.optical_zoom = optical_zoom # e.g. 5x, or 8x
self.optical_sensor_size = optical_sensor_size # e.g. 1/2.3
self.optical_sensor_resolution = optical_sensor_resolution # e.g. 16.1MP, or 20.1MP
def get_special_features(self):
return self.special_features
def get_optical_zoom(self):
return self.optical_zoom
def get_optical_sensor_size(self):
return self.optical_sensor_size
def get_optical_sensor_resolutions(self):
return self.optical_sensor_resolution
def similarity(self, camera):
sim = (self.optical_zoom - camera.optical_zoom)/10 # between 0 and 10
sim = sim + (self.optical_sensor_size - camera.optical_sensor_size)/3 # between 0 and 3
sim = sim + (self.optical_sensor_resolution - camera.optical_sensor_resolution/25) # between 0 and 25
return sim/3
Я проверил другие сообщений и здесь, и добавил ввод ввода на входе, как показано выше, но я все еще получаю ошибку.
Похоже, здесь много кода, что не имеет отношения к вопросу; попробуйте создать [короткий пример] (http://sscce.org/) проблемы. –
След, сбрасываемый с исключением, не написан для удовольствия. Он содержит полезную и полезную информацию ... – glglgl
Ошибка не требует пояснений - вы не можете вычитать строку из целого. С небольшим усилием вы сможете найти линию, в которой возникает проблема, и исследовать аргументы вычитания даже без нашей помощи. –