On Sep 6, 5:04 pm, Andreas Hofmann <[EMAIL PROTECTED]> wrote: > Hello Folks! > > I've got a little problem here, which which really creeps me out at the > moment. > I've got some strings, which only contain numbers plus eventually one > character as si-postfix (k for kilo, m for mega, g for giga). I'm trying > to convert those strings to integers, with this function: > > def eliminate_postfix(value): > if type(value) is str: > value.upper() > if value.endswith('K'): > mult = 1000 > elif value.endswith('M'): > mult = 1000000 > elif value.endswith('G'): > mult = 1000000000 > else: > mult = 1 > > if mult is 1: > value = string.atoi(value) > else: > value = string.atoi(value[:-1]) * mult > return value > > The problem is as follows: Everytime a string with a postfix should get > converted, mult does not get set properly. It is always 1. Does anyone > have an idea how to fix this? I just don't see it, maybe because I'm > pretty new to python or because I'm just blind I would be really greatful. > > Kind regards, > Andy
Hello, 1. You call value.upper(), but you do not capture the results of that method. Strings are immutable in Python. >> value = value.upper() 2. You should use == instead of "is" in the comparison of mult being 1. >> if mult == 1: -- http://mail.python.org/mailman/listinfo/python-list