re.search when used within an if/else fails

MRAB python at mrabarnett.plus.com
Tue Nov 20 02:21:54 CET 2012


On 2012-11-19 23:43, Kevin T wrote:
> python version 2.4.3, yes i know that it is old.  getting the sysadmin to update the OS requires a first born.
>
> with the following code..
>                  for signal in register['signals'] :
>
> 351                   sigName = signal['functionName']
> 352                   if re.search( "rsrvd", sigName ) == None :
> 353                      print sigName
> 354                      newVal = "%s%s" % ( '1'*signal['bits'] , newVal ) #prepend 0's
> 355                   if re.search( "rsrvd", sigName ) != None :
> 356                      print sigName
> 357                      newVal = "%s%s" % ( '0'*signal['bits'], newVal )
>
> regardless of how i code line 352, i can not EVER use an else clause with it.  if i use an else clause, the else will NEVER get executed...
>
> has any one experienced anything like this behavior?  any suggestions?  the above code works but... why should i have to code it like this?
>
Have you checked the indentation? There may be a mixture of tabs and spaces.

A couple of points:

1. You should be using "is None" and "is not None" instead of "== None" 
and "!= None".

2. You don't need to use regex. Use "rsrvd" in sigName and "rsrvd" not 
in sigName.



More information about the Python-list mailing list