[Python-ideas] Default return values to int and float
Ethan Furman
ethan at stoneleaf.us
Wed Oct 5 19:56:58 CEST 2011
Nick Coghlan wrote:
> On Oct 5, 2011 10:32 AM, "Ethan Furman" wrote:
>> Ron Adam wrote:
>>> On Wed, 2011-10-05 at 19:08 +1300, Greg Ewing wrote:
>>>> Guido van Rossum wrote:
>>>>
>>>>> I'm out of ideas here. But of all these, str.find is probably still
>>>>> the worst -- I've flagged bugs caused by it too many times to count.
>>>>
>>>> Could a with-statement be used here somehow?
>>>>
>>>> with finding(x, s) as i:
>>>> ...
>>>
>>>
>>> Or an iterator.
>>>
>>> for i in finding(x, s):
>>> ...
>>
>>
>> How would the case of not found be handled in either of these proposals?
>
> By never executing the body of the loop. It's still a thoroughly
> unnatural API for the 0 or 1 case, though.
Let me rephrase:
found = "I don't want to get into the cart!".find('z')
if found >= 0:
# do stuff if found
else:
# do stuff if not found
or
found = "I don't want to get into the cart!".find('n')
while found >= 0:
# do stuff if found
found = "I don't want to get into the cart!".find('n', found+1)
if found == -1:
break
else:
print('false branch')
# do stuff if not found
How would we reliably get the false branch with the above proposals?
~Ethan~
More information about the Python-ideas
mailing list