所以这个函数接受用户的输入,并将他们的输入转换成一个值。例如,如果他们输入1k,输出将是1000。我希望能够倒退。如果我的值是325000,我想把它改成325k,你有什么想法吗?你知道吗
class Parsing:
def __init__(self, instring):
self.instring = instring
def valueParsing(self):
self.instring = self.instring.strip()
self.parsedString = ''
self.scalerDict = {'K': 1000, 'MEG': 1000000, 'G': 1000000000, 'M': 0.001, 'U': 0.000001, 'N': 0.000000001, 'P': 0.000000000001}
self.scaler = 1.0
self.stringCounter = 0
self.errorflag = False
self.Parsedvalue = 0.0
self.inStringLength = len(self.instring)
for self.stringCounter in range (self.inStringLength):
if ((self.instring[self.stringCounter].upper()) == 'K'):
self.scaler = self.scalerDict['K']
elif ((self.instring[self.stringCounter].upper()) == 'G'):
self.scaler = self.scalerDict['G']
elif ((self.instring[self.stringCounter].upper()) == 'U'):
self.scaler = self.scalerDict['U']
elif ((self.instring[self.stringCounter].upper()) == 'N'):
self.scaler = self.scalerDict['N']
elif ((self.instring[self.stringCounter].upper()) == 'P'):
self.scaler = self.scalerDict['P']
elif ((self.instring[self.stringCounter].upper()) == 'M'):
if (((self.instring.upper()).count('MEG'))):
self.scaler = self.scalerDict['MEG']
else:
self.scaler = self.scalerDict['M']
elif (( self.instring[ self.stringCounter ].upper() ) == 'F' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'W' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'S' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == '%' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'V' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'A' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'H' ):
break
elif (( self.instring[ self.stringCounter ].upper() ) == 'Z' ):
break
elif (( self.instring[ self.stringCounter ]) == '.' ):
self.parsedString = self.parsedString + self.instring[ self.stringCounter ]
elif (self.instring[self.stringCounter].isdigit()):
if(int(self.instring[self.stringCounter]) >= 0):
if(int(self.instring[self.stringCounter]) <= 9):
self.parsedString = self.parsedString + self.instring[self.stringCounter]
else:
self.errorflag = True
break
else:
self.errorflag = True
print('Invalid input, Try again.')
if (self.errorflag):
self.parsedvalue = -1
else:
self.parsedvalue = long(self.parsedString)*self.scaler
return self.parsedvalue
print '1. Resistors in series\n',\
'2. Resistors in Parallel\n',\
'3. Voltage Divider\n'
iput = int(input("Enter your choice: "))
if iput == 1:
r1 = raw_input("Enter first resistor:")
r2 = raw_input("Enter second resistor:")
R1 = Parsing(r1)
R2 = Parsing(r2)
req = R1.valueParsing() + R2.valueParsing()
print "The value of the series resistors is %s." % req
怎么样:
通过向后运行指数,可以确保找到正确的匹配项。你知道吗
试试这个:
对于10的负幂扩展这个解决方案已经留给读者作为练习。:-)
示例:
相关问题 更多 >
编程相关推荐