Gives an error message:

Traceback (most recent call last): File "python", line 28, in <module> File "python", line 17, in change_number TypeError: '>' not supported between instances of 'str' and 'int'. 

Here is the code:

 numDict = {1:"I",2:"II",3:"III",4:"IV",5:"V",6:"VI",7:"VII",8:"VIII",9:"IX", 10:"X",11:"XI",12:"XII",13:"XIII",14:"XIV",15:"XV",16:"XVI",17:"XVII",18:"XVII", 19:"XIX",20:"XX",21:"XXI",22:"XXII", 23:"XXIII",24:"XXIV",25:"XXV",26:"XXVI",27:"XXVII",28:"XXVIII",29:"XXIX",30:"XXX"} key_mass = list(numDict.keys()) val_mass = list(numDict.values()) class Number: def __init__(self,number): self.number = int(number) def change_number(self,key_mass,val_mass): for i in range(1,len(key_mass)): for j in range(1,len(val_mass)): if self.number == key_mass[i] and i == j: self.number = val_mass[j] if self.number > len(key_mass): print("Your number is too big.") break if self.number < 1: print("Your number is too small.") break print(self.number) number1 = Number(9) number1.change_number(key_mass,val_mass) 
  • one
    That's right, you write str instead of int in the self.number = val_mass[j] line, and the comparison breaks down - andreymal
  • First, it would be necessary to check for more or less before all cycles (and certainly not inside the cycle), and secondly, why do we need cycles, if everything can be done in one line? - Enikeyschik
  • self.number = numDict [self.number] - Enikeyschik

0